phpVirtualBox

di Pubblicato: 28 luglio 2011 Aggiornato: 6 dicembre 2013 2 commenti

VirtualBox è uno dei miei software preferiti, si tratta di un gestore di macchine virtuale open source della Oracle. Nel corso della sua breve vita i miglioramenti sono stati tantissimi, tuttavia il suo ambito di utilizzo è sempre stato quello della workstation o meglio di virtualizzare in locale. A quanto pare dalla versione 4.x è maturata anche la possibilità di una gestione server per certi versi simile a prodotti business (di decennale esperienza) come Vmware Server o Virtual Server di Microsoft.

Infatti una installazione server tipica di Linux esente da GUI è possibile agire comunque su tutti gli aspetti di una creazione, gestione di una o più macchine virtuali, come descritto nel capitolo 8 della guida di VirtualBox. Questo ha dato modo di “trasporre” i comandi all’interno di una interfaccia web, che con l’aiuto di Ajax, si è trasformata in una GUI di VirtualBox in tutto e per tutto senza rinunciare a nulla. Il progetto si chiama appunto phpVirtualBox e come suggerisce il nome si appoggia ad un webserver Apache e PHP.

Si tratta, e bene dirlo, di un progetto che deve ancora esprimere il suo vero potenziale e non è esente da bugs. Tuttavia se non volete / potete spendere soldi per una virtual server farm potreste trovare l’accoppiata VirtualBox e webserver Linux decisamente vincente, considerando che phpVirtualBox già gestisce macchine virtuali in server multipli.

Vediamo come installare dalla nostra esperienza diretta.
Abbiamo preso un server adeguatamente carrozzato, 18 GB Ram  e spazio disco a sufficienza, installato una Ubuntu Linux 10.04 con i pacchetti Apache2 e Php5.
Dal sito della VirtualBox abbiamo aggiunto al nostro  /etc/apt/sources.list  il repository ufficiale

deb http://download.virtualbox.org/virtualbox/debian lucid contrib non-free

Quindi aggiornato ed installato il software

sudo apt-get update
sudo apt-get install virtualbox-4.1

Dal sito di phpVirtualBox abbiamo scaricato il pacchetto .zip e scompattato dentro /var/www rinominando opportunamente la cartella in phpvirtualbox affinché sia raggiungibile dal browser all’indirizzo http://nomeserver/phpvirtualbox.

Nel file di configurazione viene richiesto un utente che farà girare l’applicativo, quindi abbiamo preventivamente creato l’utente vbox

useradd -m vbox
passwd vbox

Copiamo il config.php.sample in config.php

cp config.php.sample config.php

quindi editarlo con il vostro editor preferito, in particolare indicando l’IP del webserver nella seguente variabile:

/* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */
var $location = 'http://192.168.1.100:18083/';

Da Root ora sarà necessario creare il file

vi /etc/default/virtualbox

con i seguenti parametri

VBOXWEB_USER=vbox
VBOXWEB_LOGFILE=/var/log/virtualbox/virtualbox.log
VBOXWEB_HOST=192.168.1.100
INSTALL_DIR="/usr/bin"

In teoria seguendo le istruzioni la voce VBOXWEB_HOST non sarebbe necessario perché è persino previsto che l’interfaccia web possa essere in un server mentre l’applicativo delle macchine virtuali altrove, tuttavia senza questo parametro abbiamo riscontrato alcuni malfunzionamenti.

Ora l’utente vbox quasi sicuramente non sarà in grado di scrivere all’interno della cartella /var/log quindi andremo a creare la cartella virtualbox dando all’utente in questione i diritti per scriverci.

sudo mkdir /var/log/virtualbox
sudo chown vbox /var/log/virtualbox
sudo chmod 755 /var/log/virtualbox

A questo punto l’interfaccia potrebbe già funzionare, ma nel primo avvio abbiamo riscontrato la mancanza di un extension pack di Oracle per Virtualbox che andremo a scaricare da questo sito, ad esempio sulla nostra home /home/user. Per installarlo ci deve avvalere di uno specifico comando della VirtualBox:

wget http://download.virtualbox.org/virtualbox/4.1.0/Oracle_VM_VirtualBox_Extension_Pack-4.1.0-73009.vbox-extpack
VBoxManage extpack install /home/user/Oracle_VM_VirtualBox_Extension_Pack-4.1.0-73009.vbox-extpack

Purtroppo le extension via CLI necessitano di un riavvio della macchina, prima però assicuriamoci che il servizio che lancia l’interfaccia web delle macchine virtuali sia installato

sudo update.rc vboxweb-services defaults

Ora non ci resta che riavviare la macchina. Alla riaccensione il webserver dovrebbe essere disponibile con la phpVirtualBox attiva (la username e password di default sono admin:admin) dove poter procedere a creare la vostra prima virtual machine. Interessante il  sistema RDP (remote desktop) che permette di vedere tutta la fase di boot della macchina virtuale, troverete i dati di collegamento nei dettagli della macchina creata, che vi permetterà di scaricare un file .rdp con tutti i parametri pronti.

Non ci sono commenti al momento

sezione commenti aperta al pubblico
  1. Daniele
    #1 Daniele 20 settembre, 2011, 12:17

    Ciao, ho seguito tutta la tua guida e dovrei essere riuscito a configurare tutto correttamente. Ho anche installato l’extension pack, ho creato l’utente vbox e aggiunto nel gruppo “vboxusers”, ho messo nel file config.php l’username vbox e come password la stessa che ho dato all’utente.

    I servizi web sono attivi e i log vengono scritti correttamente senza errori, ma quando apro la pagina web di phpvbox mi compare la richiesta di username e password. Nel momento in cui, però, li inserisco (qualsiasi username e password inserisco) mi compare solo una schermata grigia senza niente.

    Mi sai dare qualche suggerimento?

    Rispondi a questo commento
    • admin
      admin Autore 29 settembre, 2011, 11:05

      Ciao, prova a dare una occhiata al log di apache ( di solito sotto /var/log/apache2/error.log ) perché sembra che ci sia un errore nel processo di login. Dovrebbe darti una qualche indicazione su tipologia di errore e dove avviene così da poter agire nella giusta direzione.

      Rispondi a questo commento

Rispondi