# Vagrant
Un soft fort pratique pour monter des vms rapidement.
Pour le moment je m'en sert surtout pour monter des environnements de dev sur des postes ... de dev. ça permet d'etre au plus pret de l'environnement de production lors des tests.
En gros je bootstrap le minimum et je deploie le reste avec chef.
Version de base, go:
Alors deja, installer votre logiciel pour les VM, de base c'est celui d'oracle, VirtualBox. On installer donc Virtual Box
Ensuite on installe vagrant, voir sur le site en fonction du systeme etc... je vais pas me prendre par la main, en effet qui lit ça a part moi franchement ?! même pas ma mere!
Donc ensuite, une fois tout ça installé:
cd /le/dossier/de/mon/projet
vagrant init
ça initinialise... non sans déc... mais ça creer surtout un fichier vagrantfile que vous allez pouvoir editer.
J'ai la flemme pour le moment alors je montre cash un exemple d'un cas ou je monte deux vm:
# -*- mode: ruby -*-
# vi: set ft=ruby :
### Variables du fichier de configuration ###
SERVEUR_1_NAME = "Serveur_1" # nom du serveur
SERVEUR_1_IP = "192.168.0.151" # son ip parceque j'aime pas le dhcp
SERVEUR_1_HOSTNAME = 'Serveur_1.fr' #son hostname
SERVEUR_2_NAME = "Serveur_2"
SERVEUR_2_IP = "192.168.0.152"
SERVEUR_2_HOSTNAME = 'Serveur_2.fr'
BOX_URL = "generic/debian9" # la box! a savoir l'os que j'ai choisi et qui est disponible sur le site de vagrant
Vagrant.configure("2") do |config|
config.vm.define SERVEUR_1_NAME do |unsik|
unsik.vm.box = BOX_URL
unsik.vm.hostname = SERVEUR_1_HOSTNAME
unsik.vm.box_url = BOX_URL
unsik.vm.network :public_network, ip: SERVEUR_1_IP # public parceque j'aime bien avoir ma VM sur le meme reseau que l'hote
unsik.vm.provider :virtualbox do |v|
v.customize ["modifyvm", :id, "--memory", 1024] # 1giga de ram
v.customize ["modifyvm", :id, "--name", SERVEUR_1_NAME] # le nom de la vm dans l'interface virtualbox
end
end
config.vm.define SERVEUR_2_NAME do |shit|
shit.vm.box = BOX_URL
shit.vm.hostname = SERVEUR_2_HOSTNAME
shit.vm.box_url = BOX_URL
shit.vm.network :public_network, ip: SERVEUR_2_IP
shit.vm.provider :virtualbox do |v|
v.customize ["modifyvm", :id, "--memory", 1024]
v.customize ["modifyvm", :id, "--name", SERVEUR_2_NAME]
end
end
config.vm.provision :shell, path: "bootstrap.sh" # un script bash que j'ai mis dans le même repertoire que le vagrant file
# ce script sera eecuté apres la creation des deux VM et sur chacune d'entres elles. Si je met ces lignes dans les balises
# config.vm.define et le end, le script ne sera executé que par la dite VM. ATTENTION a l'ordre si vous en avez plusieurs
end
Ensuite une fois votre fichier comme vous le souhaitez, vous pouvez verifier l'etat avec la commande
vagrant status
mais si vous souhaitez lancer la contruction ou lancer vos vm (meme commande)
Version je lance tout ce que contient le fichier
vagrant up
Version je lance qu'une VM
vagrant up nomdelavm
Meme fonctionnement les parametre halt(stopper vm) ou destroy(devine!)
Mais bon sinon tapez vagrant pour voir vos possibilités.
Vous pouvez faire vous meme vos box (que je n'ai pas encore exploré) et/ou précharger/gerer des boxes en local. Voir les commandes proposer en tapant:
vagrant box