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