vagrant - concept
DESCRIPTION
Vagrant - Pourquoi ? Qu'est-ce que c'est ? Comment ça marche ?TRANSCRIPT
Vagrant
Construire des environnements de développement virtualisés
Human Talks - Paris - 9 juillet 2013
Julien Dubreuil
Développeur PHP / Drupal
Commerce Guys
Animateur du groupe utilisateur Drupal à Paris
@juliendubreuil
www.juliendubreuil.fr
Quelques constats
Vagrant, c'est quoi ?
Vagrant comment ça marche ?
SOMMAIRE
Quelques constats simples
PROBLÈME #1
Accueillir un nouveau développeur
- Un poste à configurer
- Des projets à installer
=
Une journée de perdue
Uniformité des environnements“Pourtant ça marche chez moi”
Environnement Développeur
!=
Environnement Dev
!=
Environnement Prod
PROBLÈME #2
PROBLÈME #3
Faire cohabiter différents environnements
PHP5.2
PHP5.3
PHP5.4
MySQL 5.20
MySQL 5.33
MongoDB2.2.5
MongoDB2.4.5
Pas d'isolation
PROBLÈME #4
Espace utilisateur
OS
PHP
PHPStorm
FilesMySQL Apache
MongoDB
Chrome Firefox
http://jrcommercialcleaning.com
CONSTATS
Pas d'isolation
Pas exportable
Compliqué à installer / réinstaller
Espace utilisateur
VIRTUALISATION
OS
VM
PHP
PHPStorm
Files
MySQL
Apache
MongoDB
Chrome
Firefox
Virtualisation
Exportable
Isolation Hôte / VM
Simple à installer
Simple à utiliser
Compliqué à faire évoluer
SOLUTION ?
+
-
+
+
+
Vagrant
" Vagrant est un fantastique outil pour configurer,
administrer et distribuer des machines virtuelles via
une interface simple en ligne de commande. "
Par Mitch Hashimoto and John Bender
VAGRANT
VAGRANT
Vagrant
INDÉPENDANCE
La machine hôte n'est pas polluée
UNIFORMITÉ
Les développeurs ont la même configuration
CONFIGURABLE
Toute la configuration réside dans des fichiers
VERSIONNABLE
RAPIDE À DÉPLOYER
3 commandes avant de commencer à travailler
SIMPLE À UTILISER
Pas besoin d'être SysAdmin ou DevOps
Répertoire
partagé
FONCTIONNALITÉS
Provisionningautomatisé
Port
forwarding
VirtualBox VMWareAccès SSH
Configuration
du réseau
VAGRANTFILE
Vagrantfile est à Vagrant ce que Makefile est au Make
Description de la VM dans du code.
Un fichier par répertoire / projet
VAGRANT : BOXES
BOX = Environnement pré-installé
Des boxes prêtes à l'emploi : http://vagrantbox.es
- Debian
- Ubuntu
- CentOS
- ...
VEEWEE
VAGRANTFILE
Vagrant.configure("2") do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://example.com/precise64.box"
end
VAGRANTFILE - SHARED FOLDER
Vagrant.configure("2") do |config|
# Add a shared folder
config.vm.synced_folder "src/", "/src/website"
end
VM Host
/home/vagrant/folder
/home/bob/folder
Vagrant.configure("2") do |config|
# Network configuration
config.vm.network :private_network, ip: "192.168.50.4"
# Port forwarding
config.vm.network :forwarded_port, guest: 80, host: 8090
end
VAGRANTFILE - NETWORK & PORT FORWARDING
VM Host80 8090
3306 13306
COMMENT ÇA MARCHE
VAGRANT BOX(Os image)
VAGRANTFILE(Configuration)
VAGRANT(CLI + API)
VIRTUAL BOX(VM management)
VM
vagrant init
vagrant add box Precise64 http:/.../precise64.box
vagrant up
DÉMARRER LA MACHINE
$ vagrant --help
vagrant box
vagrant destroy
vagrant halt
vagrant init
vagrant provision
vagrant reload
vagrant resume
vagrant ssh
vagrant status
vagrant suspend
vagrant up
COMMANDES
VAGRANT
+ Exportable+ Isolation Hôte / VM
+ Simple à installer+ Simple à utiliser
+ Simple à faire évoluer
PROBLÈME RÉSOLU ?
+
+
+
+
+
Le site officiel - http://www.vagrantup.com/
Des squelettes de boxes prêtes à l'emploi- http://www.vagrantbox.es/
Veewee un outil pour construire vos boxes Vagrant.- https://github.com/jedi4ever/veewee
RESSOURCES
Questions ?