Comment créer des machines virtuelles VirtualBox à partir d'un terminal Linux

Contenu

Logo VirtualBox

La plupart des fournisseurs de cloud louent des serveurs virtuels au lieu de matériel réel. Si vous avez l'intention de faire de même sur vos propres serveurs, s'il faut exécuter différents systèmes d'exploitation ou gérer plusieurs environnements, vous pouvez le faire totalement depuis votre terminal.

Si vous prévoyez seul utiliser des machines virtuelles, vous pourriez être intéressé par un hyperviseur. Un hyperviseur remplace votre système d'exploitation hôte et est conçu sur mesure pour gérer plusieurs machines virtuelles. Vous ne pourrez pas exécuter d'applications sur le système d'exploitation hôte, mais vous pouvez facilement virtualiser Ubuntu Server ou quelque chose et exécuter les applications au-dessus de l'hyperviseur.

Installation de VirtualBox et du pack d'extension VBox

VirtualBox est un logiciel de virtualisation sans frais basé sur une interface graphique qui s'exécute en tant qu'application sur votre système d'exploitation hôte (un hyperviseur de type 2). Vous l'avez peut-être déjà utilisé sur un ordinateur personnel pour configurer une machine virtuelle, mais VirtualBox a en fait une interface de ligne de commande complète et ne peut être pleinement utilisé qu'à partir d'un terminal, ce qui le rend parfait pour ce cas d'utilisation. Une autre solution serait QEMU, mais VirtualBox est testé et est imbattable pour être gratuit et open source.

Malgré cela, VirtualBox CLI est un peu difficile à gérer, donc si vous ne jouez que sur un serveur domestique et que vous avez un peu de RAM à revendre, vous pouvez installer un environnement de bureau léger sur votre serveur et configurer VirtualBox de manière normale. Vous pouvez toujours exécuter des machines virtuelles en mode sans tête pour qu'elles continuent de fonctionner après la déconnexion de DE.

Si vous prévoyez de vous en tenir à la CLI, l'installation est assez simple, puisqu'il est activé directement à partir de apt:

sudo apt-get install virtualbox

Malgré cela, vous voudrez noter la version qui est installée ( VBoxManage -v ), puisque vous aurez besoin d'installer quelques autres choses. Parce qu'on s'installe en mode sans tête, nous aurons besoin d'un moyen de se connecter à la machine avant que SSH puisse être configuré / RDP.

Se diriger vers Page de téléchargement de VirtualBoxet trouvez le lien du pack d'extension pour la version sur laquelle il s'exécute. Téléchargez-le avec wget:

wget https://download.virtualbox.org/virtualbox/5.2.42/Oracle_VM_VirtualBox_Extension_Pack-5.2.42.vbox-extpack

Et l'installer:

sudo VBoxManage extpack installer Oracle_VM_VirtualBox_Extension_Pack-5.2.42.extpack

Pour une raison quelconque, VRDE ne semblait pas fonctionner pour nous avec le pack d'extension VNC intégré installé. La suppression de ce paquet a résolu le problème:

sudo VBoxManage extpack désinstaller VNC

Configurer une machine virtuelle

Pour commencer, nous allons créer une nouvelle machine virtuelle appelée “Ubuntu”. Vous pouvez voir une liste des types de système d'exploitation pris en charge VBoxManage list ostypes.

sudo VBoxManage createvm --name "Ubuntu" --ostype Ubuntu_64 --register

Donnez de la RAM à la machine et créez un nouveau disque dur. nous irons avec 4 Go de RAM et 32 Go d'espace disque dur, mais les deux peuvent être étendus plus tard. Veuillez noter que le disque dur est un disque virtuel et n'est pas pré-alloué.

sudo VBoxManage modifyvm "Ubuntu" --Mémoire 4096
sudo VBoxManage createhd --filename "Ubuntu.vdi" --Taille 32000

Définir le nombre de CPU virtuels. Ceci est mesuré en fils, pas sur des cœurs de processeur complets.

sudo VBoxManage modifyvm "Ubuntu" --Processeurs 2

ce qui suit est une configuration de plus pour le disque dur. En général, cela se produit automatiquement lorsque vous créez des machines à partir de l’interface graphique, mais vous devrez créer manuellement un pilote sas et le connecter à la machine virtuelle pour que le disque dur fonctionne correctement.

sudo VBoxManage storagectl "Ubuntu" --Nom "Contrôleur SAS" --add sas --controller LSILogicSAS
sudo VBoxManage storageattach "Ubuntu" --stockagectl "Contrôleur SAS" --port 0 --appareil 0 --tapez hdd --medium "Ubuntu.vdi"
sudo VBoxManage storagectl "Ubuntu" --Nom "Contrôleur SAS" --hostiocache sur

Nous ferons de même avec le disque qui contiendra l’ISO pour installer le système d’exploitation. Cela suppose que votre ISO est à /home/user/Ubuntu.iso, par conséquent, modifiez-le en conséquence.

sudo VBoxManage storagectl "Ubuntu" --Nom "Contrôleur IDE" --add ide --controller PIIX4
sudo VBoxManage storageattach "Ubuntu" --stockagectl "Contrôleur IDE" --port 0 --appareil 0 --type dvddrive --medium "/accueil/utilisateur/Ubuntu.iso"

Après, activer certains commutateurs liés aux performances pour éviter les ralentissements dus à une utilisation excessive de la RAM:

sudo VBoxManage modifyvm "Ubuntu" --nestedpaging on
sudo VBoxManage modifyvm "Ubuntu" --largepages sur

Ensuite, nous allons créer le réseau que cette machine virtuelle utilisera. Il y a beaucoup d'options pour cette étape:

  • NAT, le plus simple, qui permet simplement à la VM de communiquer avec le monde extérieur via la traduction d'adresses réseau (NAT). Cela ne permet pas aux machines virtuelles de communiquer entre elles et ne permet pas le contact hôte-invité à moins que le port ne soit transféré.
  • Le réseau NAT est équivalent à NAT, sauf que le réseau est partagé entre les machines virtuelles et qu'elles peuvent communiquer entre elles. Le réseau NAT agit comme un sous-réseau virtuel.
  • Ponté, qui lie la connexion physique directement à la VM. La machine virtuelle a une vraie adresse IP sur votre réseau. Cela peut fonctionner même avec une seule connexion Wi-Fi / Ethernet, mais si vous avez une carte réseau avec de nombreux ports Ethernet, peut allouer une interface complète directement à une machine virtuelle.
  • Rouge virtuel, connexion de plusieurs instances dans un réseau virtualisé isolé. Ceci est utile pour la modélisation de réseaux réels, mais ne convient pas à la plupart des cas d’utilisation.
  • Adaptateur hôte uniquement, est équivalent au réseau virtuel, mais permet de parler à l’hôte (pas avec Internet).

Pour cet exemple, nous utiliserons le réseau NAT, puisqu’il est simple à configurer et le plus polyvalent du groupe, offrant un équilibre entre connectivité et isolement.

Créez un nouveau réseau dans le 10.0.0.0/24 sous-réseau, Commencer:

sudo VBoxManage natnetwork add --netname natnet1 --network "10.0.0.0/24" --enable
sudo VBoxManage natnetwork start --netname natnet1

Et attachez-le à la machine virtuelle:

sudo VBoxManage modifyvm "Ubuntu" --nic1 natnetwork --nat-network1 natnet1

Ensuite, nous devrons configurer comment nous accédons à cette instance. Parce que nous l'installons sur un serveur sans tête (pas de sortie vidéo), nous ne pourrons pas terminer la procédure d'installation et installer un client RDP sur le système d'exploitation invité. Pour résoudre ce, Nous utiliserons le serveur VirtualBox VRDE, la principale raison pour laquelle nous avons installé le pack d'extension VirtualBox plus tôt. Cela capture la sortie de l'écran virtuel et la rend disponible via RDP.

Activez-le et définissez un port pour cela. vous voudrez vous assurer que le système d’exploitation hôte a ce port ouvert.

sudo VBoxManage modifyvm "Ubuntu" --vrde on
sudo VBoxManage modifyvm "Ubuntu" --vrdeport 5587

Finalement, nous pouvons démarrer la machine virtuelle en mode sans tête et démarrer l’installation du système d’exploitation.

sudo VBoxManage startvm "Ubuntu" --type sans tête

Notez que le mode sans tête signifie que vous exécutez sur un serveur sans tête, et non pas que le système d’exploitation invité n’ait pas de sortie vidéo.

Il faudra une seconde ou deux pour commencer, et vous pourrez démarrer un client RDP et vous y connecter en utilisant le port que vous avez spécifié. Vous pouvez demander un nom d'utilisateur et un mot de passe; VRDE par défaut est “administrateur” pas de mot de passe.

Redirection de port après configuration

Une fois l'installation du système d'exploitation terminée, vous devrez effectuer une redirection de port pour conserver l'accès après la fermeture de VRDE, essentiellement comme l'ouverture de règles de pare-feu. Si vous configurez un environnement sans tête comme Linux, vous devrez simplement transférer SSH. La commande suivante ajoutera une règle de transfert de port à votre réseau NAT pour transférer le port 2200 sur le système d'exploitation hôte au port SSH par défaut sur l'invité. Notez que ce port devra être ouvert sur le pare-feu de votre hôte pour que cela fonctionne.

sudo VBoxManage natnetwork modifier --netname natnet1 --port-forward-4 "ssh:tcp:[]:2200:[10.0.0.2]:22"

Si vous configurez RDP, vous devrez configurer le serveur RDP dans le système d'exploitation invité et vous assurer que le port RDP est ouvert sur le pare-feu invité. Après cela, vous pouvez transférer le port de la même manière:

sudo VBoxManage natnetwork modifier --netname natnet1 --port-forward-4 "Rdp:tcp:[]:5589:[10.11.0.2]:3389"

Si vous devez effacer les règles de redirection de port, vous devrez les supprimer par nom avec cette commande plutôt lourde (la première chaîne avant le deux-points):

sudo VBoxManage natnetwork modify --netname natnet1 --port-forward-4 delete rdp

Une fois que vous avez vérifié que vous pouvez vous connecter via SSH / RDP directement sur le système d’exploitation invité, vous pouvez désactiver VRDE:

sudo VBoxManage modifyvm "Ubuntu" --vrde désactivé

Si vous prévoyez d'utiliser cette machine virtuelle sur RDP pendant de longues périodes, vous voudrez peut-être installer la suite VirtualBox Guest Additions pour votre système d'exploitation invité.


Si vous décidez de gérer VirtualBox à l'aide de l'interface graphique après avoir configuré cette machine virtuelle à partir de la CLI, notez que cette VM a été créée en tant que root, vous devrez donc démarrer l'interface graphique de VirtualBox en tant que root pour voir cette machine virtuelle dans la liste. Cas contraire, devrait travailler régulièrement.

En même temps, si vous voulez que la machine s'exécute pendant que votre environnement de bureau est éteint, vous devrez faire un clic droit pour démarrer la machine en mode sans tête.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.