22
Comment approvisionner vos environnements avec vagrant #DevOpsRoadMap
Vagrant est un outil permettant de créer et de gérer des environnements de machines virtuelles dans un seul workflow. Il réduit considérablement le temps de configuration de l'environnement de développement.
Dans ce tutoriel vagrant, je vais vous apprendre à configurer Vagrant sur votre ordinateur afin de créer et gérer des machines virtuelles pour votre environnement de développement.
J’utilise vagrant depuis plus de 5 ans maintenant et je suis un grand fan. Chaque fois que je souhaite tester un outil ou technologie lié au DevOps, j’utilise Vagrant car il rend très facile l’approvisionnement d’un environnement de test.
J’utilise vagrant depuis plus de 5 ans maintenant et je suis un grand fan. Chaque fois que je souhaite tester un outil ou technologie lié au DevOps, j’utilise Vagrant car il rend très facile l’approvisionnement d’un environnement de test.
Vagrant peut utiliser de nombreux providers de machines virtuelles tels que VirtualBox , VMware et Docker, mais à mon avis VirtualBox est le plus simple à utiliser et il est également l'option par défaut dans Vagrant.
Notre première étape consiste à installer VirtualBox, vous pouvez télécharger et installer la dernière version pour votre système d'exploitation à partir du site officiel.
Pour cet article nous allons utiliser la version 6.1.26 de VirtualBox en suivant ce lien https://www.virtualbox.org/wiki/Downloads.
Une fois ce prérequis installé, nous pouvons installer Vagrant en téléchargeant également la dernière version sur le site officiel https://www.vagrantup.com/downloads et puis l’installer sur votre ordinateur. Dans notre cas nous allons utiliser la version 2.2.18 de Vagrant
La fonction principale du Vagrantfile est de décrire le type des machines requis par projet, et comment configurer et provisionner ces machines.
Vagrant est censé s'exécuter avec un seul fichier Vagrantfile par projet, et les fichiers Vagrant sont portables sur toutes les plates-formes prises en charge par Vagrant.
Exemple d’un Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.network :private_network, ip: "192.168.50.1"
config.vm.provider :virtualbox do |vb|
end
end
config.vm.box: permet de préciser le nom de la box vagrant à utiliser. Vous pouvez retrouver l’ensemble des boxes héberger par vagrant ici https://app.vagrantup.com/boxes/search
config.vm.network: permet d’attribuer une adresse IP à la future VM qui sera créé.
config.vm.provider: permet de préciser le type de provider que nous allons utiliser. Dans notre cas c’est VirtualBox.
Nous allons dans le répertoire de travail de votre choix, créez un fichier nommé ‘Vagrantfile’ et y ajouter ce code
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.network :private_network, ip: "192.168.50.1"
config.vm.provider :virtualbox do |vb|
end
end
Ensuite, démarrez la machine virtuelle Vagrant à l'aide de la commande suivante : ‘vagrant up’
La meilleure chose à propos de Vagrant est que vous pouvez utiliser le Provisionner qui va lancer la procédure d’installation et configuration automatique de vos VMs avec un script shell ou avec Ansible ou tout autre outil de déploiement automatisé.
Dans notre exemple, nous allons utiliser un script Shell pour créer des répertoires applicatifs et pour aller plus loin, à la fin de ce tutoriel vous y trouvez un fichier Vagrantfile beaucoup plus complet.
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provider :virtualbox do |vb|
vb.memory = 1024
vb.cpus = 1
end
config.vm.define "master" do |master|
master.vm.hostname = "master"
master.vm.network "private_network", ip: "192.168.50.10"
master.vm.synced_folder "app/", "/home/vagrant/app"
master.vm.provision "shell", inline: <<-SHELL
mkdir /home/vagrant/app/www
mkdir /home/vagrant/app/www/images
SHELL
end
end
vagrant up
vagrant up master
vagrant up –provision
vagrant up master --provision
vagrant ssh master
vagrant halt
vagrant destroy
vagrant halt master
vagrant destroy master
vagrant status
22