GNU/Linux >> Tutoriels Linux >  >> Ubuntu

VBoxHeadless - Exécution de machines virtuelles avec VirtualBox 5.1 sur un serveur Ubuntu 16.04 LTS sans tête

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.

  • VirtualBox :http://www.virtualbox.org/
  • Ubuntu :http://www.ubuntu.com/

Ubuntu
  1. Gestion d'une installation Headless VirtualBox avec phpvirtualbox (Ubuntu 16.04 LTS)

  2. Configuration initiale du serveur avec Ubuntu 20.04 LTS (Focal Fossa)

  3. Gardez le serveur Ubuntu en cours d'exécution sur un ordinateur portable avec le couvercle fermé ?

  4. Impossible de se connecter avec Vps exécutant Ubuntu Server 16 avec X2go ?

  5. Machines virtuelles hebdomadaires, avec scripts de construction

Comment installer le serveur VsFTPD avec TLS sur Ubuntu 18.04 LTS

Comment installer Jellyfin Media Server sur le serveur/bureau Ubuntu 20.04 LTS

Comment installer Plex Media Server sur le serveur/bureau Ubuntu 20.04 LTS

Comment installer phpMyAdmin avec Apache sur Ubuntu 22.04 LTS

Comment installer Ubuntu 22.04 LTS ISO dans VirtualBox VM pour le tester

Comment installer KVM et créer des machines virtuelles sur Ubuntu 16.04 LTS