Vagrant¶
Vagrant est un outil open source qui permet de créer des machines virtuelles de manière simple et reproductible.
Points clés¶
- Vagrant est principalement utilisé pour créer des machines virtuelles de DEV à partir d'un fichier
Vagrantfile
(i.e. as code). - Vagrant supporte plusieurs systèmes de virtualisation tels VirtualBox et VMware (voir www.vagrantup.com - providers)
- Vagrant s'appuie sur des images de VM au format
.box
- Un dépôt d'image publique permet de rechercher une image de VM compatible avec son système de virtualisation (
virtualbox
,libvirt
(KVM),...)
Installation¶
- https://www.vagrantup.com/downloads permet le téléchargement pour Windows et MacOS et donne les instructions pour l'utilisation du dépôt APT pour l'installation sur une machine Debian/Ubuntu
- vagrant/install.sh installe l'exécutable vagrant en ajoutant au besoin le dépôt hashicorp :
curl -sS https://mborne.github.io/outils/vagrant/install.sh | bash
- vagrant/install-vagrant-libvirt.sh assure l'installation du plugin "vagrant-libvirt" pour KVM :
curl -sS https://mborne.github.io/outils/vagrant/install-vagrant-libvirt.sh | bash
Utilisation¶
Voir :
- Vagrant - TP de prise en main de Vagrant dans le cadre du cours DevOps avec des VM.
- Les commandes ci-après qui illustrent la création et l'utilisation d'un fichier pour créer une VM jetable :
# Si vagrant dans WSL2
export VAGRANT_WSL_ENABLE_WINDOWS_ACCESS="1"
# Si utilisation de KVM
export VAGRANT_DEFAULT_PROVIDER=libvirt
# Préparation d'un dossier pour la VM
mkdir vagrant/helloworld
cd vagrant/helloworld
# Création du Vagrantfile dans ce dossier
# NB : KVM non supporté par ubuntu/jammy64
vagrant init generic/ubuntu2204
# Afficher l'aide de vagrant
vagrant -h
# Démarrage de la VM
vagrant up
# Ouverture d'un terminal
vagrant ssh
Ressources¶
- Vagrant - TP de prise en main de Vagrant
- Vagrant - getting started qui guide pour débuter en l'absence d'un proxy HTTP (par exemple sur une machine perso connectée à une box internet standard).
- app.vagrantup.com - Discover Vagrant Boxes
- gist.github.com - wpscholar/vagrant-cheat-sheet.md qui liste les principales commandes de vagrant.
Remarques¶
- code.gouv.fr - SILL - Vagrant mentionne que l'outil n'est plus recommandé depuis le 25 septembre 2023 suite à un changement de licence.
- A ce titre, il serait probablement pertinent de basculer sur multipass + cloud-init dans le cadre du cours DevOps avec des VM où Vagrant est présenté pour illustrer la création de VM as code.
- Nous voyons toutefois par la suite DevOps avec des conteneurs et ces derniers sont désormais largement plus utilisé que les VM pour les environnements de DEV.