Réorganisation de sections + ajout d'un quickstart
This commit is contained in:
parent
a60ef9093e
commit
fb7fe9b4f5
193
HowtoVagrant.md
193
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 : <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).
|
||||
|
|
Loading…
Reference in a new issue