Utiliser virtualbox comme "hyperviseur"

On a sous la main un Proliant ML110 avec une architecture en 64 bits. J'ai installé la version 8 de Debian et la version 5.0.14 de virtualbox. Grâce aux futurs machines virtuelles, il va pouvoir être utile pour répondre à mon besoin d'installer un routeur IPFire.


Installation

On ajoute la source du dépôt et on installe virtualbox :

  echo deb http://download.virtualbox.org/virtualbox/debian jessie contrib >> /etc/apt/sources.list
  wget https://www.virtualbox.org/download/oracle_vbox.asc --no-check-certificate
  apt-key add oracle_vbox.asc
  apt-get update
  apt-get install virtualbox-5.0

Remarque : vérifiez que les modules suivant : vboxdrv, vboxnetflt and vboxnetadp soit bien installé par le système car ils sont très important et au pire des cas, faites-en la mise à jour avec ce paquet :

  apt-get install dkms

Source :

Installer une extension

Prenons exemple de l'extension : Extension pack. Elle est souvent utilisé par divers besoins alors on l'installe par anticipation. Il suffit dans ce cas de la télécharger et de lancer la commande suivante :

 wget http://download.virtualbox.org/virtualbox/5.0.14/Oracle_VM_VirtualBox_Extension_Pack-5.0.14-105127.vbox-extpack
 VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0.14-105127.vbox-extpack

Source : https://www.virtualbox.org/manual/ch08.html#vboxmanage-extpack

Administrer virtualbox depuis le navigateur web.

Vu que la distribution installé ne contient pas d'interface graphique, il serait utile que son administration se fasse depuis le navigateur web. PHPvirtualbox permet de le faire comme on peut le constater ci-contre :

La bonne nouvelle, est qu'il n'y a encore une fois rien de compliqué : on télécharge, on installe et on configure.

On installe d’abord quelques paquets nécessaire à l'accès via navigateur :

 apt-get install apache2 php5 libapache2-mod-php5 zip

On télécharge et on décompresse le paquet phpvirtualbox :

 wget http://sourceforge.net/projects/phpvirtualbox/files/phpvirtualbox-5.0-5.zip/download
 mv download phpvb.zip
 unzip phpvb.zip
 mv phpvirtualbox-5.0-5/ /var/www/html/

On configure les accès pour l'utilisateur vbox :

 cd /var/www/html/phpvirtualbox-5.0-5/
 mv config.php-example config.php
 
 nano config.php
 var $username = 'vbox';
 var $password = 'srv';
 var $noAuth = true; # Dé-commenter cette variable
 var $language = 'fr';

On créer le fichier pour autoriser la connexion de l'utilisateur :

 nano /etc/default/virtualbox
 VBOXWEB_USER=vbox

On le créer pour que l'on puise se connecter à virtualbox depuis l'interface web.

 useradd -d /home/vbox -m -g vboxusers -s /bin/bash vbox
 passwd vbox

On créer le fichier qui va permettre de lancer la communication entre phpvirtualbox et virtualbox :

 nano vboxweb-service

Inclure les lignes de codes dans le fichier : https://www.virtualbox.org/svn/vbox/trunk/src/VBox/Installer/linux/vboxweb-service.sh Rendre exécutable le script :

 chmod +x vboxweb-service

Lorsque la configuration est terminé, on lance le service :

 /etc/init.d/vboxweb-service start

Pour éviter la “disparition” des machines virtuelles lors du redémarrage du serveur, il faut installer un logiciel qui va permettre de lancer le processus vboxweb-service au démarrage :

 apt-get install sysv-rc-conf

On lance la commande et on sélectionne les mêmes “runlevel” que le service vbox :

 sysv-rc-conf

L'installation est terminé et l'accès est possible depuis le navigateur web à l'adresse : http://IP_DU_SERVEUR/phpvirtualbox-5.0-5/

Cependant, si l'on souhaite administrer les machines depuis l'interface du serveur (en mode graphique), il est nécessaire de se connecter avec le compte vbox pour que les droits d'accès soient compatibles avec l'administration faite depuis le navigateur.

Contrôler la VM depuis le terminal

Démarrer une machine virtuelle :

 VBoxManage startvm <vmname>

Modifier son état de fonctionnement :

 VBoxManage controlvm <vmname> pause|resume|reset|poweroff|savestate

Lister les machines virtuelles installé sur la machine :

 VBoxManage liste vms

Pour des informations complémentaires, la documentation se trouve sur leur site officiel : https://www.virtualbox.org/manual/

Convertir une image VDI en IMG :

VBoxManage clonehd --format RAW image.vdi image.img