Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

Tag - machine virtuelle

Fil des billets - Fil des commentaires

dimanche 28 octobre 2018

Utiliser VirtualBox 5.2 sur Debian Jessie

Si vous utilisez Debian 8 (Jessie) et VirtualBox, vous avez sans doute remarqué que la version de VirtualBox du dépôt Debian date un peu, puisque c'est une version 4.3.40 qui date de l'été 2016.

On souhaitera donc installer la version maintenue de VirtualBox, la 5.2, comme indiqué sur le Wiki de VirtualBox.

Une fois cette version installée, si vous créez une machine virtuelle, par exemple avec Vagrant, vous obtiendrez certainement l'erreur suivante:

There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "b81392d9-6f90-4c80-87e0-91bd0d95ef56", "--type", "headless"]

Stderr: VBoxManage: error: The virtual machine 'test_vbox_52_default_1540707024933_47897' has terminated unexpectedly during startup with exit code 1 (0x1)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, interface IMachine

La machine virtuelle ne démarre pas !

La cause est la suivante: VirtualBox 5.2 essaie d'utiliser les "kernels modules" de la version 4.3 de VirtualBox et ce même si on a supprimé tous les paquets correspondants à cette version :-(

Il nous faut donc reconstruire ces modules par:

# sudo rcvboxdrv setup
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.

Comme indiqué à la fin du paragraphe suivant.

Et la VM va maintenant démarrer.

D'ailleurs, si vous regardez bien, VirtualBox 5.2 ne comporte pas de paquet virtualbox-dkms comme c'était le cas auparavant. Un seul paquet est installé:

# dpkg --list | grep virtualbox
ii  virtualbox-5.2                        5.2.20-125813~Debian~jessie                amd64        Oracle VM VirtualBox

Voilà, vous pouvez utiliser la dernière version de VirtualBox et la version la plus récente de Vagrant sur Debian Jessie.

dimanche 14 octobre 2018

Vagrant: une VM Debian en Français avec GUI en 3mn

Vagrant est un outil open source qui permet de créer et de configurer des machines virtuelles très rapidement. Depuis l'arrivée de Docker, on parle beaucoup moins de Vagrant qui existe depuis 2010.

Comme Docker, on part d'une image de base pour construire sa propre image. La terminologie Vagrant parle de 'box'. Par défaut, Vagrant utilise VirtualBox pour créer les VMs.

Mais les 'box' de bases sont quasiment tout le temps:

  • Sans environnement graphique
  • Avec un clavier en Anglais

Le deuxième point n'étant génant que si l'on veut avoir le premier ! Dans le cas contraire, on se connecte à la box en SSH et le tour est joué.

Donc, pour disposer d'une machine virtuelle avec un environnement graphique, on va 'provisionner' notre VM comme suit:

Dans un premier temps, il faut indiquer à Vagrant d'afficher l'UI de VirtualBox:

  config.vm.provider "virtualbox" do |vb|
    vb.name = "Debian with Mate"
    vb.gui = true
    vb.memory = "4096"
  end

Sans cela, l'environnement graphique ne s'affichera tout simplement pas !

Puis on va installer quelques logiciels sur la VM:

  config.vm.provision "shell", inline: <<-SHELL
    apt-get --quiet update
    apt-get --assume-yes upgrade
    apt-get --assume-yes install lightdm mate-desktop-environment
    echo "autologin-user=vagrant" | tee --append /usr/share/lightdm/lightdm.conf.d/01_debian.conf
    sed --in-place s/us/fr/g /etc/default/keyboard
    systemctl reboot
  SHELL

On commence par mettre à jour le système, puis on installe Mate, plus léger que nombre d'autres environnements graphiques, ainsi qu'un 'Display Manager', lightdm sera très bien.

Il ne reste qu'à:

  • Activer la connexion automatique
  • Définir le clavier en Français

Je vois souvent plein d'instructions compliquées pour passer le clavier en Français, alors qu'il suffit de changer une ligne dans le fichier /etc/default/keyboard !!!

Vous noterez que je préfère les options longues des commandes. Je trouve que c'est plus lisible comme cela, on ne se souvient pas toujours de ce que fait l'option -i ou -q ...

Enfin, la dernière ligne des instructions de provisioning est requise:

systemctl reboot

et permet de:

  • Prendre en compte la configuration du clavier en Français
  • Se loguer automatiquement

Voilà, c'est fini, en 3mn, vous êtes sous Debian avec Mate et déjà connecté !

jeudi 27 avril 2017

Machine Virtuelle, réseau NAT et redirection de ports

Quand on crée une machine virtuelle avec VirtualBox, le réseau créé par défaut est de type NAT.

Avec le réseau NAT, dans lequel aucune configuration n'est nécessaire, on peut naviguer sur Internet, lire les mails et de manière générale les applications de la machine virtuelle ont accès au réseau.

Dans ce mode réseau, le moteur réseau de VirtualBox agit comme un routeur qui dirige le traffic depuis et vers la machine virtuelle sans configuration de votre part. Chaque machine virtuelle a certes accès au réseau mais pas aux autres machines virtuelles ni à la machine hôte. La machine virtuelle en mode NAT est donc comme dans un réseau privé, connectée au réseau mais invisible de l'extérieur, y compris de sa machine hôte.

On peut s'en convaincre facilement avec la commande ping depuis la machine virtuelle vers la machine hôte et inversement: la VM voit la machine hôte mais l'inverse n'est pas vrai.

Mais alors, si la machine hôte ne voit pas la machine virtuelle, comment faire par exemple pour se connecter en ssh à la machine virtuelle depuis la machine hôte ? De la même façon qu'avec un routeur: en utilisant la redirection de ports.

On va donc configurer le moteur réseau de VirtualBox pour que les connexions sur le port 2222 de la machine hôte soient redirigées sur le port 22 de la machine virtuelle comme ceci:

Capture-Regles_de_redirection_de_ports-1.png

Il ne me reste plus qu'à me connecter à la machine virtuelle comme ceci:

ssh -p 2222 debian@192.168.0.1

Vous noterez que j'ai choisi un port d'écoute d'une valeur supérieure à 1024 (2222) puisque le moteur de VirtualBox se met à l'écoute sur la machine hôte sans avoir les droits administrateurs. Utiliser un port inférieur à 1024 aurait échoué.

Si maintenant je souhaite accéder à un serveur Web démarré sur la machine virtuelle, il faut effectuer une deuxième redirection de port, et ainsi de suite.

- page 1 de 2