Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Vagrant 101

Bob Maerten
February 19, 2013

Vagrant 101

Virtualisation et provisionnement pour le développement.
Présenté à l'apéro ruby Lille le 19/02/2013.

Bob Maerten

February 19, 2013
Tweet

More Decks by Bob Maerten

Other Decks in Technology

Transcript

  1. $ WHO AM I Sysadmin dans la fonction publique dev-wannabe...

    @bobmaerten http://bobmaerten.github.com
  2. CAS D'UTILISATION 1 “Ah, si je pouvais bosser en local

    sur la même config qu'en staging...”
  3. CAS D'UTILISATION 2 “J'dois debug c'te vieille app rails 2.1,

    mais j'ai pas envie de pourrir ma config”
  4. CAS D'UTILISATION 3 etc. “Ce serait top si je pouvais

    tester m[a|on] gem sur une palanquée de systèmes exotiques...”
  5. VAGRANT À LA RESCOUSSE Virtualisation à la demande Pilotage de

    VMs via une API Systèmes pré-packagés Provisionnement scriptable Des tonnes de scripts de provisionnement dispo
  6. INSTALLATION $ s u d o a p t i

    t u d e i n s t a l l v i r t u a l b o x - o s e r u b y - 1 . 9 . 1 # p r e - r e q s f o r D e b i a n / U b u n t u $ g e m i n s t a l l v a g r a n t $ v a g r a n t i n i t [ b a s e b o x ] [ b a s e b o x _ u r l ] $ v a g r a n t u p
  7. VAGRANTFILE Fichier minimal V a g r a n t

    : : C o n f i g . r u n d o | c o n f i g | c o n f i g . v m . b o x = " p r e c i s e 6 4 " e n d
  8. VAGRANTFILE Paramétrage VM V a g r a n t

    : : C o n f i g . r u n d o | c o n f i g | c o n f i g . v m . b o x = " p r e c i s e 6 4 " c o n f i g . v m . n e t w o r k : h o s t o n l y , " 3 3 . 3 3 . 3 3 . 1 0 " c o n f i g . v m . f o r w a r d _ p o r t 3 0 0 0 , 3 0 3 0 c o n f i g . v m . c u s t o m i z e [ " m o d i f y v m " , : i d , " - - m e m o r y " , " 5 1 2 " , " - - c p u s " , " 2 " ] e n d
  9. VAGRANTFILE Multiboxing V a g r a n t :

    : C o n f i g . r u n d o | c o n f i g | c o n f i g . v m . b o x = " p r e c i s e 6 4 " c o n f i g . v m . d e f i n e : w e b d o | w e b _ c o n f i g | w e b _ c o n f i g . v m . b o x = " w e b " w e b _ c o n f i g . v m . f o r w a r d _ p o r t " h t t p " , 8 0 , 1 0 8 0 e n d c o n f i g . v m . d e f i n e : m y s q l d o | d b _ c o n f i g | d b _ c o n f i g . v m . b o x = " m y s q l " d b _ c o n f i g . v m . f o r w a r d _ p o r t " d b " , 3 3 0 6 , 1 3 3 0 6 e n d e n d
  10. VAGRANTFILE Script de provisionnement V a g r a n

    t : : C o n f i g . r u n d o | c o n f i g | c o n f i g . v m . b o x = " p r e c i s e 6 4 " c o n f i g . v m . p r o v i s i o n : s h e l l , : p a t h = > ' / v a g r a n t / i n s t a l l _ s i t e . s h ' c o n f i g . v m . p r o v i s i o n : s h e l l , : i n l i n e = > ' s e r v i c e n g i n x r e l o a d ' e n d
  11. VAGRANTFILE Provisionnement avec Chef V a g r a n

    t : : C o n f i g . r u n d o | c o n f i g | c o n f i g . v m . b o x = " p r e c i s e 6 4 " c o n f i g . v m . p r o v i s i o n : c h e f _ s o l o d o | c h e f | c h e f . c o o k b o o k s _ p a t h = ' . / c o o k b o o k s ' c h e f . a d d _ r e c i p e ' m y s q l ' # S e e l i b r a r i a n g e m t o f e t c h c o o k b o o k s c h e f . j s o n = { : m y s q l _ p a s s w o r d = > ' ' } e n d e n d
  12. VAGRANTFILE Provisionnement avec Puppet etc. V a g r a

    n t : : C o n f i g . r u n d o | c o n f i g | c o n f i g . v m . b o x = " p r e c i s e 6 4 " c o n f i g . v m . p r o v i s i o n : p u p p e t d o | p u p p e t | p u p p e t . m a n i f e s t s _ p a t h = " . / m a n i f e s t s " p u p p e t . m a n i f e s t _ f i l e = " b a s e . p p " e n d e n d
  13. DÉMO Des volontaires pour tester sur OSX ? Voir sur

    Shelr.tv https://github.com/bobmaerten/vagrant-rails-server/
  14. RESSOURCES Quelques boxes disponibles Créer ses propres boxes Quelques plugins

    pour vagrant , , ... http://vagrantbox.es https://github.com/jedi4ever/veewee Sahara Snap Hostmaster
  15. AU DELÀ DE LA VIRTUALISATION DESKTOP Vagrant 1.1 Patrick Debois's

    McCloud Hashicorp AWS Vagrant Provider https://github.com/jedi4ever/mccloud