Gestione centralizzata di sistemi virtuali basati con Cloudmin (1° parte)

dbL’ampia adozione della virtualizzazione e del cloud computing ha creato un enorme aumento del numero di macchine logicamente distinte da amministrare. I fornitori di servizi di hosting e altri grossi utenti si trovano di solito con un portafoglio di sistemi differenti: alcuni sono macchine virtuali ospitate su hardware locale, altri risiedono nelle nuvole EC2 o Rackspace, altri ancora possono addirittura essere dei server fi sici vecchio stile.Non sarebbe bello essere in grado di gestire tutti questi sistemi in maniera uniforme da una singola interfaccia? Certo che lo sarebbe, ovviamente.Cloudmin è una soluzione di questo genere. Per citare il sito Web (www.virtualmin.com/aboutcloudmin), “Cloudmin fornisce un’interfaccia Web per la gestione di sistemi diversi, tipicamente sistemi virtuali che utilizzano una tecnologia come Xen o OpenVZ.

Un singolo nodo master Cloudmin è in grado di gestire numerosi sistemi host, ognuno dei quali può a sua volta ospitare numerosi sistemi virtuali”. Cloudmin è disponibile in due versioni. Ce n’è una gratuita (Cloudmin GPL) che è limitata alla gestione di macchine virtuali Xen o KVM su di un singolo sistema. Non comprende la gestione di istanze di macchine EC2 e la gestione di sistemi non virtuali
(fisici). C’è poi la versione Pro, in grado di gestire più di un sistema fi sico e numerose tecnologie di virtualizzazione, tra cui Xen, OpenVZ (un sistema di virtualizzazione basato su contenitori che ho descritto il mese scorso), KVM, Linux VServer, Solaris Zones e Amazon EC2. Pur non essendo gratuito, Cloudmin Pro non è troppo costoso.Attualmente è in corso un’offerta a metà prezzo ed è possibile avere una licenza annuale per 50 istanze a 299 dollari, cioè 50 centesimi per istanza al mese.

Installazione

La maniera più semplice per partire con Cloudmin consiste nell’eseguire uno script di installazione automatica che usa i comandi del sistema di gestione dei pacchetti per scaricare il software direttamente dai suoi repository. Ovviamente è quello che ho fatto, cercando come al solito la via che richiede il minimo sforzo. Il sito di Cloudmin raccomanda di usare Red Hat o CentOS, quindi ho cominciato installando CentOS 6.5 su di un server virtuale (4-core, 2 GB). L’ho configurato in maniera più o meno standard, senza desktop, ma ho installato gli strumenti di virtualizzazione, e poi ho lanciato yum update per aggiornare il sistema alle più recenti versioni dei pacchetti. Il passo successivo è consistito nello scaricare e lanciare lo script di installazione di Cloudmin. Lo script è legato alla licenza Cloudmin dell’utente e il link per il download è disponibile solo dopo che è stata emessa la licenza stessa (per la versione GPL la pagina www.virtualmin.com/documentation/cloudmin/gpl contiene tutti i dettagli e il link allo script d’installazione).Lo script installa automaticamente Cloudmin e tutte le sue dipendenze e, se tutto funziona a dovere, non c’è null’altro da fare.

L’installatore CentOS o RedHat può essere scaricato da cloudmin-kvm-redhat-install.sh. Una volta che hai sul sistema Linux che si desidera eseguire il Cloudmin, eseguirlo con i comandi:

chmod +x cloudmin-kvm-redhat-install.sh
./cloudmin-kvm-redhat-install.sh

L’installatore Debian o Ubuntu può essere scaricato dal cloudmin-kvm-debian-install.sh. Una volta che hai sul sistema Linux che si desidera eseguire il Cloudmin, eseguirlo con i comandi:

chmod +x cloudmin-gpl-debian-install.sh
./cloudmin-gpl-debian-install.sh

Ci sono voluti solo cinque minuti per eseguirlo e il processo non ha dato il minimo problema. Una volta installato il server, Cloudmin resta in ascolto sulla porta 10000, quindi ho dovuto aprire questa porta sul firewall, dopodiché sono stato in grado di visitare con il browser l’URL https://centos.example.com:10000, eseguire il login come root e vedere la pagina principale di Cloudmin. Se avete a disposizione un supporto fisico per l’installazione di CentOS , l’intera operazione non richiede più di 30 o 60 minuti. La curva di apprendimento a questo punto risulta però piuttosto ripida: ci sono davvero un sacco di funzionalità da esplorare e parecchia documentazione da leggere. Mi sono posto come obiettivo, che pensavo realistico, la creazione e la gestione di un paio di macchine virtuali basate su KVM sul sistema master e un paio di istanze EC2 sul mio account Amazon Web Services. Una volta installato e lanciato Cloudmin sono passato alla registrazione sul sistema master dell’host che intendevo amministrare. Si è trattato di un’operazione semplicissima, perché stavo usando un singolo server fisico, quindi il sistema master (su cui gira il software di gestione Cloudmin) e il sistema ospitante (su cui avrei creato le mie istanze di macchina virtuale) erano la stessa macchina fisica. È possibile però registrare anche altri sistemi ospitanti fino al limite consentito dalla licenza. Esiste addirittura la possibilità di cercare in rete i potenziali candidati. Seguendo il mio piano ho registrato la macchina come sistema ospitante KVM (è possibile registrare sistemi Xen, Citrix, VServer, Solaris Zones, OpenVZ e LXC). Occorre specificare un nome di dominio per le macchine ospitate ed è possibile indicare un intervallo di indirizzi IP che la macchina ospitante può assegnare alle istanze quando vengono create. Se vengono usati molti sistemi fisici occorre un minimo di pianifi cazione per ripartire tra di essi lo spazio degli indirizzi.

Il resto della famiglia

Cloudmin è parente stretto di due altri strumenti di amministrazione di sistema basati sul Web:Webmin e Virtualmin.

Webmin (che ho recensito in LXP 118) consiste di un server Web e di un insieme di plug-in che consentono di eseguire da browser un’ampia gamma di attività di confi gurazione del sistema, senza avere a che fare direttamente con i fi le in /etc, usare la riga di comando un editor di testo.

Virtualmin è un pannello di controllo per l’hosting Web che permette di gestire domini virtuali, caselle di posta, siti Web, database e applicazioni.Tutti e tre gli strumenti hanno un aspetto molto simile, probabilmente dovuto alla grande quantità di codice Perl a basso livello che hanno in comune.