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

Our experience with Puppet

Ryan Brooks
September 27, 2013

Our experience with Puppet

A presentation on basic Puppet and how we have leveraged some open modules to achieve backup, SSH key management, etc.

Ryan Brooks

September 27, 2013
Tweet

More Decks by Ryan Brooks

Other Decks in Technology

Transcript

  1. HOW WE USE IT BACKUPS n o d e '

    t h o r ' { $ b a c k u p _ d i r s = [ ' / u s r / l o c a l ' , ' / v a r / l o c a l ' ] d u p l i c i t y { $ b a c k u p _ d i r s : b u c k e t = > ' t e s t - b a c k u p ' , d e s t _ i d = > ' s o m e i d ' , d e s t _ k e y = > ' s o m e k e y ' } } 'duplicity' module available at https://github.com/Jimdo/puppet-duplicity
  2. HOW WE USE IT SSH KEY MANAGEMENT n o d

    e / ^ s e r v e r / { i n c l u d e s s h : : s e r v e r } n o d e / ^ c l i e n t / { i n c l u d e s s h : : c l i e n t } n o d e ' a b i t o f b o t h ' { i n c l u d e s s h } 'ssh' module available at https://github.com/saz/puppet-ssh
  3. HOW WE USE IT WORKSTATION PACKAGE MANAGEMENT n o d

    e / ^ w o r k s t a t i o n / { i n c l u d e w o r k s t a t i o n i n c l u d e w o r k s t a t i o n : : d e v e l o p e r } c l a s s w o r k s t a t i o n ( $ a p t _ p a c k a g e s = [ ' t h u n d e r b i r d ' , ' e n i g m a i l ' ] ) { a p t : : s o u r c e { ' c a n o n i c a l _ p a r t n e r ' : l o c a t i o n = > ' h t t p : / / a r c h i v e . c a n o n i c a l . c o m / u b u n t u ' , r e p o s = > ' p a r t n e r ' , i n c l u d e _ s r c = > t r u e } - > p a c k a g e { $ a p t _ p a c k a g e s : e n s u r e = > p r e s e n t , } i n c l u d e w o r k s t a t i o n : : p a c k a g e s : : o r a c l e j a v a . . . 'workstation' module available at https://github.com/NMiUK/puppet-workstation
  4. HOW WE USE IT INSTALLING/MANAGING ORACLE JAVA c l a

    s s w o r k s t a t i o n : : p a c k a g e s : : o r a c l e j a v a ( $ e n s u r e = ' p r e s e n t ' ) { i f $ o p e r a t i n g s y s t e m = = ' U b u n t u ' { a p t : : p p a { ' p p a : w e b u p d 8 t e a m / j a v a ' : } e x e c { ' a c c e p t _ j a v a 7 _ l i c e n s e ' : c o m m a n d = > " e c h o d e b c o n f s h a r e d / a c c e p t e d - o r a c l e - l i c e n s e - v 1 - 1 s e l e c t t r u e | s u p a t h = > " / u s r / b i n / : / b i n / " , } p a c k a g e { ' o r a c l e - j a v a 7 - i n s t a l l e r ' : e n s u r e = > $ e n s u r e , } A p t : : P p a [ ' p p a : w e b u p d 8 t e a m / j a v a ' ] - > E x e c [ ' a c c e p t _ j a v a 7 _ l i c e n s e ' ] - > P a c k a g e [ ' o r } }
  5. CAVEATS Manage Puppet with Puppet only if you like playing

    with fire, naked Use to manage module versions Use Use for tests Don't trust the node name librarian-puppet Hiera Rspec-puppet