Vagrant – Industrialiser la création de machines virtuelles (VM)
J’ai découvert très récemment Vagrant. Je vais donc vous parler plus précisément de mon utilisation, mais si ça se trouve vous avez d’autres cas d’usage. L’idée de Vagrant, c’est de pouvoir créer/monter des machines virtuelles sous VirtualBox, VMWare voire même AWS (en suivant un tuto). Vous me direz qu’il n’y a rien de spectaculaire à cela. En fait, Vagrant se base sur un script écrit par vous. Il peut donc reproduire à l’infini le système d’exploitation que vous désirez avec telle ou telle configuration. Pour ma part, j’utilise Vagrant pour monter des machines de tests pré-configuration (connexion réseaux, compte utilisateur…)
Pour tout complément d’information sur Vagrant, je vous conseille de lire cette page en anglais.
Installation de Vagrant
Tout d’abord, rendez-vous sur cette page de téléchargement. Puis téléchargez le bon fichier correspondant à votre système d’exploitation. Sachez que si vous êtes sous Ubuntu, vous pouvez exécuter les commandes suivantes :
La première instruction permet d’installer VirtualBox, l’outil de référence Open Source permettant de créer des machines virtuelles.
sudo apt install virtualbox
Ensuite, nous allons installer Vagrant avec cette simple commande :
sudo apt install vagrant
Pour vérifier que l’installation s’est bien passée, vous connaissez le rituel de la version installée : il faut faire un :
vagrant --version
Voici le résultat que j’obtiens au moment où j’écris cet article :
Écriture d’un script Vagrant (VagrantFile) pour créer un Ubuntu
Je vous propose de rentrer dans le vif du sujet et de commencer avec un premier script léger.
Vagrant.configure('2') do |config|
config.vm.box = 'ubuntu/trusty64'
config.vm.network :private_network, ip: '10.10.10.10'
end
Commençons par la première ligne Vagrant.configure(‘2’). Cela signifie que l’on écrit notre script en V2 de Vagrant. Il n’y a actuellement que deux versions de scriptage. Sur la deuxième partie de la ligne on demande à Vagrant de faire ce qu’il y a écrit dans cette configuration.
La deuxième ligne signifie que l’on veut une machine virtuelle Ubuntu à 64 bits.
La troisième ligne indique que l’on souhaite une adresse IP fixe, qui nous permettra de réaliser plein choses par la suite (connexion ssh, serveur web, …). Vous pouvez changer l’adresse IP par ce que vous voulez, j’ai mis 10.10.10.10 pour que ça soit simple à retenir.
La dernière instruction end signifie la fin de la déclaration de la configuration.
Lancer une machine virtuelle avec un VagrantFile
On arrive enfin à la partie fun : lancer – avec une seule commande – un environnement basé sur un script. Avant tout, vous devez créer un fichier qui respecte bien ce nom : Vagrantfile.
Ensuite, copiez-collez le script que nous avons étudié ci-dessus puis enregistrez bien votre fichier. Il ne vous reste plus qu’à exécuter la commande suivante à l’endroit même où se trouve le script :
vagrant up
Une fois la commande exécutée, vous avez dû vous rendre compte qu’il vous faut une bonne connexion internet. En effet, Vagrant va télécharger l’ISO d’Ubuntu. Si ce n’est pas la première fois qu’il l’installe, rassurez-vous : il ira piocher dans son cache. Vous devriez maintenant voir la même console que moi :

Je vous propose de lire ce qu’il y a dans la console. C’est hyper intéressant car toutes les étapes sont détaillées. Vous avez le téléchargement/l’importation de l’ISO d’Ubuntu, le montage réseau, la préparation du ssh (sinon ça bloque pour faire des opérations ou des tests de commandes en ssh). Même le montage de dossier partagé est géré, c’est pas beau la vie ? Si vous faites un petit tour sur votre cher ami VirtualBox, vous vous rendrez compte qu’une nouvelle machine a fait son apparition.

Comme vous pouvez le constater, il y a une machine paramétrée par Vagrant qui tourne. Elle a un nom bizarre (mais c’est paramétrable). Et si vous êtes encore plus curieux, vous pouvez cliquer sur le bouton Show pour voir dans quel état est votre machine. Vous obtiendrez ce résultat :
Commandes classiques Vagrant
Pour accéder facilement à votre machine virtuelle avec ssh, vous devez simplement taper la commande suivante :
vagrant ssh
Voici ce que renvoie la commande : un mode console dans lequel on peut lancer tout ce que l’on souhaite à l’intérieur de notre machine.
Pour arrêter la machine, vous pouvez lancer la commande suivante :
vagrant halt
Pour détruire la machine ? C’est plus brutal, avec la commande suivante :
vagrant destroy
Conclusion
J’espère que cet article vous aura permis de comprendre la base de Vagrant. Vous pourrez vous vous en servir en fonction de vos cas d’usages. Dans le prochain article, j’ai prévu de vous présenter Ansible. Ensuite je vous montrerai comment lier les deux. Par exemple pour monter un WordPress sur un serveur distant, ou directement avec une machine locale grâce à Vagrant. Il y a plein de sujets intéressants dans ce domaine et j’espère que ça vous inspire autant que moi.