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

Puppet

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 Puppet

Puppet

Avatar for Salimane Adjao Moustapha

Salimane Adjao Moustapha

August 14, 2013
Tweet

More Decks by Salimane Adjao Moustapha

Other Decks in Programming

Transcript

  1. • Web app depends on services that should be on

    the server, users access/permissions... • Capistrano expects folders, rvm to be in a certain location • You need to deploy many servers with different environments on staging, production... • Doing all that manually and you're setting yourself for “wtf!wtf! wtf!”...
  2. Insert Puppet... • Configuration management framework and tools • Ruby

    based • GPLv2/Apache licenses • From PuppetLabs (company)
  3. Deployment • Master – Run as daemon – Listen on

    a port – Serve configuration catalogs • Agent – Connect to master via ssh – Retrieve configuration catalog from master – Can run as a daemon or manually triggered • Puppet can also run in stand alone mode
  4. Config language/ Resource Abstraction file { ['/meltwater', '/meltwater/likealyzer']: ensure =>

    directory, owner => 'www-data', group => 'www-data', mode => '0644', require => User['www-data'], }
  5. Transactional layer • Agent uses facter to get details about

    itself • Agent send “facts” to Master • Master recognize, compile configuration “catalog” for that agent and send it back • Agent apply the “catalog” on itself then send a result report back
  6. Node definition node puppet-demo { file { ['/meltwater', '/meltwater/likealyzer']: ensure

    => directory, owner => 'vagrant', group => 'vagrant', mode => '0644' } }
  7. Module Definition • mymodule – files – templates – tests

    – spec • spec_helper.rb – manifests • init.pp