Réorganisation de sections + ajout d'un quickstart

This commit is contained in:
whirigoyen 2024-01-15 18:00:25 +01:00
parent a60ef9093e
commit fb7fe9b4f5

View file

@ -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 : <https://www.vagrantup.com/downloads.html>
## 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é
<https://developer.hashicorp.com/vagrant/docs/synced-folders>
#### Avec Rsync
*Documentation à venir*
<https://developer.hashicorp.com/vagrant/docs/synced-folders/rsync>
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] [<VM_ID|NAME>]
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é
<https://developer.hashicorp.com/vagrant/docs/synced-folders>
#### Avec Rsync
*Documentation à venir*
<https://developer.hashicorp.com/vagrant/docs/synced-folders/rsync>
Synchroniser automatiquement le répertoire :
~~~
vagrant rsync-auto
~~~
Voir la [documentation](https://developer.hashicorp.com/vagrant/docs/synced-folders/rsync).