venerdì 26 febbraio 2010

VirtualBox su Debian

Benissimo, dopo aver trattato il repository Debian backports ed aver parlato dei sistemi di virtualizzazione siamo ora pronti a procedere all'installazione del software necessario per poter creare una virtual farm.
In base alle precedenti informazioni, utilizzeremo la distribuzione Debian, con repository backports, da cui andremo a prendere Virtual Box OSE (è la versione realmente libera di VirtualBox, senza supporto all'USB e senza la gestione nativa tramite il protocollo remote desktop, entrambe tecnologie con problemi di brevetti); questo perchè la versione più recente di VirtualBox nei repository stable è la 1.6.6, troppo vecchia in assoluto... sicuramente meglio optare per la 3.x disponibile nei backports.
Prima di tutto partiamo configurando i repository:
  • vi /etc/apt/sources.list
ed andiamo ad aggiungere le seguenti linee:
  • # Backported packages for Debian Lenny
  • deb http://www.backports.org/debian lenny-backports main
Siccome backports di default è disabilitato, ed inizialmente senza chiavi, dobbiamo specificare le chiavi da installare specificando il repository nel seguente modo:

  • aptitude update aptitude -t lenny-backports install debian-backports-keyring
A questo punto, se non utilizziamo il kernel presente in backports (cosa molto probabile se l'abbiamo configurato solamente per VirtualBox), dobbiamo scaricare i kernel header di quello attualmente in funzione al fine di poter compilare i moduli di VirtualBox... la procedura quindi è la seguente:
  • aptitude update
  • aptitude install linux-headers-$(uname -r)
A questo punto siamo pronti ad installare VirtualBox:
  • aptitude -t lenny-backports install virtualbox-ose
Al termine dell'installazione, DKMS si occuperà della creazione dei moduli per il sistema e questi verranno caricati automaticamente ad ogni avvio del sistema se non diversamente specificato in /etc/default/virtualbox-ose (LOAD_VBOXDRV_MODULE impostato a 0).
Ora non rimane che aggiungere gli utenti che devono poter gestire le macchine virtuali al gruppo vboxusers con il seguente comando:
  • adduser yourusername vboxusers
Attenzione: l'utente che crea una macchina virtuale ne salva le informazioni all'interno della sua home, quindi a meno di modifiche sostanziali di configurazione, una singola macchina non è gestibile da qualunque utente del gruppo vboxuser.
A questo punto il vostro VirtualBox è pronto e potete cominciare ad allestire la virtual farm.


Un ultimo punto riguarda un errore con cui mi sono ritrovato a confrontarmi... l'errore era relativo a "/dev/vboxdrv" ed ai permessi assegnati; questo file deve avere i permessi impostati nella seguente maniera (ls -l /dev/vboxdrv):

  • crw-rw---- 1 root root 10, 58 2009-06-22 16:33 /dev/vboxdrv
I permessi di questo file vengono impostati dal file /etc/udev/rules.d/z60_virtualbox-ose.rules, quindi la mask specificata all'interno di questo deve essere 660.
Per verificare se il problema è stato risolto si deve riavviare udev e rimuovere/ricaricare il driver nel seguente modo (operazioni da eseguire da root):
  • invoke-rc.d udev reload
  • modprobe -r vboxdrv
  • modprobe vboxdrv
Nel mio caso tutto era corretto, ma le cose continuavano a non funzionare... il motivo era legato ad un altro file, /etc/udev/rules.d/z60_virtualbox-ose-sources.rules, che definiva altri permessi e mi riscriveva quelli corretti; il problema si risolve modificando anche quel file o rimuovendolo dato che esegue operazioni doppie.

N.B.: per Debian è disponibile il pacchetto "ufficiale" di Sun, senza le limitazioni delle USB e del remote desktop... per chi lo desiderasse può modificare i propri repository includendo quello della Sun ed aggiungendo le seguenti linee in /etc/apt/sources.list:
  • # VirtualBox official repository
  • deb http://download.virtualbox.org/virtualbox/debian lenny non-free
Il procedimento che dovrebbe seguire penso sia molto simile a quello già illustrato per la versione OSE, ma non avendo provato non voglio scrivere informazioni non corrette.

Per oggi è tutto, buon divertimento con le macchine virtuali che andrete a creare e nelle prossime puntate ce ne sarà una in cui tratterò l'avvio e la gestione delle macchine virtuali da linea di comando.
Ciao ed a presto.

sabato 13 febbraio 2010

La virtualizzazione dei sistemi

La nuova puntata del blog la dedichiamo alla virtualizzazione dei sistemi, ovvero l'installazione software di un PC emulato all'interno di uno reale... i motivi per ottenere funzionalità di questo tipo sono svariate, ma le principali sono legate al testing dei sistemi operativi, al test del software od alla voglia di avere sempre con sè il proprio sistema operativo configurato in maniera personalizzata.
Per poter ottenere una configurazione di questo tipo, vi sono diverse possibilità, ma siccome la portabilità delle macchine virtuali la ritengo una cosa essenziale e molto comoda (potremo gestirne l'esecuzione indistintamente su piattaforme Windows e Linux), la disponibilità del codice sorgente e la gratuitità di utilizzo fanno il resto, i software da prendere in esame e di larga diffusione sono solamente due:
  • VMWare server
  • VirtualBox
VMWare server è stato il primo software di virtualizzazione di largo utilizzo, attualmente la versione disponibile è la 2 ed è probabilmente la più adatta in un ambiente server vero e proprio, cioè quando la macchina fisica deve rimanere costantemente accesa e deve eseguire in maniera automatica varie macchine virtuali; non lo consiglio in un ambiente PC per utilizzo desktop in quanto l'installazione è molto pesante (più di 500MB di download) e l'accessso è solamente garantito a livello di browser web o delle funzioni fornite dal sistema operativo virtuale una volta avviato.
VirtualBox è il prodotto di virtualizzazione offerto da Sun, che attualmente è stata acquistata da Oracle; ultimo arrivato sul mercato e già largamente diffuso ed offre ottime funzionalità per una complessità del software relativamente modesta. L'aspetto "server" non è così sviluppato, infatti l'avvio delle macchine virtuali, fino alla versione attuale (3.1.x), non è automatico all'avvio della macchina fisica, ma richiede l'intervento manuale di un operatore o delle modifiche manuali al software.
Per adesso è tutto... verrà trattata tra breve l'installazione di VirtualBox su di un server Debian... alla prossima.

mercoledì 10 febbraio 2010

Repository Debian: backports

Come tutti ormai dovreste sapere, le distribuzioni linux si basano sui pacchetti software che contengono i vari applicativi; questi pacchetti vengono organizzati e resi disponibili attraverso repository.
Se mi avete seguito fin dall'inizio, la vostra distribuzione è configurata per utilizzare i pacchetti scaricati dai repository chiamati stable (lenny al momento attuale) o testing (squeeze).
Uno dei difetti per chi ha bisogno di utilizzare software recente su di una distribuzione stable è che spesso questo non è disponibile od è disponibile in versioni obsolete (e quindi considerate sicure e per ambienti di produzione in quanto testate a lungo ed approfonditamente).
Per ovviare a questo problema ed usare software più recente qualcuno potrebbe pensare che basta utilizzare il repository testing che contiene versioni di software più aggiornate, ma a questo punto nascono i problemi delle dipendenze dei pacchetti... provare dei pacchetti della versione testing richiede che anche i pacchetti da cui dipendono siano di tipo testing e questo porterebbe ad un aggiornamento dell'intero sistema, ma questa è una soluzione che pochi sono disposti ad accettare in un ambiente di produzione.
Quindi, per adesso, non c'è la soluzione utilizzando i repository ufficiali, ed a questo scopo è nato un repository apposta, che si chiama backports (http://www.backports.org); questo archivio è nato dall'esigenza di poter utilizzare del software abbastanza aggiornato utilizzando grazie al fatto che è stato compilato su macchine di tipo stable e quindi le dipendenze sono relative a pacchetti riservati ad un ambiente di produzione... ora passiamo alla parte pratica di configurazione.
Andiamo ad aggiungere ai nostri soliti repository quello nuovo, aggiungiamo la chiave GPG ed aggiorniamo la lista dei pacchetti software disponibili:
  • echo "deb http://www.backports.org/debian lenny-backports main contrib non-free" > /etc/apt/sources.list
  • wget -O - http://backports.org/debian/archive.key | apt-key add -
  • apt-get update
A questo punto i pacchetti del repository sono stati indicizzati nel database locale e quindi quando eseguiremo ricerche o comandi di installazione potremo utilizzare anche questi; siccome di default il repository è disattivato di default, dobbiamo specificarne l'utilizzo dalla linea di comando per poterlo utilizzare e la sintasis del comando di installazione è la seguente:
  • apt-get -t lenny-backports install “package”
  • aptitude -t lenny-backports install “package”
Se volessimo utilizzare sempre i pacchetti di backports e quindi abilitarlo di default (attenzione che tutto verrebbe aggiornato rispetto ad una versione stable dato che il software è più recente), possiamo andare a modificare il file /etc/apt/preferences in maniera che siano presenti le seguenti linee:
  • Package: *
  • Pin: release a=lenny-backports
  • Pin-Priority: 200
Direi che per oggi è tutto... buon divertimento con il software aggiornato.