Vagrant - Concept

Preview:

DESCRIPTION

Vagrant - Pourquoi ? Qu'est-ce que c'est ? Comment ça marche ?

Citation preview

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

dubreuil.julien@gmail.com

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

Mail

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

Mail

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 ?

Merci !

@juliendubreuil

www.juliendubreuil.fr

dubreuil.julien@gmail.com

Recommended