Archipel installation
De wikiGite
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
apt-get install ejabberd subversion erlang-dev erlang-xmerl build-essential erlang-tools python-libvirt
Sommaire
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/<UUID>. 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