On a l’habitude d’utiliser VirtualBox au travers de son interface graphique.
Cependant on peut avoir besoin de mettre en place un serveur de virtualisation (si on est pas trop conformiste et qu’on veut parler de virtualisation pour VirtualBox) avec VirtualBox sur un serveur sans interface graphique. Pour cela VirtualBox arrive avec une option très intéressante : VBoxHeadless.
Nous allons voir dans cet article comment mettre un tel serveur sur une GNU/Debian Lenny.
Installation
Rajoutez la ligne suivante dans votre fichier /etc/apt/sources.list :
# VirtualBox
deb http://download.virtualbox.org/virtualbox/debian lenny non-free
Récupérez la clé GPG :
# wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | \
apt-key add -
Et mettre à jour la liste des paquets :
# apt-get update
Puis on installe la dernière version de VirtualBox :
# apt-get install linux-headers-$(uname -r) build-essential virtualbox-3.1
On ajoute un utilisateur (autre que root) au groupe vboxusers :
# adduser sysadmin vboxusers
Utilisation de VBox en ligne de commande
Les commandes suivantes peuvent être utilisées avec un utilisateur standard appartenant au groupe vboxusers.
On va créer une machine virtuelle avec 1Go de Ram et 20Go de disque dur en utilisant une image iso d’Ubuntu 9.10 serveur :
$ VBoxManage createvm --name "Debian Lenny Server" --register
$ VBoxManage modifyvm "Ubuntu 9.10 server" --memory 1024 --acpi on --boot1 dvd \
--nic1 bridged --nictype1 82543GC --cableconnected1 on --bridgeadapter1 eth0
$ VBoxManage createvdi -filename "ubuntu_910_server.vdi" -size 20000 -register
$ VBoxManage storagectl "Ubuntu 9.10 server" --name "IDE Controller" --add ide
$ VBoxManage storageattach "Ubuntu 9.10 server" --storagectl "IDE Controller" \
--port 0 --device 0 --type hdd --medium "ubuntu_910_server.vdi"
$ VBoxManage registerimage dvd /home/sysadmin/ubuntu-9.10-server-amd64.iso
$ VBoxManage storageattach "Ubuntu 9.10 server" --storagectl "IDE Controller" \
--port 1 --device 0 --type dvddrive --medium /home/sysadmin/ubuntu-9.10-server-amd64.iso
Pour démarrer cette nouvelle vm :
$ VBoxHeadless --startvm "Ubuntu 9.10 server" ... Listening on port 3389.
VirtualBox démarre la machine virtuelle et un serveur VRDP, pour y accéder il faut à partir d’un poste bureautique utiliser un client RDP. Personnellement j’utilise Gnone-RDP qui me permet de garder mes configurations d’accès RDP à toutes mes machines.
Ne pas oublier d’ouvrir le port 3389/tcp si vous avez un firewall.
Il suffit maintenant de suivre la procédure d’installation standard de la distribution choisie.
Pour arrêter la vm
$ VBoxManage controlvm "Ubuntu 9.10 server" poweroff
Pour mettre en pause la vm
$ VBoxManage controlvm "Ubuntu 9.10 server" pause
Pour la reseter une vm
$ VBoxManage controlvm "Ubuntu 9.10 server" reset
Lister les vms
Lister les vms existantes sur le système :$ VBoxManage list vms
Lister les vms fonctionnant :
$ VBoxManage list runningvms
Désenregistrer une vm
$ VBoxManage unregistervm 0bc5fd29-bd92-4dcc-ad1d-be89f045a9a0
Récupérer une vm existante
Si on veut transférer une vm d’un VirtualBox bureautique à un VirtualBox HeadLess.
En théorie
En théorie, on dois recopier deux choses sur le nouveau serveur :
- l’image du disque : le fichier *.vdi
- le contenu du répertoire Machines/nom_vm
Après tout cela on devrait taper la commande suivante pour ajouter la machine :
$ VBoxManage registervm Machines/examplevm/examplevm.xml
En pratique
En pratique la commande registervm n’a pas fonctionné chez moi. J’ai donc exécuté les commandes suivantes :
On commence par transférer l’image VDI dans le répertoire HardDisks.
Puis on créer la vm :
$ VBoxManage createvm --name "vm" --ostype Linux --register
$ VBoxManage modifyvm "vm" --memory 1024 --acpi on --nic1 bridged --nictype1 82543GC \
--cableconnected1 on --bridgeadapter1 eth0
$ VBoxManage storagectl "vm" --name "IDE Controller" --add ide --controller PIIX4
$ VBoxManage storageattach "vm" --storagectl "IDE Controller" --port 0 --device 0 \
--type hdd --medium "vm.vdi"
$ VBoxHeadless --startvm "vm" &
Merci pour ce tutorial. C'est exactement ce dont j'avais besoin.
Au plaisir de savoir que mes articles servent à d’autres personnes que moi.
Merci pour ce bel article
VBoxManage createvm -name "Debian Lenny Server" -register
Bravo, simple et efficace même si je n'y suis pas encore arrivé.
Un détail dans la ligne de création : ne faut il pas 2 tirets.. ?
Bonjour,
très bonne remarque, sûrement l’éditeur de WordPress qui a transformé les deux tirets côte à côte en un seul.
Voir doc de VBoxManage :
http://www.virtualbox.org/manual/ch08.html#id2636609
Qu’est-ce qui vous bloque pour finir cette installation ?
Guidtz
Bonjour,
Merci pour ce tuto, j'ai une question concernant RDP,
comment se connecter à la VM via RDP alors que l'on a pas spécifié d'adresse ip ?
Impossible.
RDP est un protocole TCP/IP () donc il faut que votre machine virtuelle possède une adresse IP pour que le serveur RDP écoute sur le port 3389.
Il est possible d’automatiser l’adressage IP avec un serveur DHCP. Voir même de fixer cette IP en affectant une adresse IP à l’adresse MAC et lors de la création de la machine virtuelle de préciser l’adresse MAC.
Guidtz
Bonsoir
Merci beaucoup pour ce tuto
Cette file est un peu ancienne mais pour les futurs lecteurs…
@casey : Mon serveur (physique) Ubuntu a l'adresse 192.168.7.1. Je lance une machine virtuelle (WinXP par exemple) sans connaitre l'adresse IP. Pour pouvoir y accéder, je tape "rdesktop -a 16 192.168.7.1".
Cela te permet de créer et d'installer une machine virtuelle sur un serveur sans interface graphique à partir d'un poste distant (avec interface graphique)
Oui par contre faut pas avoir plusieurs vm qui tournent en même temps je penses sinon il ne va pas savoir sur quelle vm se connecter.