Archipel Archipel : interface de gestion de machines virtuelles Xen, KVM, OpenVZ, VirtualBox par échange de messages XMPP (protocole de messagerie instantanée). Installation sur Squeeze : https://github.com/primalmotion/Archipel/wiki/Installation-manual ejabberd Installation Sur un des serveurs hôtes (les autres serveurs Archipel feront appel à lui) Modules ejabberd (mod_admin_extra et ejabberd_xmlrpc) : La librairie erlang-xmlrpc n'est pas fournie par Debian. On doit la construire. cd /usr/local/src wget http://ejabberd.jabber.ru/files/contributions/xmlrpc-1.13-ipr2.tgz tar -xzf xmlrpc-1.13-ipr2.tgz cd xmlrpc-1.13/src vi Makefile Remplacer : XMERL_PATH=../../xmerl par XMERL_PATH=/usr/lib/erlang/lib/xmerl-1.2.5 $(XMERL_PATH)/inc par $(XMERL_PATH)/include Puis make cp -a xmlrpc-1.13 /usr/lib/erlang/lib/ Obtenir les sources des modules cd /usr/local/src svn checkout http://svn.process-one.net/ejabberd-modules/ cd /usr/local/src/ejabberd-modules/ejabberd_xmlrpc/trunk ./build.sh cp ebin/ejabberd_xmlrpc.beam /usr/lib/ejabberd/ebin/ cd /usr/local/src/ejabberd-modules/mod_admin_extra/trunk/ ./build.sh cp ebin/mod_admin_extra.beam /usr/lib/ejabberd/ebin/ Configuration mv /etc/ejabberd/ejabberd.cfg /etc/ejabberd/ejabberd.cfg.dist vi /etc/ejabberd/ejabberd.cfg Copier dans ce fichier vide le contenu du .cfg donné sur la page d'install https://github.com/primalmotion/Archipel/wiki/Ejabberd-configuration-sample. Remplacer "FQDN" par le nom fqdn réèl du serveur (au moins 2 occurences). Remplacer /opt/ejabberd-2.1.6/conf/server.pem par /etc/ejabberd/ejabberd.pem Relancer ejabberd Créer un compte admin XMPP ejabberdctl register admin your.fqdn.com yourpassword Tester ejabberd /etc/init.d/ejabberd live Pour sortir taper q() Archipel Agent Installation Sur chacun des serveurs à administrer Installer Git apt-get install git puis cloner le repository Archipel cd /usr/local/src git clone git://github.com/primalmotion/Archipel.git cd Archipel Installer les tools python (pour avoir easy_install) apt-get install python-pip easy_install /usr/local/src/Archipel/ArchipelAgent/archipel-agent Puis lancer le script de post-install archipel-initinstall A la fin de l'installation, on doit avoir le message : # Installation initialization started - installing init script to /etc/init.d/archipel: [OK] - installing configuration to /etc/archipel: [OK] - installing data folder to /var/lib/archipel [OK] [SUCCESS] : installation initialization complete ** IMPORTANT NOTE 1: you now need to edit /etc/archipel/archipel.conf top match your informations ** ** IMPORTANT NOTE 2: if this is not already done, you need to run archipel-tagnode and archipel-rolesnode ** Editer le fichier de configuration : vi /etc/archipel/archipel.conf Remplacer "xmpp_server = REPLACE_THIS_WITH_YOUR_XMPP_SERVER_FQDN" par le fqdn réèl du serveur remplacer éventuellement le chemin des VM vm_base_path (ou carrément la racine archipel_folder_data) NOTE Debian Squeeze : créer un lien "/usr/bin/qemu-img" vers "/usr/bin/kvm-img" Lancer Archipel /etc/init.d/archipel start Post install archipel-tagnode --jid=admin@FQDN --password=YOURPASSWORD --create archipel-rolesnode --jid=admin@FQDN --password=YOURPASSWORD --create (Pubsub signifie PUBlishers and SUBscribers). Permet le push des messages de création de tags (recherches) et de rôles (permissions). Mise à jour easy_install -U archipel-agent /etc/init.d/archipel restart (Si la configuration a changé, il faudra relancer archipel-initinstall, mais ce n'est pas nécessaire dans le cas contraire) NOTES Les images iso doivent être dans $(archipel_folder_data)/iso Les images vdisks seront créées dans $(archipel_folder_data)/drives/. Si aucune extension n'est donnée, il prend l'extension correspondant au format de fichier à créer (qcow2 par défaut). Installation Client NOTE ARCHITECTURE : le client se connecte en premier au serveur ejabberd (avec son JID). Ensuite on lui enregistre des "contacts" (les "hyperviseurs" correspondant aux agents installés sur les serveurs). Le serveur ejabberd peut donc être seul sur un serveur à part. Utiliser http://app.archipelproject.org (client disponible en ligne), ou installer le client nightly à partir de http://nightlies.archipelproject.org/ (à décompresser, puis lancer index.html dans le navigateur du poste). Avec Chromium en local : lancer chromium --disable-web-security sinon il refuse d'executer un file://.... Pour mettre le client sur un apache centralisé (comme app.archipelproject.org), créer un virtualhost apache et juste décompresser le tar dans le DocumentRoot du vhost : A LA RACINE (pas dans un sous-rep Archipel comme le crée le tar.gz !) TODO : Sécurité : il faudra mettre ça en https et ajouter un .htaccess ? Enregistrer un hyperviseur: bouton "+" en bas à gauche, donner le JID et un alias Enregistrer une VM créé par libvirt (ex : avec virt-manager) : virsh dumpxml testdeb | grep uuid archipel-importvirtualmachine --file=/var/lib/archipel/hypervisor.sqlite3 --uuid=52df5ff8-9cff-c75d-df55-08b2f138652c --xmppserver=ysabell.systea.net --name=testdeb Puis dans le GUI, onglet "virtual machine", double cliquer sur l'uuid dans la liste et "accepter le contact" Utilisation du GUI Création VM !! attention a activer ACPI et APCI dans la definition, et vérifier que l'os invité les gère, sinon on ne pourra pas interagir avec la VM (shutdown, pause...) Création vdisk Onglet Chat : chatter directement avec la VM ! taper "help" dans la zone de saisie pour avoir les commandes de base