RousselTMLEARNING

Automatisation

Vagrant : vue d'ensemble et vocabulaire (box, provider, provisioner, Vagrantfile)

Les notions indispensables pour suivre la formation Vagrant : à quoi sert Vagrant, le cycle de vie d'un environnement, et le vocabulaire box, provider, provisioner, Vagrantfile, synced folder et plugin.

1. À quoi sert Vagrant ? #

Des environnements identiques pour toute l'équipe.

Le problème #

« Ça marche sur ma machine » : chaque développeur installe ses outils à la main, avec des versions différentes du système, des bibliothèques et des services. Les écarts avec la production se découvrent tard.

Vagrant (HashiCorp) décrit un environnement de travail dans un fichier texte, le Vagrantfile, versionné avec le code. Une seule commande, vagrant up, crée la même machine virtuelle sur tous les postes, la configure et la rend accessible.

Architecture de Vagrant
Vagrant n'exécute pas lui-même les machines : il pilote un provider et lance les provisioners.

Les cas d'usage #

  • Environnement de développement identique pour toute l'équipe, proche de la production.
  • Laboratoire jetable pour tester un rôle Ansible, une mise à jour ou une configuration réseau.
  • Formation et démonstrations : un environnement prêt en quelques minutes.
  • Tester plusieurs systèmes (Ubuntu, Rocky Linux, Windows) sans les installer.

2. Le vocabulaire #

Les mots qui reviennent dans toute la formation.

Les notions clés #

TermeDéfinitionExemple
BoxImage de base (système préinstallé) téléchargée une fois puis réutiliséebento/ubuntu-24.04
ProviderLogiciel qui exécute la machineVirtualBox, libvirt (KVM), Hyper-V, VMware, Docker
ProvisionerOutil qui configure la machine après son démarrageshell, file, Ansible, Docker, Puppet
VagrantfileFichier Ruby qui décrit la ou les machinesà la racine du projet
Synced folderDossier partagé entre l'hôte et la machinele projet est monté sur /vagrant
PluginExtension de Vagrantvagrant-libvirt, vagrant-hostmanager

Un premier Vagrantfile #

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-24.04"
  config.vm.hostname = "dev"
  config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.provider "virtualbox" do |vb|
    vb.memory = 2048
    vb.cpus = 2
  end
  config.vm.provision "shell", inline: "apt-get update && apt-get install -y nginx"
end

3. Le cycle de vie #

Créer, utiliser, arrêter, détruire.

Les commandes #

Cycle de vie Vagrant
On détruit et on recrée sans crainte : tout est décrit dans le Vagrantfile.
vagrant init bento/ubuntu-24.04   # crée un Vagrantfile minimal
vagrant up                         # crée et démarre (puis provisionne la première fois)
vagrant status                     # état des machines du projet
vagrant ssh                        # shell dans la machine
vagrant provision                  # relance les provisioners
vagrant reload --provision         # redémarre en appliquant les changements du Vagrantfile
vagrant halt                       # arrêt propre
vagrant destroy -f                 # suppression complète
vagrant global-status --prune      # toutes les machines Vagrant du poste

Vagrant face aux autres outils #

OutilRôleQuand le préférer
VagrantEnvironnements de développement en machines virtuellesBesoin d'un vrai système complet (noyau, systemd, réseau)
Docker / ComposeConteneurs applicatifsApplications conteneurisées, démarrage en secondes
PackerConstruction d'images (boxes, AMI)Produire les images de base
TerraformInfrastructure de production (cloud)Créer des ressources durables chez un fournisseur
Bonne Pratique : Vagrant est fait pour le poste du développeur et les laboratoires, pas pour la production : utilisez Terraform et des images Packer pour cela.

Articles liés

Vagrant multi-machines : déployer un cluster Docker Swarm prêt à l'emploi

Construire avec un seul Vagrantfile un cluster Docker Swarm de trois nœuds (un manager, deux workers) dont la…

Les plugins Vagrant : étendre providers, provisioners et commandes

Comprendre le système de plugins de Vagrant : ce qu'un plugin peut ajouter (provider, provisioner, commande, …

Partager un environnement Vagrant : ngrok et le plugin vagrant-share

Rendre une application qui tourne dans une machine Vagrant accessible à un collègue ou un client : redirectio…

Pour aller plus loin

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !