Introduction to Puppet
  Habeeb Rahman | hrahman@apigee.com | pk.habi@gmail.com
pre puppet/config management era
manual Installation
login and perform installation/config changes
ad hoc scripts/tools
not scalable
everyone solving same problems their own way
boring
puppet era
mature tools
sharing
opensource
infrastructure as a code
version controlled
what?
                       Vanilla Server




                                        Your desired
 vanilla server   apply puppet           application
                                           server




     Before        Transformation           After
how?    (1/2)




master-agent mode
                             puppet
                             master




   puppet agent   puppet agent        puppet agent   puppet agent
    (server 1)     (server 2)          (server 3)     (server 'n')
how?   (2/2)




standalone mode


                  puppet apply




                   puppet
                  (server 1)
components
facter & facts
puppet language
resources
manifests
classes
templates
facter & facts

puppet uses facter to gather information
about the host system
puppet language
â—Ź DSL
â—Ź ruby
resources

â—Ź the building blocks
â—Ź model system configurations
â—Ź built-in resources
  user { 'dave':

      ensure => 'present',

      home => '/home/dave',

      shell => '/bin/zsh'

  }


â—Ź puppet describe -s user
manifests
puppet programs are called “manifests”
file extension: .pp
classes
â—Ź describe one part of what makes up a
  system’s identity
â—Ź not object-oriented programming 'class'
templates
puppet uses ruby erb templating system

file {'/etc/foo.conf':
     ensure => file,
     require => Package['foo'],
     content => template('foo/foo.conf.erb'),
 }
how does it all fit together?
catalog
puppet help
puppet describe
  prints help about puppet resource types, providers, and metaparameters


puppet help <subcommand>
  help about puppet commands
learning
http://docs.puppetlabs.com/learning/

Introduction to puppet