VirtualBox 4 Headless sur Debian Squeeze

 

On va commencer cette nouvelle année avec un dépoussiérage de cet article : http://blog.cheramy.name/2010/04/13/virtualbox-headless-sur-debian-lenny/.

Nous allons procéder à l'installation d'un serveur VBoxHeadless sur une Debian Squeeze.

Installation de Debian Squeeze

La Debian Squeeze approchant de la version stable nous allons pouvoir commencer à installer des serveurs de tests avec.

Pour télécharger l'iso de l'installateur : http://www.debian.org/devel/debian-installer/

Je conseil une version 64bits de façon à créer des VM 64bits et 32bits.

Pour le reste RAS c'est une install Debian classique.

Installation VirtualBox 4

On modifie les sources de paquets en modifiant le fichier /etc/apt/sources.list :

deb http://download.virtualbox.org/virtualbox/debian squeeze contrib

# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -
# apt-get update
# apt-get install linux-headers-$(uname -r) build-essential virtualbox-4.0 dkms

L'installation de dkms est primordiale, ce framework permet de recompiler des modules kernel ne faisant pas partie des sources. Ce qui permet donc ici de recompiler les modules virtualbox à chaque changement de noyau.

On installe ensuite le pack d'extensions qui va notament dans notre cas ici nous permettre d'établir une connexion via RDP sur les machines virtuelles.

# cd /usr/src/
# wget http://download.virtualbox.org/virtualbox/4.0.0/Oracle_VM_VirtualBox_Extension_Pack-
4.0.0-69151.vbox-extpack
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.0.0-69151.vbox-extpack

On rajoute un utilisateur dans le groupe vboxusers de façon à ne pas créer les vm en tant que root.

# adduser sysadmin vboxusers

Création d'une VM

Cette fois-ci toutes les commandes sont à exécuter en tant qu'utilisateur :

Créer la vm :

$ VBoxManage createvm --name "squeeze_test" --register

La supprimer :

$ VBoxManage unregistervm --name "squeeze_test" --delete

Paramétrage :

$ VBoxManage modifyvm "squeeze_test" --memory 256 --acpi on --boot1 dvd --nic1 bridged 
--bridgeadapter1 eth0

Création du disque virtuel :

$ VBoxManage createhd --filename squeeze_test.vdi --size 10240

Création d'un controleur de disque :

$ VBoxManage storagectl "squeeze_test" --name "Controler 1" --add sata

Rattachement du disque virtuel et d'une image iso pour le disque d'install :

$ VBoxManage storageattach "squeeze_test" --storagectl "Controler 1" --port 0 --device 0 
--type hdd --medium squeeze_test.vdi
$ VBoxManage storageattach "squeeze_test" --storagectl "Controler 1" --port 1 --device 0 
--type dvddrive --medium /home/isos/debian-squeeze-di-beta2-amd64-netinst.iso

Démarrer et se connecter à la VM

Pour démarrer la vm :

$ VBoxHeadless --startvm "squeeze_test" &

Pour s'y connecter, utilisez un client RDP comme Gnome-RDP :

Ou rdesktop :

$ rdesktop 192.168.1.100

Interface web de management

Il existe une application Web permettant de gérer une plateforme de virtualisation VBoxHeadless : phpvirtualbox

Pour installer cette interface nous allons avoir besoins d'un serveur web et des librairies php :

# apt-get install libapache2-mod-php5 cronolog

On récupère ensuite la dernière version de phpvirtualbox :

# cd /var/www
# mkdir -p phpvirtualbox.domaine.tld/{var/tmp,etc}
# cd phpvirtualbox.domaine.tld
# wget http://phpvirtualbox.googlecode.com/files/phpvirtualbox-4-0.zip
# unzip phpvirtualbox-4-0.zip ; rm phpvirtualbox-4-0.zip
# mv phpvirtualbox-4-0 www

On configure notre vhost et on paramètre phpvirtualbox avec le fichier www/config.php :

var $username = 'sysadmin';
var $password = '@zertY';
var $location = 'http://127.0.0.1:18083/';
...
var $language = 'fr_fr';
...
var $cachePath = '/var/www/phpvirtualbox.domaine.tld/var/tmp';

On précise donc l'utilisateur faisant tourner le webserver virtualbox, la langue et un répertoire de cache.

Il faut que l'utilisateur créant les machines virtuelles démarre le webserveur :

$ vboxwebsrv -b