SlideShare uma empresa Scribd logo
1 de 68
Puppet: the Why
   and How
        Teyo Tyree
    teyo@puppetlabs.com
        Puppet Labs
      Portland, Oregon
            USA
Puppet is a system for
centrally specifying and
managing your
infrastructure
Written in Ruby
Three major pieces
Three major pieces
•A declarative, resource-
 oriented language
Three major pieces
•A declarative, resource-
 oriented language
• An   execution engine
Three major pieces
•A declarative, resource-
 oriented language
• An   execution engine
•A bunch of daemons and
 tools
1) A resource-
                  oriented language
Image from http://www.flickr.com/photos/heather/147388906/sizes/l/
Your infrastructure
                                       is code




Image from http://www.flickr.com/photos/echo_29/25829591/sizes/o/
Resource
Abstraction Layer
      (RAL)
Do you really care
 how rpm works?
Resource Providers

• 29 package types
• Users in NetInfo, useradd, pw
• Support for Debian, Ubuntu, Red Hat, Solaris,
  OS X, Gentoo, SuSE, FreeBSD, and more
 • Windows support was announced this
    week
2) An
                                                                      engine for
                                                                       applying
                                                                        specs
                                                                      repeatably

Image from http://www.flickr.com/photos/jurvetson/480227362/sizes/l/
Specifications are
   idempotent
Specifications are
   idempotent
3) Daemons and
 executables that
determine Puppet’s
   architecture
Centralized
Management
              Code




          Puppetmasterd




puppetd                   puppetd
 OS X                      in the
            puppetd
                           cloud
             Linux
Uses SSL, and
                  provides a Certificate
                        Authority




Image from http://www.flickr.com/photos/piet_musterd/2307596484/sizes/l/
ralsh - a thin API wrapper
Puppet Is Pervasive

 Web        Entertainment   Technology




Financial
                             Defense
Community

• 2000+ people on the
 mailing lists
• 300+   people in IRC all day
• More   than 100 contributors
Shell scripts are
infrastructure assembly code
                           Programming    SysAdmin



    Low-level, non-         Assembly     commands and
       portable                              files

        Abstract,              C*         Resources
        portable


   * For small values of
   abstract
Speciation




Image from http://flickr.com/photos/kenskritters/2128853769/
Sysadmins do
                    too much
Image from http://flickr.com/photos/shirleytwofeathers/2068713495/
Let’s talk about you
Some questions
Some questions

• How many of you have
 written software to manage
 computers?
Some questions

• How many of you have
 written software to manage
 computers?
• How  many have published
 this software?
Three
    people




Developer    Sysadmin
Puppet allows you
    to bridge that gap




Image from http://www.flickr.com/photos/patrick-smith-photography/2969769911/sizes/o/
Either you can manage
 many machines with
      little effort
Either you can manage
 many machines with
      little effort

    Or you can’t
How to use Puppet
 The strategical version
Seek the pain




Image from http://www.flickr.com/photos/pagedooley/2147718252/sizes/l/
Solve the simple
   problems
Add the infrastructure
 features you always
       wanted
How to use Puppet
  The tactical version
Think like Puppet
     thinks
Think like Puppet
      thinks
• Resources,not text snippets or
 lines added to files
Think like Puppet
      thinks
• Resources,not text snippets or
 lines added to files
• What
     resources are you
 managing?
Think like Puppet
      thinks
• Resources,not text snippets or
 lines added to files
• What
     resources are you
 managing?
• How are they related to each
 other?
Replace Shell Scripts
This:
             with Resources

Becomes:
Replace Shell Scripts
This:
             with Resources

Becomes:
Replace Shell Scripts
This:
             with Resources

Becomes:
Replace Shell Scripts
This:
             with Resources

Becomes:
Relationships
matter but are often

        Configuration should get
        modifed after package
        installation

   30
                                        Service should restart when
              Configuration             configuration changes


                                   30

                                                  Service
Relationships
 matter but are often

               Configuration should get
Package        modifed after package
               installation

          30
                                               Service should restart when
                     Configuration             configuration changes


                                          30

                                                         Service
Relationships provide
                                                                                 ordering and
                                                                                  notification
               "Exec[createrepo-PM-RHEL5-noarch]"




                   "Yumrepo[PM-RHEL5-x86_64]"




                                              "Package[postgresql-server]"




                                                "Postgres::Role[puppet]"




                                                   "Package[thttpd]"




      "File[/var/www/thttpd/html/yum-PM-RHEL5-x86_64]"                       "File[/var/www/thttpd/html/yum-PM-RHEL5-noarch]"




       "Exec[rsync-rpmdir-PM-RHEL5-x86_64]"                                                                                     "Exec[rsync-rpmdir-PM-RHEL5-noarch]"




"Exec[createrepo-PM-RHEL5-x86_64]"




   "Yumrepo[PM-RHEL5-noarch]"
Classes document Intent
Organize files into
    modules
Provide platform
            abstraction
Debian




Red Hat
Provide platform
            abstraction
Debian




Red Hat
Portability and Naming
Class Membership
Class Membership
Puppet in the cloud
Heavily used in
EC2, VMWare, Xen,
       etc
Puppet allows you
to avoid the foil ball




 Image from http://www.flickr.com/photos/fungep/2516767121/sizes/l_
The Gory Details
Status and
          Roadmap
• In   production usage for years
• Aboutto release a new version with
 significant internal refactoring
• Adding    simple graphical tools this
 year
Puppet and
Capistrano
 or ControlTier
It scales like HTTPS
      because it is https
Logs go to syslog
  (by default)
puppet
        labs
The people behind
     Puppet
Bad product,
hungry Luke
From 3 to 17 people
  in the last year
Support, Services,
    and more
Questions

Mais conteúdo relacionado

Semelhante a Puppet talk at OSCON 2010.

Linux Containers and Docker SHARE.ORG Seattle 2015
Linux Containers and Docker SHARE.ORG Seattle 2015Linux Containers and Docker SHARE.ORG Seattle 2015
Linux Containers and Docker SHARE.ORG Seattle 2015Filipe Miranda
 
PowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidPowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidMatthew Johnson
 
What's new in Docker - InfraKit - Docker Meetup Berlin 2016
What's new in Docker - InfraKit - Docker Meetup Berlin 2016What's new in Docker - InfraKit - Docker Meetup Berlin 2016
What's new in Docker - InfraKit - Docker Meetup Berlin 2016Patrick Chanezon
 
Unix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolUnix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolTorrid Networks Private Limited
 
Unix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolUnix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolTorrid Networks Private Limited
 
PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...
PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...
PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...Puppet
 
Instalando Cacti no CentOS 5
Instalando Cacti no CentOS 5Instalando Cacti no CentOS 5
Instalando Cacti no CentOS 5Carlos Eduardo
 
Iteratively introducing Puppet technologies in the brownfield; Jeffrey Miller
Iteratively introducing Puppet technologies in the brownfield; Jeffrey MillerIteratively introducing Puppet technologies in the brownfield; Jeffrey Miller
Iteratively introducing Puppet technologies in the brownfield; Jeffrey MillerPuppet
 
Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushPantheon
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesHiroshi SHIBATA
 
Strategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringStrategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringAlessandro Franceschi
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy Systemadrian_nye
 
Stateless Hypervisors at Scale
Stateless Hypervisors at ScaleStateless Hypervisors at Scale
Stateless Hypervisors at ScaleAntony Messerl
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansPeter Clapham
 
Red Hat for IBM System z Update v5
Red Hat for IBM System z Update v5Red Hat for IBM System z Update v5
Red Hat for IBM System z Update v5Filipe Miranda
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetMichael Lessard
 
Workflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large EnterprisesWorkflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large EnterprisesPuppet
 
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin PiebiakWorkflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin PiebiakNETWAYS
 

Semelhante a Puppet talk at OSCON 2010. (20)

Linux Containers and Docker SHARE.ORG Seattle 2015
Linux Containers and Docker SHARE.ORG Seattle 2015Linux Containers and Docker SHARE.ORG Seattle 2015
Linux Containers and Docker SHARE.ORG Seattle 2015
 
PowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidPowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue Kid
 
What's new in Docker - InfraKit - Docker Meetup Berlin 2016
What's new in Docker - InfraKit - Docker Meetup Berlin 2016What's new in Docker - InfraKit - Docker Meetup Berlin 2016
What's new in Docker - InfraKit - Docker Meetup Berlin 2016
 
Unix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolUnix Automation using centralized configuration management tool
Unix Automation using centralized configuration management tool
 
Unix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolUnix Automation using centralized configuration management tool
Unix Automation using centralized configuration management tool
 
PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...
PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...
PuppetConf 2016: A Tale of Two Hierarchies: Group Policy & Puppet – Matt Ston...
 
Instalando Cacti no CentOS 5
Instalando Cacti no CentOS 5Instalando Cacti no CentOS 5
Instalando Cacti no CentOS 5
 
Iteratively introducing Puppet technologies in the brownfield; Jeffrey Miller
Iteratively introducing Puppet technologies in the brownfield; Jeffrey MillerIteratively introducing Puppet technologies in the brownfield; Jeffrey Miller
Iteratively introducing Puppet technologies in the brownfield; Jeffrey Miller
 
Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and Drush
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 Minutes
 
Strategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringStrategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoring
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy System
 
Stateless Hypervisors at Scale
Stateless Hypervisors at ScaleStateless Hypervisors at Scale
Stateless Hypervisors at Scale
 
First steps on CentOs7
First steps on CentOs7First steps on CentOs7
First steps on CentOs7
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticians
 
Flexible compute
Flexible computeFlexible compute
Flexible compute
 
Red Hat for IBM System z Update v5
Red Hat for IBM System z Update v5Red Hat for IBM System z Update v5
Red Hat for IBM System z Update v5
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with Puppet
 
Workflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large EnterprisesWorkflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large Enterprises
 
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin PiebiakWorkflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
 

Puppet talk at OSCON 2010.

Notas do Editor

  1. And code is great because we have tooling like version control, and decades of experience with it
  2. rpm/apt/etc becomes packages /etc/hosts becomes hosts useradd/netinfo, etc. becomes users /etc/init.d/smf/launchd/daemontools becomes services
  3. Idempotency is what allows us to manage a machine through its whole lifecycle
  4. client/server, cert mgmt, etc.
  5. * Every connection is encrypted, and the only connection that isn’t authenticated is the one that asks for a signed cert * Client certs * Autosign, manual sign, manual certificate generation * You don’t even have to use it
  6. This uses the same model as the rest of puppet -- it chooses the appropriate provider for the local system. You can edit resources, and it even works over the network.
  7. * The assembly programmers fought the adoption of C * Fear for your career if you’re a bit too fond of assembly * It’s not about fewer people, it’s about higher quality and productivity * Are there more or fewer programmers today than in the days of assembly?
  8. These are house finches, reminding one of the finches Darwin observed in the Galapagos. I want to cause sysadmin speciation.
  9. Firefighter? Architect? Developer? Tape-changer? All of the above?
  10. Do you have any computers?
  11. This is shareable, releasable code. Classes are analogous with tags
  12. We’re doing the same thing with different commands on different platforms
  13. And you don’t even need to centralize it.
  14. This is all I do