diff --git a/HowtoVagrant.md b/HowtoVagrant.md index a0a4a80a..3217d1fa 100644 --- a/HowtoVagrant.md +++ b/HowtoVagrant.md @@ -21,7 +21,50 @@ Des paquets Debian officiels (maintenu par Hashicorp) sont aussi disponibles dan ## Providers -Vagrant permet de lancer et configurer des environnements basés sur VirtualBox, Libvirt, VMware, Docker, Amazon EC2 et plusieurs autres. +Vagrant permet de lancer et configurer des environnements basés sur VirtualBox, Libvirt, VMware, Docker, Amazon EC2 et plusieurs autres, ces providers peuvent être locaux ou situés sur des serveurs distants. + +### Libvirt + +Le [provider libvirt](https://github.com/vagrant-libvirt/vagrant-libvirt/blob/master/README.md) permet d'utiliser les services supportés par l'API [libvirt](https://libvirt.org/), notamment [KVM](HowtoKVM), voici un example d'utilisation d'un serveur KVM distant : + +~~~ +Vagrant.configure('2') do |config| + config.vm.provider :libvirt do |libvirt, override| + libvirt.host = "kvm-host.example.com" + libvirt.connect_via_ssh = 'yes' + libvirt.memory = 1024 + libvirt.cpus = 2 + libvirt.cpu_mode = "host-passthrough" + libvirt.random :model => 'random' + override.ssh.proxy_command = "ssh kvm-host.example.com nc -N %h %p" + end +end +~~~ + +### Virtualbox + +Le provider originel et par défaut de Vagrant est [Virtualbox](https://www.virtualbox.org/), il a l'avantage de pouvoir tourner sur Linux, Windows et Mac OS : + +~~~ +config.vm.provider :virtualbox do |v| + v.memory = 1024 + v.cpus = 2 + v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] + v.customize ["modifyvm", :id, "--ioapic", "on"] + end +~~~ + +### Configuration locale + +Afin de permettre à chacun d'utiliser son propre provider, qu'il soit local ou distant, on peut mettre en place une surcharge de la configuration via un fichier ~/.VagrantFile : + +~~~ +# Load ~/.VagrantFile if exist, permit local config provider +vagrantfile = File.join("#{Dir.home}", '.VagrantFile') +load File.expand_path(vagrantfile) if File.exists?(vagrantfile) +~~~ + +Ce ~/.VagrantFile contiendra la configuration du provider spécifique a chaque utilisateur, s'il n'existe pas et qu'aucun provider n'est défini, le provider par défaut du système sera utilisé. ## Commandes de base