Ce guide explique comment vous pouvez exécuter des machines virtuelles avec VirtualBox 5.1 sur un serveur Ubuntu 16.04 sans tête. Normalement, vous utilisez l'interface graphique de VirtualBox pour gérer vos machines virtuelles, mais un serveur n'a pas d'environnement de bureau. Heureusement, VirtualBox est livré avec un outil appelé VBoxHeadless qui vous permet de vous connecter aux machines virtuelles via une connexion de bureau à distance, vous n'avez donc pas besoin de l'interface graphique de VirtualBox.
1 Remarque préliminaire
J'ai testé cela sur un serveur Ubuntu 16.04 (système hôte) avec l'adresse IP 192.168.1.100 où je suis connecté en tant qu'utilisateur normal (nom d'utilisateur administrateur dans cet exemple) au lieu de root.
2 Installer VirtualBox
Pour installer VirtualBox 5.1 sur notre serveur Ubuntu 16.04, nous ouvrons /etc/apt/sources.list...
sudo nano /etc/apt/sources.list
... et ajoutez-y la ligne suivante :
deb http://download.virtualbox.org/virtualbox/debian xenial contrib
Ensuite, nous téléchargeons la clé publique de VirtualBox...
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
... et mettre à jour notre base de données de packages :
sudo apt-get update
Ensuite, nous installons VirtualBox 5.1 comme suit :
sudo apt-get install linux-headers-$(uname -r) build-essential virtualbox-5.1 dkms
(Le package dkms garantit que les modules du noyau de l'hôte VirtualBox sont correctement mis à jour si la version du noyau Linux change.)
À partir de la version 4.0, VirtualBox a introduit des "packs d'extension" et a externalisé certaines fonctionnalités telles que la prise en charge de la connexion au bureau à distance (VRDP) qui faisait partie des packages VirtualBox avant la version 4.0 dans ces packs d'extension. Comme nous avons besoin de connexions de bureau à distance pour contrôler nos machines virtuelles, nous devons installer le pack d'extension approprié maintenant. Allez sur http://www.virtualbox.org/wiki/Downloads, et vous trouverez un lien vers le pack d'extension suivant :
VirtualBox 5.1 Oracle VM VirtualBox Extension Pack
Téléchargez et installez le pack d'extension comme suit :
cd /tmp
wget http://download.virtualbox.org/virtualbox/5.1.0/Oracle_VM_VirtualBox_Extension_Pack-5.1.0-108711.vbox-extpack
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.1.0-108711.vbox-extpack
(Assurez-vous de récupérer la dernière version sur le site Web de VirtualBox et d'utiliser sudo pour installer le fichier extpack avec VBoxManage.)
Nous devons maintenant ajouter l'utilisateur qui exécutera VirtualBox (l'administrateur dans cet exemple) au groupe vboxusers :
sudo adduser administrator vboxusers
VirtualBox est maintenant installé et prêt à être utilisé.
3 Utiliser VirtualBox sur la ligne de commande
3.1 Créer une VM
Pour créer une VM en ligne de commande, nous pouvons utiliser la commande VBoxManage. Voir
VBoxManage --help
pour une liste des commutateurs disponibles et (fortement recommandé !) Consultez http://www.virtualbox.org/manual/ch08.html.
Je vais maintenant créer une machine virtuelle Ubuntu 16.04 Server avec 2048 Mo de mémoire et un disque dur de 10 Go à partir de l'image iso Ubuntu 16.04 Server (que j'ai stockée dans /home/administrator/iso/ubuntu-16.04-server-amd64.iso):
VBoxManage createvm --name "Ubuntu 16.04 Server" --register
VBoxManage modifyvm "Ubuntu 16.04 Server" --memory 2048 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 ens33
VBoxManage createhd --filename /home/administrator/Ubuntu_16_04_Server.vdi --size 10000
VBoxManage storagectl "Ubuntu 16.04 Server" --name "IDE Controller" --add ide
VBoxManage storageattach "Ubuntu 16.04 Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /home/administrator/Ubuntu_16_04_Server.vdi
VBoxManage storageattach "Ubuntu 16.04 Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/administrator/iso/ubuntu-16.04-server-amd64.iso
VBoxManage modifyvm "Ubuntu 16.04 Server" --vrde on
Passez maintenant au chapitre 3.3 pour démarrer la machine virtuelle, puis connectez-vous à la machine virtuelle avec un client de bureau à distance, comme décrit au chapitre 4.
3.2 Importer une VM existante
Supposons que vous ayez une machine virtuelle appelée examplevm que vous souhaitez réutiliser sur cet hôte. Sur l'ancien hôte, vous devriez avoir un répertoire Machines/examplevm dans le répertoire VirtualBox; Machines/examplevm doit contenir le fichier examplevm.xml. Copiez le répertoire examplevm (y compris le fichier examplevm.xml) dans votre nouveau répertoire Machines (si votre nom d'utilisateur est administrateur, c'est /home/administrateur/.VirtualBox/Machines - le résultat devrait être /home/administrateur/.VirtualBox/Machines /examplevm/examplevm.xml).
En plus de cela, copiez le fichier examplevm.vdi de l'ancien répertoire VDI vers le nouveau (par exemple /home/administrator/.VirtualBox/VDI/examplevm.vdi).
Ensuite, vous devez enregistrer la VM importée :
VBoxManage registervm Machines/examplevm/examplevm.xml
3.3 Démarrage d'une VM avec VBoxHeadless
Que vous créiez une nouvelle VM ou que vous en importiez une ancienne, vous pouvez la démarrer avec la commande :
VBoxHeadless --startvm "Ubuntu 16.04 Server"
(Remplacez Ubuntu 16.04 Server par le nom de votre VM.)
VBoxHeadless démarrera la VM et un serveur VRDP (VirtualBox Remote Desktop Protocol) qui vous permet de voir la sortie de la VM à distance sur une autre machine.
Pour arrêter une VM, exécutez
VBoxManage controlvm "Ubuntu 16.04 Server" poweroff
Pour suspendre une VM, exécutez
VBoxManage controlvm "Ubuntu 16.04 Server" pause
Pour réinitialiser une machine virtuelle, exécutez
VBoxManage controlvm "Ubuntu 16.04 Server" reset
Pour en savoir plus sur VBoxHeadless, jetez un œil à
VBoxHeadless --help
et sur http://www.virtualbox.org/manual/ch07.html#vboxheadless.
4 Se connecter à une VM depuis un bureau à distance
Windows 4.1
Vous pouvez utiliser l'utilitaire de connexion Bureau à distance intégré pour vous connecter à la machine virtuelle.
Tapez le nom d'hôte ou l'adresse IP de l'hôte (pas de l'invité !) :
Et voilà, vous devriez être connecté à la VM :
4.2 Bureau Ubuntu
Sur les postes de travail Ubuntu, vous pouvez utiliser le client de bureau à distance Remmina ou gnome-rdp pour vous connecter à la VM.
Installez le client avec apt :
sudo apt-get install remmina remmina-plugin-rdp
Recherchez simplement remmina, puis double-cliquez sur l'icône du client Remmina pour démarrer l'application RDP.
Dans le client de bureau à distance Remmina, cliquez sur l'icône plus pour ajouter une nouvelle connexion de bureau à distance :
Dans la fenêtre Préférences Bureau à distance, saisissez un nom pour le profil (comme Ubuntu 16.04 Server), assurez-vous que RDP est sélectionné comme protocole (il doit être sélectionné par défaut), puis remplissez l'adresse IP de l'hôte - pas l'IP de l'invité VirtualBox ! - dans le champ Serveur, et sélectionnez une profondeur de couleur supérieure à la valeur par défaut de 8bpp - 16bpp est ok. Cliquez ensuite sur Connecter :
Et voilà, vous devriez être connecté à la VM :
4.3 Si la connexion Bureau à distance ne fonctionne pas...
Si la connexion au bureau à distance ne fonctionne pas, vous avez probablement manqué l'étape où j'installe le pack d'extension VirtualBox au chapitre 2. Veuillez installer le pack d'extension maintenant, arrêtez votre machine virtuelle (voir chapitre 3.3) et modifiez votre machine virtuelle pour accepter les connexions Bureau à distance :
VBoxManage modifyvm "Ubuntu 16.04 Server" --vrde on
(Si le pack d'extension est déjà installé lorsque vous créez votre machine virtuelle, les connexions de bureau à distance sont automatiquement activées.)
Redémarrez ensuite votre machine virtuelle.
5 liens
- VirtualBox :http://www.virtualbox.org/
- Ubuntu :http://www.ubuntu.com/