I Introduction
I.1 Résumé
Vagrant permet de mettre en œuvre un environnement de développement et de tests très rapidement.
Ce type de solution permet de travailler à partir de bases de configurations communes. Ce qui permet, entre autres, de faciliter et de développer des produits ou des process d’industrialisation sur des plateformes qui se rapprochent au plus près des celles mise en production par exemple.
I.2 Ressources
Tutoriel en français : https://www.grafikart.fr/tutoriels/hebergement/vm-vagrant-chef-solo-482
Téléchargement : https://www.vagrantup.com/downloads.html
Box « officielle » de « base » sur le cloud de Vagrant : https://atlas.hashicorp.com/bento
II Installation
Exécuter le MSI. Suivant … Suivant jusqu’à la fin. Un reboot est nécessaire.
Les fichiers sont localisés dans le répertoire « C:\HashiCorp\Vagrant » et la structure des répertoires installés doit ressembler à celle-ci :
III Installation d’un premier environnement
III.1 Introduction
Vagrant propose un cloud public dédié au « box » à l’adress suivante : https://vagrantcloud.com/
Création à partir d’un paquetage de VM déjà existant. Choix d’une infrastructure comportant :
- centos 7
- Apache MariaDb et php
Lien de la box : https://atlas.hashicorp.com/Gigasavvy/boxes/centos7-LAMP
- Nom de la box : Gigasavvy/centos7-LAMP
III.2 Création d’une BOX s’appuyant sur VirtualBox
III.2.1 Déclaration de la box
Lancer une console Powershell
Créer un répertoire dédié. Ici ce sera sous « d:\vagrant ». Puis ce placer dans ce répertoire.
Pour télécharger la box, il faut utiliser la commande « vagrant init » puis « vagrant add nom_box »
un raccourci fonctionne également « vagrant init nom_box ».
Exemple :
PS D:\vagrant> vagrant init Gigasavvy/centos7-LAMP A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant.
A ce stade un fichier « Vagrantfile » a été crée ainsi que le répertoire « .vagrant » à la racine de « d:\vagrant ».
Ce répertoire correspond à la box. Pour utiliser une autre box, il faut créer un autre répertoire et faire de même.
III.2.2 Lancement de la box
Ensuite il faut « monter » la box via la commande « vagrant up ».
Dans un premier temps le téléchargement à partir d’internet va s’effectuer (qu’au premier lancement).
PS D:\vagrant> vagrant up --provider virtualbox Bringing machine 'default' up with 'virtualbox' provider... ==> default: Box 'Gigasavvy/centos7-LAMP' could not be found. Attempting to find and install... default: Box Provider: virtualbox default: Box Version: >= 0 ==> default: Loading metadata for box 'Gigasavvy/centos7-LAMP' default: URL: https://atlas.hashicorp.com/Gigasavvy/centos7-LAMP ==> default: Adding box 'Gigasavvy/centos7-LAMP' (v0.0.7) for provider: virtualbox default: Downloading: https://atlas.hashicorp.com/Gigasavvy/boxes/centos7-LAMP/versions/0.0.7/providers/virtualbox.box default: Progress: 29% (Rate: 2496k/s, Estimated time remaining: 0:07:23)
puis :
default: Progress: 100% (Rate: 1621k/s, Estimated time remaining: --:--:--) ==> default: Successfully added box 'Gigasavvy/centos7-LAMP' (v0.0.7) for 'virtualbox'! ==> default: Importing base box 'Gigasavvy/centos7-LAMP'... ==> default: Matching MAC address for NAT networking... ==> default: Checking if box 'Gigasavvy/centos7-LAMP' is up to date... ==> default: Setting the name of the VM: vagrant_default_1490687314128_38791 ==> default: Clearing any previously set network interfaces... ==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat ==> default: Forwarding ports... default: 22 (guest) => 2222 (host) (adapter 1) ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key default: Warning: Remote connection disconnect. Retrying... ==> default: Machine booted and ready! ==> default: Checking for guest additions in VM... default: The guest additions on this VM do not match the installed version of default: VirtualBox! In most cases this is fine, but in rare cases it can default: prevent things such as shared folders from working properly. If you see default: shared folder errors, please make sure the guest additions within the default: virtual machine match the version of VirtualBox you have installed on default: your host and reload your VM. default: default: Guest Additions Version: 5.0.14 default: VirtualBox Version: 4.3 ==> default: Mounting shared folders... default: /vagrant => D:/vagrant PS D:\vagrant>
La VM est montée.
III.2.3 Accès de la box via ssh
L’accès peut se faire via ssh en ligne de commande via la commande « vagrant ssh ». Ce qui donne l’exemple suivant :
Il est également possible de voir que la VM est présente sous Virtual BOX (mais dans un premier temps à ce niveau).
Pensez dans VirtualBox à modifier la carte réseau et à rajouter une redirection de port 80 par exemple pour accéder au serveur web de la Box via un navigateur. Ceci pour tester dans un premier temps le service web de la BOX car la redirection de ce port peut se faire automatiquement via une directive du fichier de configuration « Vagrantfile ».
III.2.4 Dossier synchronisés entre Hôte et Box
Tous les fichiers placés dans la box sous le répertoire « /vagrant » vont se retrouver sur l’Hôte (dans mon cas windows 7) dans le répertoire « d:\vagrant\ ».
Ainsi il est très facile de déplacer des fichiers entre Hôte et Box par ce biais.
III.2.5 Arrêt de la Box
Il faut utiliser la commande « vagrant destroy »
rem : la VM n’est pas détruite !!!
PS D:\vagrant> vagrant destroy default: Are you sure you want to destroy the 'default' VM? [y/N] y ==> default: Forcing shutdown of VM... ==> default: Destroying VM and associated drives... PS D:\vagrant>
III.2.6 Suppression de la Box
Pour supprimer la VM il faut utiliser la commande « vagrant box remove nom_de_la_box ».
Exemple :
PS D:\vagrant> vagrant box remove Gigasavvy/centos7-LAMP Removing box 'Gigasavvy/centos7-LAMP' (v0.0.7) with provider 'virtualbox'...
IV Informations complémentaires
IV.1 Commandes de gestion d’une box
- vagrant up : démare une box
- vagrant suspend : gèle l’activité de la box
- vagrant halt : éteint l’hôte avec douceur (arrêt du système)
- vagrant destroy : arrêt brutal de la box (arrêt brutal de l’OS, enregistrement dans virtual box effacé ainsi que les fichiers temporaires associés)
IV.2 A voir/approfondir
- créer une base box :
- fichier de configuration : https://www.vagrantup.com/docs/vagrantfile/
- ligne de commande : https://www.vagrantup.com/docs/cli/
- possibilité d’avoir plusieurs box à partir d’un emplacement « vagrant » : https://www.vagrantup.com/docs/multi-machine/