Enomalism per gestire server virtuali eterogenei
Enomalism è un’interfaccia grafica web-based per gestire un gruppo di server virtuali che adoperano diversi software di virtualizzazione. Attualmente Enomalism è in grado di portare a termine migrazioni da e per QEMU/KVM, Xen e Amazon EC2 (presto anche VMware, VirtualBox e OpenVZ).
Il software possiede anche la capacità di effettuare automaticamente il bilanciamento del carico di lavoro tra i server, inoltre ha un’architettura modulare che consente la creazione da parte di terzi di plug-in per Enomalism.
Enomalism può essere usata per gestire virtual machine create da QEMU ma anche da Xen, quindi il primo requisito è la presenza di uno di questi due programmi su un server. Si possono trovare istruzioni su come installarli leggendo degli articoli presenti sul blog.
E’ necessario scaricare i pacchetti di Enomalism e una libreria dal http://sourceforge.net/project/showfiles.php?group_id=164855
Installazione di Enomalism su Ubuntu
Inoltre bisogna disporre di MySQL, presente nei repository e facilmente installabile con il comando apt-get.
Scegliere il file che non è specifico per una distribuzione, scaricare per esempio: Enomalism2-2.0.1A-1270.noarch.tar.gz.
Scompattare il contenuto dell’archivio in una cartella:
# tar zxvf Enomalism2-2.0.1A-1270.noarch.tar.gz
Entrare nella cartella col comando:
# cd Enomalism2-2.0.1A-1270
Spostarla nella directory /opt e cambiarle nome:
# mv Enomalism2-2.0.1A-1270/* /opt/enomalism2
Entrare nella cartella con i file:
# cd /opt/enomalism2/
Avviare la procedura di installazione di Enomalism:
# python setup.py install
In caso di problemi, se compare un messaggio di errore che avverte che c’è un broken link per httplib2, recuperare il pacchetto python-httplib2 nei repository o sul sito Ubuntu.com.
Installazione del software su Red Hat, Fedora e OpenSuse
Per applicare i pacchetti necessari ad adoperare Enomalism, basta scaricare quelli già pronti da sourceforge.
# rpm -i Enomalism2-2.0.1A-1270.openSUSE.i586.rpm
Per installare il pacchetto per OpenSuse a 32 bit, se alcune dipendenze non sono soddifatte basta reperire ciò che serve dai repository o dai supporti ottici della propria distribuzione. All’interno delle pagine wev di Enomalism sono prelevabili alcuni file archivio contenenti alcuni pacchetti che possono risolvere le mancanze.
Anche per Red Hat, Fedora e OpenSuse è necessario che sia presente MySQL. In questo caso non si deve usare lo script setup.py perchè fa tutto il sistema di gestione di rpm.
Configurazione di Enomalism (per tutte le distribuzioni)
Ora è necessario creare un database in MySQL. Per fare ciò bisogna trovarsi nella cartella di Enomalism e digitare:
# script/init-db.sh password-root utente password
password-root sta per la password di root fornita al momento della configurazione di MySQL, mentre utente e password sono il nome utente al quale si vuole attribuire la paternità del database e la seconda opzione è la password.
Creare un file di configurazione partendo da quello già preparato e salvarlo in config/$HOSTNAME.cfg (attenzione non sovrascrivere default.cfg, ma salvare l’elaborato in /opt/enomalism2/config/, mettere il nome del proprio host al posto di $HOSTNAME)
# kwrite default.cfg
Si puo adoperare un editor a piacimento.
Il file va modificato nei punti:
sqlobject.dburi=”mysql://enomalism2:zx45qw12@localhost/enomalism2″
la parte enomalism2 va cambiata col nome utente usato durante la creazione del database così come zx45qw12 che assumerà il valore della password.
(caso particolare) Se si usano delle tabelle che non supportano le transizioni è necessario mettere il cancelletto davanti all’occorrenza della riga precedente e decommentare la linea (sostituire i valori opportuni):
sqlobject.dburi=”notrans_mysql://username:password@hostname:port/databasename”
Per tutti, cambiare
enomalism2.baseurl=http://127.0.0.1:8080/rest/
inserendo l’indirizzo IP o il nome dell’host al quale ci si deve collegare (server).
inoltre cambiare anche
enomalism2.self=”5fe6f05e-7ee0-11dc-ba7c-0011d88b8e81″
in modo che il numero sia unico per ogni istanza del cluster (variando, magari qualche cifra numerica a caso oppure utilizzando l’utility da riga di comando uuidgen).
Togliere il commento alla riga seguente e inserirci l’IP address corretto (con 127.0.0.1 al post di 1.2.3.4 per un server localhost):
enomalism2.ip_addr=”1.2.3.4″
Avviare Enomalism
Per lanciare il programma, basta usare lo script per la shell posizionandosi nella cartella /opt/enomalism2/:
#scripts/enomalism2.sh start
Se le cose vanno per la via giusta non dovrebbero comparire errori per cui è sufficiente usare un web brower come Firefox e digitare nella barra degli indirizzi:
http://server:8080
naturalmente server è il nome del server dove ci sono le macchine virtuali. Si presenta una rapida sequenza di passaggi per preparare e configurare l’interfaccia web. Quando verrà richiesta un nome utente e una password, inserire rispettivamente admin e password.
Per fermare Enomalism, digitare:
# /opt/enomalism2/scripts/enomalism2.sh stop
Un altro server da gestire
Seguendo le istruzioni appena fornite le virtual machine e i domini dovranno essere presenti sul computer dove è stato appena installato e configurato Enomalism quindi i parametri nel file $HOSTNAME.cfg devono rispecchiare quelli del calcolatore. Se si vuole aggiungere un altro server è necessario installare lì Enomalism (come visto prima ma non creare il database) e il file con le impostazioni va alterato tenendo conto di:
- Cambiare 127.0.0.1 in enomalism2.ip_addr=”127.0.0.1″ con l’IP address del server della prima installazione.
- Pure sqlobject.dburi=”mysql://enomalism2:zx45qw12@localhost/enomalism2″ va sostituita con sqlobject.dburi=”mysql://enomalism2:zx45qw12@primoserver/enomalism2″ dove primoserver è il nome dell’host del primo computer dove è stato installato il software. L’username e la password sono quelli del DB creato sul primo server
- Mettere un UID diverso da quello del primo server in enomalism2.self.
- Indicare l’indirizzo IP dove il web brower può trovare l’interfaccia grafica, ciò metterci l’IP address del primo server (non 127.0.0.1).
Per avviare il server nuovo usare le istruzioni già descritte.
Poi per installarle e configurarlo, dal primo server, digitare nella barra degli indirizzi del browser: http://nuovoserver:8080/install, dove nuovoserver è l’hostname dell’ultimo server preparato.