Slide 1

Slide 1 text

VAGRANT! http://vagrantup.com/! http://downloads.vagrantup.com/! ! Environnements de travail ! virtualisés ! isolés! réutilisables! jetables! !

Slide 2

Slide 2 text

VAGRANT…! …est une interface ! qui permet de (re)créer ! et de configurer des ! environnements de ! développement…! …  «  and  makes  the  “Works  on  my  machine”  excuse  a  relic  of  the  past»  

Slide 3

Slide 3 text

VAGRANT! VBOX! VERSION:  4.2+   VERSION:  1.0.5  

Slide 4

Slide 4 text

$  vagrant  box  add       import d’une ! BASE-BOX!

Slide 5

Slide 5 text

BASE-BOX! •  imageVirtual  Box  packagée   au  format  Vagrant   •  modèlede  machine  virtuelle     par?ellement  configurée   •  base  réu?lisable  pour  créer     des  environnements  de  travail   http://www.vagrantbox.es/!

Slide 6

Slide 6 text

initialisation de ! l’ENVIRONNEMENT! http://vagrantup.com/v1/docs/vagrantfile.html! $  cd  mon-­‐projet   #  IniFalisaFon  de  l’environnement   $  vagrant  init   #  EdiFon  du  fichier  de  configuraFon   $  vim  VagranJile   #  VagranJile   Vagrant::Config.run  do  |config|          config.vm.box  =        precise32          config.vm.box_url  =  hSp://files.vagrantup.com/precise32.box   end    

Slide 7

Slide 7 text

DÉMARRAGE! de la VM! $  vagrant  up  []  

Slide 8

Slide 8 text

CONNEXION
 à la machine virtuelle! $  cd  mon-­‐projet   $  ls   foo  bar.php   $  vagrant  up   $  vagrant  ssh   $$  cd  /vagrant   $$  ls   foo  bar.php   $$  php  bar.php   php:  command  not  found   h/p://vagrantup.com/v1/docs/ge:ng-­‐started/ssh.html  

Slide 9

Slide 9 text

PARTAGE de fichiers
 REDIRECTION de ports! •  VM  locale  au  dossier/projet   •  dossier  courant  automa?quement   partagé   •  redirec?ons  de  port  personnalisables   UFlisez  bewiwi/vagrant-­‐getredirec?on  (Github)   pour  retrouver  facilement  les  ports  redirigés.  

Slide 10

Slide 10 text

Partage  VBOXSF  /  NFS   ~/workspace/project! /vagrant! host:2222! host:2280! VM:22! VM:80! Redirection de ports!

Slide 11

Slide 11 text

PROVISIONNEMENT! de la VM! $  vagrant  up  []   $  vagrant  provision  

Slide 12

Slide 12 text

les provisionners :! CHEF/ PUPPET! #  VagranJile   Vagrant::Config.run  do  |config|          config.vm.box  =        precise32                    config.vm.provision  :chef_solo  do  |chef|                  chef.cookbooks_path  =  "cookbooks"                    chef.add_recipe  "git"                                  chef.add_recipe  "php"            end   end      

Slide 13

Slide 13 text

PROVISIONING! •  installa?on/restaura?on   d’une  configuraFon   •  langage  de  descripFon   •  abstrac?on  du  système   •  composants  réu?lisables   http://vagrantup.com/v1/docs/getting-started/provisioning.html   h/p://community.opscode.com/cookbooks   h/p://forge.puppetlabs.com/       UFlisez  des  cookbooks/modules  de  qualité  pour     garanFr  l’intégrité  de  la  machine  virtuelle.  

Slide 14

Slide 14 text

ÉTEINDRE
 la machine virtuelle! #  MeSre  la  VM  en  pause   $  vagrant  suspend   #  Éteindre  la  VM   $  vagrant  halt  [-­‐f]   #  Détruire  la  VM   $  vagrant  destroy  [-­‐f]   •  suspend  et  halt  préservent  l’état  de  la     machine  virtuelle   •  destroy  détruit  physiquement  la  machine     virtuelle  

Slide 15

Slide 15 text

utiliser le
 SANDBOX! #  Installer  le  plugin  Sahara   $  vagrant  gem  install  sahara   $  vagrant  up   $  vagrant  sandbox  on   $  vagrant  ssh   $$  cd  /vagrant  &&  ./project-­‐load-­‐fixtures   $$  exit   $  vagrant  sandbox  commit   $$  …   $  vagrant  sandbox  rollback   $  vagrant  ssh   h/ps://github.com/jedi4ever/sahara  

Slide 16

Slide 16 text

quelques! PLUGINS! •  DWT/VAGRANT-­‐HOSTS   gesFon  du  fichier  hosts  de  l’hôte   •  GARETHR/RUBY-­‐VAGRANTBOXES   recherche  sur  vagrantbox.es   •  FGREHM/VAGRANT-­‐NOTIFY   forward  les  noFficaFons  depuis  la     VM  vers  l’hôte   hSps://github.com/mitchellh/vagrant/wiki/Available-­‐Vagrant-­‐Plugins  

Slide 17

Slide 17 text

vagrant
 EN MOINS DE 5 MIN! hXp://ascii.io/a/1717  

Slide 18

Slide 18 text

vagrant : comment ! BIEN L’UTILISER ?! 1.  versionner  la  box  dans  un  dépôt     externe  au  projet   •  ne  pas  polluer  le  code  source     du  projet   •  réu?liser  la  box  dans  d’autres  projets  

Slide 19

Slide 19 text

vagrant : comment ! BIEN L’UTILISER ?! 2.  packager  la  box  avec  la  configura?on     minimale  requise   •  mise  à  dispo.  &  partage  facilités   •  gain  de  temps  :  le  provisionnement   ne  sera  lancé  qu’une  seule  fois  

Slide 20

Slide 20 text

vagrant : comment ! BIEN L’UTILISER ?! 3.  ne  pas  versionner  directement  le  VagranJile  du   projet   •  versionner  plutôt  un  Vagran_ile-­‐dist   •  ignorer  le  Vagran_ile   •  personnalisa?on  par  le  développeur  

Slide 21

Slide 21 text

CAS D’UTILISATION! •  Presque  n’importe  quel  projet   •  compila?on  d’une  librairie   •  test/essai  d’un  logiciel   •  isola?on  des  tests  en  environnement   d’intégraFon  conFnue   •  …  

Slide 22

Slide 22 text

QUESTIONS…! ? hSp://vagrantbox.es   hSp://vagrantup.com   hSps://twiSer.com/mitchellh   hSps://github.com/mitchellh/vagrant     irc.freenode.net#vagrant    

Slide 23

Slide 23 text

@JUBIANCHI   hSp://twiSer.com/jubianchi   hSp://github.com/jubianchi   FIN…!