Outils personnels

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

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