VAGRANT · LAB INFRA · PRÉPROD
Monter un environnement vagrant multi machine proprement permet de valider une infra, un rôle Ansible ou un scénario réseau avant de toucher à la prod. Je pars ici d’un repo GitLab réel pour montrer une méthode simple, utile et reproductible.
📋 Au programme
Réponse rapide
Un lab vagrant multi machine utile repose sur plusieurs VM nommées, des IP fixes, des ports dédiés, un accès SSH reproductible et un objectif clair de validation. Le but n’est pas seulement de lancer plusieurs machines, mais de recréer un mini parc cohérent pour tester un rôle, une montée de version, une connectivité inter-services ou une checklist préproduction avant impact réel.

💡 À retenir
Le vrai gain d’un lab Vagrant multi-VM, ce n’est pas la démo. C’est la capacité à rejouer un test proprement, sur plusieurs OS, avec des paramètres stables, avant de pousser un changement sur une infra qui compte.
Pourquoi créer un lab Vagrant multi-VM avant de toucher à la vraie infrastructure
Quand une équipe doit valider une évolution système, un playbook Ansible ou une nouvelle combinaison de versions, le plus risqué reste souvent l’absence d’environnement intermédiaire crédible. Soit on teste sur un poste local trop simple, soit on improvise sur une VM de préprod mal tenue, soit on modifie la prod trop tôt.
Le mot-clé vagrant multi machine répond à ce problème concret. Avec plusieurs VM définies dans un même Vagrantfile, tu peux reproduire un petit parc de serveurs, rejouer les mêmes commandes et retrouver un environnement cohérent d’une session à l’autre.
Dans un contexte d’entreprise, ce type de lab permet de réduire le risque de dérive entre OS, de valider les prérequis et de raccourcir les allers-retours entre exploitation, automatisation et sécurité. C’est aussi un bon complément à un audit de gouvernance d’infrastructure quand il faut prouver comment les changements sont testés avant mise en production.
⚠️ Piège classique
Un lab jetable sans IP stables, sans conventions de nommage et sans scénario de recréation donne une fausse impression de sécurité. Il faut un environnement qu’on peut détruire et reconstruire sans surprise.
Ce que montre concrètement le repo GitLab vagrant-mon-infra
Le repo source utilisé ici est babidi34/vagrant-mon-infra. Le README pose les prérequis, et surtout le Vagrantfile définit déjà plusieurs machines avec leurs caractéristiques.
🧱
Multi-OS
Le lab couvre Debian 10, 11, 12, 13, CentOS 7 et AlmaLinux 8. C’est utile pour tester une automatisation sur plusieurs bases réelles.
🌐
IP fixes
Chaque VM a son IP privée, ce qui simplifie les tests de connectivité, d’inventaire et de rôles Ansible.
🔑
Accès SSH clair
Le projet prévoit une clé dédiée et des ports forwardés, pratique pour valider vite sans bricolage manuel.
🧪
Reproductible
Tu peux détruire et recréer le lab pour rejouer un scénario proprement et éviter les environnements qui dérivent.
Comment structurer les VM dans un Vagrantfile multi-machine
L’intérêt d’un Vagrantfile multi-VM est de centraliser dans un seul fichier la définition des machines, des ressources et du réseau. Dans le repo, on retrouve une logique claire : nom de machine, box, CPU, mémoire, port forwardé et IP privée.
# Exemple simplifié inspiré du repo
Vagrant.configure("2") do |config|
config.vm.define "debian13-test" do |node|
node.vm.box = "debian/trixie64"
node.vm.network "private_network", ip: "192.168.56.183"
node.vm.network "forwarded_port", guest: 22, host: 2228, id: "ssh"
end
end
Ce type de structure permet de savoir immédiatement quelle VM sert à quoi. C’est beaucoup plus fiable qu’un ensemble de machines lancées à la main avec des paramètres oubliés au fil du temps.
# Démarrer tout le lab
vagrant up
# Cibler une seule machine
vagrant up debian13-test
# Se connecter en SSH
vagrant ssh debian13-test
Si tu veux utiliser ce lab pour de l’automatisation, le plus important est la stabilité des noms et des IP. C’est ce qui rend les tests rejouables dans le temps.
# Exemple de validation Ansible après démarrage du lab
ansible -i inventory all -m ping
ansible-playbook -i inventory site.yml
Ce genre de validation s’intègre bien avec une démarche d’maintenance de serveurs Linux quand tu veux éviter les changements non testés sur des machines critiques.
Checklist de validation avant de toucher à la production
✅ Vérifier le provisionnement
Le vagrant up doit se terminer sans erreur et toutes les VM prévues doivent être présentes.
✅ Tester l’accès SSH
Chaque machine doit répondre correctement via vagrant ssh nom-machine.
✅ Valider l’inventaire et les flux réseau
Les IP, les noms de machines et les flux attendus doivent correspondre à ce que tes playbooks ou scripts consomment réellement.
✅ Rejouer le scénario complet
Teste la recréation avec vagrant destroy puis vagrant up pour confirmer que le lab reste sain dans le temps.
Erreurs fréquentes avec un lab Vagrant multi machine
⏱ IP conflitantes
Si tu ne fixes pas les IP, tu compliques les tests réseau, l’inventaire et les diagnostics entre services.
⏱ Ports hôtes déjà utilisés
Les forwarded_port doivent être uniques, sinon le démarrage devient aléatoire ou casse dès le départ.
⏱ Lab trop éloigné de la réalité
Un lab qui ne ressemble pas assez à la cible donne une fausse confiance. Il faut coller au plus près des versions et du scénario réel.
⏱ Lab non rejoué
Un test validé une seule fois ne vaut pas grand-chose si tu ne peux pas reconstruire l’environnement à l’identique plus tard.
FAQ
Tu veux tester ton infra avant la prod sans bricoler ?
Je peux t’aider à cadrer un lab de validation, fiabiliser tes tests d’automatisation et sécuriser la mise en production de ton infrastructure Linux.