From fb7fe9b4f52785692efac898904bd072234e6d56 Mon Sep 17 00:00:00 2001 From: whirigoyen Date: Mon, 15 Jan 2024 18:00:25 +0100 Subject: [PATCH] =?UTF-8?q?R=C3=A9organisation=20de=20sections=20+=20ajout?= =?UTF-8?q?=20d'un=20quickstart?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HowtoVagrant.md | 193 +++++++++++++++++++++++++++++------------------- 1 file changed, 116 insertions(+), 77 deletions(-) diff --git a/HowtoVagrant.md b/HowtoVagrant.md index 200a539a..2bd479d1 100644 --- a/HowtoVagrant.md +++ b/HowtoVagrant.md @@ -19,7 +19,77 @@ apt install vagrant Des paquets Debian officiels (maintenus par Hashicorp) sont aussi disponibles pour des versions plus récentes, mais sans dépôt : -## Configuration d'un environnement avec le `Vagrantfile` +## Quickstart + +Prérequis : `libvirt`, DHCP + +Créer un fichier `Vagrantfile` dans un répertoire dédié : + +~~~ +Vagrant.configure("2") do |config| + config.vm.provider :libvirt do |libvirt| + libvirt.memory = 1024 + libvirt.cpus = 2 + libvirt.keymap = "fr" + end + + config.vm.box = "debian/bookworm64" + + config.vm.define :test_vagrant do |node| + node.vm.hostname = "test-vagrant" + end + + config.vm.synced_folder "./", "/vagrant", disabled: true +end +~~~ + +Lancer la box : + +~~~ +$ vagrant up test_vagrant +~~~ + +Se connecter à la box : + +~~~ +$ vagrant ssh test_vagrant +vagrant@test-vagrant:~$ +~~~ + + +## Fonctionnement + +### Boxes + +Vagrant utilise des [boxes](https://developer.hashicorp.com/vagrant/docs/boxes) pour créer des VMs ou des conteneurs. + +Ce sont des images de systèmes pré-installés. + +On peut trouver des boxes dans le [catalogue public de son éditeur HashCorp](https://vagrantcloud.com/boxes/search). + +Les boxes sont nommées par fournisseurs, par exemple : + +* `debian/bullseye64` +* `debian/bookworm64` + +On peut aussi les récupérer en spécifiant une URL plutôt à la place du nom de la box. + + +### Providers + +Vagrant permet de lancer et configurer des boxes dans VirtualBox, Libvirt, LXC, VMware, Docker, Amazon EC2 et autres. + +Ces providers peuvent être locaux ou situés sur des serveurs distants. + + +#### Libvirt + +Les boxes et les images `QCOW2` du provider `libvirt` sont stockées par défaut dans `/var/lib/libvirt/images/`. + +Par défaut, le volume de stockage est une image au format `QCOW2`, ce qui éviter d'avoir à réserver de l'espace disque. + + +## Syntaxe - Configuration d'un environnement avec le `Vagrantfile` Le `Vagrantfile` est unique à un projet et doit être situé dans le répertoire racine de ce dernier. @@ -131,82 +201,7 @@ config.vm.provider :virtualbox do |v| ~~~ -#### Configurer localement le provider par défaut - -Si le `Vagrantfile` de l'environnement est partagé entre plusieurs utilisateurs, ceux-ci peuvent souhaiter utiliser différents providers. - -Pour cela, on peut créer un fichier `~/.Vagrantfile` local, configurant le provider par défaut de l'utilisateur. Par exemple, pour utiliser par défaut le provider `libvirt` : - -~~~ -Vagrant.configure("2") do |config| - config.vm.provider "libvirt" -end -~~~ - -Ensuite, il faut mettre dans le `Vagrantfile` de chaque environnement cet en-tête : - -~~~ -# Load ~/.Vagrantfile if exist, permit local config provider -vagrantfile = File.join("#{Dir.home}", '.Vagrantfile') -load File.expand_path(vagrantfile) if File.exists?(vagrantfile) -~~~ - -Si `~/.Vagrantfile` n'existe pas et qu'aucun provider n'est défini, le provider par défaut du système sera utilisé. - - -### Synchroniser un répertoire entre l'hôte et l'invité - - - - -#### Avec Rsync - -*Documentation à venir* - - - -Synchroniser automatiquement le répertoire : - -~~~ -vagrant rsync-auto -~~~ - -Voir la [documentation](https://developer.hashicorp.com/vagrant/docs/synced-folders/rsync). - - - -## Fonctionnement - -### Boxes - -Vagrant utilise des [boxes](https://developer.hashicorp.com/vagrant/docs/boxes) pour créer des VMs ou des conteneurs. - -Ce sont des images de systèmes pré-installés. - -On peut trouver des boxes dans le [catalogue public de son éditeur HashCorp](https://vagrantcloud.com/boxes/search). - -Les boxes sont nommées par fournisseurs, par exemple : - -* `debian/bullseye64` -* `debian/bookworm64` - -On peut aussi les récupérer en spécifiant une URL plutôt à la place du nom de la box. - - -### Providers - -Vagrant permet de lancer et configurer des boxes dans VirtualBox, Libvirt, LXC, VMware, Docker, Amazon EC2 et autres. - -Ces providers peuvent être locaux ou situés sur des serveurs distants. - - -#### Libvirt - -Les boxes et les images `QCOW2` du provider `libvirt` sont stockées par défaut dans `/var/lib/libvirt/images/`. - -Par défaut, le volume de stockage est une image au format `QCOW2`, ce qui éviter d'avoir à réserver de l'espace disque. - -## Utilisation +## Utilisation du CLI ### Gestion des boxes @@ -372,3 +367,47 @@ $ vagrant upload source [destination] [] vagrant provision ~~~ + +## FAQ + +### Configurer localement le provider par défaut + +Si le `Vagrantfile` de l'environnement est partagé entre plusieurs utilisateurs, ceux-ci peuvent souhaiter utiliser différents providers. + +Pour cela, on peut créer un fichier `~/.Vagrantfile` local, configurant le provider par défaut de l'utilisateur. Par exemple, pour utiliser par défaut le provider `libvirt` : + +~~~ +Vagrant.configure("2") do |config| + config.vm.provider "libvirt" +end +~~~ + +Ensuite, il faut mettre dans le `Vagrantfile` de chaque environnement cet en-tête : + +~~~ +# Load ~/.Vagrantfile if exist, permit local config provider +vagrantfile = File.join("#{Dir.home}", '.Vagrantfile') +load File.expand_path(vagrantfile) if File.exists?(vagrantfile) +~~~ + +Si `~/.Vagrantfile` n'existe pas et qu'aucun provider n'est défini, le provider par défaut du système sera utilisé. + + +### Synchroniser un répertoire entre l'hôte et l'invité + + + + +#### Avec Rsync + +*Documentation à venir* + + + +Synchroniser automatiquement le répertoire : + +~~~ +vagrant rsync-auto +~~~ + +Voir la [documentation](https://developer.hashicorp.com/vagrant/docs/synced-folders/rsync).