VirtualBox est dans son usage le plus courant, un outil de virtualisation sur les postes bureautiques. Néanmoins il a des avantages indéniables pour émuler et paramétrer certaines caractéristiques de machines physiques tel que les bios EFI, des cartes réseaux en mode promiscuous, …
Il peut alors être tentant d’utiliser VirtualBox pour certaine virtualisation de systèmes d’exploitation dans un mode hébergé sur du matériel en datacenter. Mais VirtualBox est un logiciel graphique, il faut donc pouvoir le piloter depuis un terminal et exporter l’affichage des machines virtuelles sur un protocole réseau de prise en main à distance. On parle alors de lancer Virtualbox en mode headless.
Préparatifs et installation de VirtualBox
Tout d’abord nous partons du principe que votre serveur qui va accueillir la virtualisation VirtualBox est installé, cette installation a été testée ici sous Debian 6 Squeeze et Ubuntu 11.10 pour la branche 4.1 de VirtualBox.
Ajout du dépôt officiel VirtualBox
Dans votre fichier /etc/apt/sources.list
ou dans un nouveau fichier virtualbox
dans /etc/apt/sources.list.d/
:
Pour Ubuntu 11.10 :
deb http://download.virtualbox.org/virtualbox/debian oneiric contrib
Pour Debian 6 :
deb http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free
Ensuite nous allons télécharger et installer la clef publique du dépôt VirtualBox :
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
L’empreinte de la clef à vérifier est :
7B0F AB3A 13B9 0743 5925 D9C9 5442 2A4B 98AB 5139 Oracle Corporation (VirtualBox archive signing key) <info@virtualbox.org>
[title size= »3″]Installation des composants de VirtualBox[/title]
On passe à l’installation des packages et des prérequis pour la suite :
apt-get install virtualbox-4.1 build-essential dkms linux-header-$(uname -r)
Nous avons ajouter le nécessaire pour compiler des programmes grâce au paquet build-essential
car nous
allons devoir installer manuellement le pack d’extension de VirtualBox nécessaire pour déporter l’affichage des machines virtuelles en RDP. En effet depuis la branche 4 de VirtualBox, un certain nombre de composants pas forcément utile pour toutes les installations ont été regroupé dans ce pack d’extension.
Il faut se rendre sur la page de téléchargement de VirtualBox pour trouver le lien du pack d’extension.
Pour l’exemple ici nous sommes sur la version 4.1.8, VBoxManage s’occupe de compiler et d’installer le pack d’extension.
cd /usr/src wget http://download.virtualbox.org/virtualbox/4.1.8/Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack
Enfin il faut mettre dans le groupe vboxusers
l’utilisateur qui lancera les machines virtuelles au travers de VirtualBox, admettons ici vbox
.
adduser vbox vboxusers
Piloter VirtualBox en ligne de commande
La plupart des tâches d’administration de VirtualBox se font grâce à la commande VBoxManage
.
Création d’une machine virtuelle
Par défaut VirtualBox va mettre tous le nécessaire des machines virtuelles dans le répertoire /home/vbox/.VirtualBox
, libre à vous de faire un lien symbolique de ce dossier vers un répertoire normal.
Pour créer une machine nommée web-1
nous allons lancer les commandes suivantes :
VBoxManage createvm --name "web-1" --register
Votre machine virtuelle est crée, il reste à lui ajouter des composants tels des disques durs, des périphériques.
VBoxManage modifyvm "web-1" --memory 512 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0 VBoxManage createhd --filename web-1.vdi --size 50000 VBoxManage storagectl "web-1" --name "IDE Controller" --add ide VBoxManage storageattach "web-1" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium web-1.vdi VBoxManage storageattach "web-1" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /data/isos/debian-6.0.3-amd64-netinst.iso
Importer une machine virtuelle existante
Si vous voulez transférer une machine existante sur ce nouveau serveur et pouvoir lancer l’instance, il va falloir déposer le fichier de configuration XML de la machine virtuelle dans le dossier .VirtualBox/Machines/nom-machine
de l’utilisateur qui va la lancer. Puis dans le dossier .VirtualBox/VDI
l’image disque nom-machine.vdi
.
Une fois la copie effectuée, il faut indiquer à VirtualBox de prendre en compte cette nouvelle instance.
VBoxManage registervm Machines/nom-machine/nom-machine.xml
A présent cette machine peut être manipulée comme les autres.
Si vous n’utilisiez pas l’export RDP de l’affichage, il faut changer l’option dans la configuration de la machine importée.
VBoxManage modifyvm "nom-machine" --vrde on
Contrôle des machines virtuelles
Pour démarrer une machine virtuelle avec un export RDP de l’affichage il faut lancer la commande :
VBoxHeadless --startvm "web-1"
Pour arrêter une machine :
VBoxManage controlvm "web-1" poweroff
Pour suspendre et mettre en veille une machine :
VBoxManage controlvm "web-1" pause
Pour redémarrer une machine :
VBoxManage controlvm "web-1" reset
Pour prendre le contrôle de la partie graphique de vos machines virtuelles, il faut lancer une connexion RDP sur le serveur où les machines tournent. Pour la sélection du port RDP soit vous l’activez / désactivez en fonction de vos besoins, soit il faut scripter les paramètres ou les processus pour trouver quel port RDP est attaché à quelle machine virtuelle.