Ecrire le environnement de developpement comme une commande: Vagrant

Résumé

Chaque equipe connait la conversation: le nouveau venu a passe deux jours a installer et cela signale encore des erreurs, et le meme code se comporte bizarrement sur une machine. Vagrant met le environnement dans un fichier, en declarant version du systeme, ports, dossiers partages et etapes de preparation, puis le construit en une commande.

Recommander
Nom
Vagrant
Version
2.4.10
Tarif
Gratuit
Open source
Propriétaire
Système
WindowsmacOSLinux
Mis à jour
2026-10-07 16:28

Le environnement ecrit au lieu de memorise

Chaque equipe a eu cette conversation. Un nouveau developpeur arrive, passe deux jours a installer, et le projet signale encore une erreur que personne ne reconnait. Le meme code marche sur une machine et se comporte bizarrement sur une autre, et la difference est une version de bibliotheque, un reglage de langue ou un chemin exporte dans un profil de shell il y a trois ans. Le savoir sur la facon de construire le environnement existe, mais il vit dans des tetes et dans les favoris de un ancien, ce qui signifie que une organisation ne le possede pas vraiment.

La reponse de Vagrant est de ecrire ce savoir. Un fichier de configuration declare la version du systeme, les ports a transmettre, les dossiers du hote visibles dans le invite et les etapes qui tournent au premier demarrage. De ce fichier le environnement est construit: une commande pour lever la machine, une pour y entrer. Le environnement cesse de etre ce que chacun installe de memoire et devient ce que tous recoivent, parce que la description est la meme.

Les consequences vont plus loin que la commodite. Les relectures deviennent utiles, car la personne qui relit peut reproduire exactement le environnement de celle qui signale. Le accueil des nouveaux cesse de etre une tradition orale. Et la question de savoir si cela marche sur une machine propre devient une commande au lieu de un debat.

capture

Declarer une fois, reproduire partout

La intelligence du dessin est de ne rien reinventer. La virtualisation reelle est confiee a une plateforme mure en dessous, que ce soit VirtualBox, VMware, Hyper-V ou un socle de conteneurs, et le travail de Vagrant est seulement de traduire une declaration en actions. Cette division explique sa longue vie: quand la technique du dessous progresse, le outil herite du progres sans changer de interface.

Un catalogue public de images pretes evite de construire les systemes courants depuis zero; on part de une boite existante et on decrit seulement ses differences. Et comme le fichier de configuration vit dans le depot a cote du code, les changements de environnement recoivent le meme traitement que ceux du code: une difference, une relecture, une validation et le retour possible a la version qui marchait.

Le enseignement gagne la meme propriete. Dans un atelier, le environnement du formateur et celui du participant sont identiques au octet pres, ce qui supprime une categorie entiere de questions et permet de consacrer la seance au sujet plutot que a installation.

Un effet discret merite un mot. Le fichier de configuration reste comme mode de emploi du environnement. Six mois plus tard, on ne se demande plus comment on avait monte les choses: on lit le fichier et on repart du meme etat.

Une note pratique qui economise un apres midi: le fichier de configuration est un programme et merite le meme soin que le code. Nommez la machine selon son role et non selon une personne, gardez les etapes de preparation dans un fichier a part reutilisable entre projets, et fixez la version de image au lieu de la laisser flotter. Une version flottante explique pourquoi une construction qui marchait en mars echoue en septembre et coute deux jours de recherche.

Et un point rarement ecrit: ce fichier est aussi de la documentation. Une personne qui arrive dans le equipe le lit et comprend quels services le application attend, quel port va ou et ce qui se passe au premier demarrage. Une bonne part de architecture se explique par la seule lecture.

La contribution de Vagrant est de faire passer le environnement de accord oral a accord ecrit: configuration comme code, environnement comme fait reproductible. Moins de desaccords, une livraison plus fluide.

Travailler avec lucidite

Trois habitudes. Garder le fichier de configuration dans le depot et le faire evoluer avec les memes numeros que le code, pour que les changements de environnement aient une histoire et un retour. Nettoyer regulierement les machines inutilisees, car un disque virtuel ne retrecit pas quand on efface des fichiers dedans, et un portable se remplit plus vite que prevu. Et prendre un instantane avant une experience importante, puisque la machine est censee etre jetable et que il ne sert a rien de jouer au brave.

Pour les cas legers ou une machine virtuelle entiere est trop lourde, une approche par conteneurs convient mieux, et les deux peuvent coexister dans le meme projet. Mais quand la tache demande vraiment un systeme complet, avec son noyau et son demarrage, ceci reste le chemin le plus direct pour transformer ce systeme en description plutot que en apres midi. Il est gratuit, tourne sur les trois plateformes et ne demande que decrire ce que on sait deja.

VagrantTéléchargement
Systèmes pris en charge : Windows macOS Linux