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é !