SlideShare ist ein Scribd-Unternehmen logo
1 von 124
Intro to Puppet
Making Administration Sexy
          Larry Ludwig
    Email: larry@brandorr.com
        Twitter: @lludwig
        Web: brandorr.com
Image from http://community.uaf.edu/~cde/wiki/uploads/ITSFuturama05/sexy-bill2.png
How many servers/VPS instances
do you currently manage?
How many servers/VPS instances
do you currently manage?


 • <25
How many servers/VPS instances
do you currently manage?


 • <25
 • >25 & <100
How many servers/VPS instances
do you currently manage?


 • <25
 • >25 & <100
 • >100 & <250
How many servers/VPS instances
do you currently manage?


 • <25
 • >25 & <100
 • >100 & <250
 • 250+
The Evolution of
                                     Administration




Image from http://www.wordinfo.info/words/images/evolution-man-computer.gif
The Evolution of
                                     Administration




Image from http://www.wordinfo.info/words/images/evolution-man-computer.gif
From the Single Mainframe Computer




Image from http://tvtropes.org/pmwiki/pub/images/monolith.jpg
To Today Many Virtual Servers




Image from http://www.code-muse.com/blog/wp-content/uploads/2007/11/df20021001.jpg
What’s wrong with
Administration Today?
What’s wrong with
Administration Today?
• Too many computers/services
What’s wrong with
Administration Today?
• Too many computers/services
• Too many different operating systems
What’s wrong with
Administration Today?
• Too many computers/services
• Too many different operating systems
• Not enough time
What’s wrong with
Administration Today?
• Too many computers/services
• Too many different operating systems
• Not enough time
• Mostly a manual process
What’s wrong with
Administration Today?
• Too many computers/services
• Too many different operating systems
• Not enough time
• Mostly a manual process
• No feedback loop - (work and boss)
What’s wrong with
Administration Today?
• Too many computers/services
• Too many different operating systems
• Not enough time
• Mostly a manual process
• No feedback loop - (work and boss)
• Best practices are not shared
What’s wrong with
Administration Today?
• Too many computers/services
• Too many different operating systems
• Not enough time
• Mostly a manual process
• No feedback loop - (work and boss)
• Best practices are not shared
• Too much money lost when they fail
What’s wrong with
Administration Today?
• Too many computers/services
• Too many different operating systems
• Not enough time
• Mostly a manual process
• No feedback loop - (work and boss)
• Best practices are not shared
• Too much money lost when they fail
Not exactly modern
Image from http://flickr.com/photos/silverwood/593965547/
In fact,
                                                            they kinda
                                                               suck

Image from http://flickr.com/photos/jefframone/1426716646/
Sysadmin Programming
 Language Progression
Sysadmin Programming
   Language Progression
• Assembly Language
Sysadmin Programming
   Language Progression
• Assembly Language
• High Level compiled languages (Cobol, C, C++)
Sysadmin Programming
   Language Progression
• Assembly Language
• High Level compiled languages (Cobol, C, C++)
• Shell Scripting (bash, awk, sed, grep, etc.)
Sysadmin Programming
   Language Progression
• Assembly Language
• High Level compiled languages (Cobol, C, C++)
• Shell Scripting (bash, awk, sed, grep, etc.)
• High Level Interpreted (Perl and Python)
Sysadmin Programming
   Language Progression
• Assembly Language
• High Level compiled languages (Cobol, C, C++)
• Shell Scripting (bash, awk, sed, grep, etc.)
• High Level Interpreted (Perl and Python)
• Administration Based Programming (CFEngine)
What’s Wrong With
 Existing Tools?
What’s Wrong With
  Existing Tools?
• Monitoring is immature and requires far too
  much effort
What’s Wrong With
  Existing Tools?
• Monitoring is immature and requires far too
  much effort
• Few if any built-in feedback loops
What’s Wrong With
  Existing Tools?
• Monitoring is immature and requires far too
  much effort
• Few if any built-in feedback loops
• Each tool is an independent
What’s Wrong With
  Existing Tools?
• Monitoring is immature and requires far too
  much effort
• Few if any built-in feedback loops
• Each tool is an independent
• All failures lead directly to human
  intervention
What’s Wrong With
  Existing Tools?
• Monitoring is immature and requires far too
  much effort
• Few if any built-in feedback loops
• Each tool is an independent
• All failures lead directly to human
  intervention
• No sharing of best practices and a manual
  process prone to errors
What’s Wrong With
  Existing Tools?
• Monitoring is immature and requires far too
  much effort
• Few if any built-in feedback loops
• Each tool is an independent
• All failures lead directly to human
  intervention
• No sharing of best practices and a manual
  process prone to errors
• Security policies via documentation files
What is Puppet?
What is Puppet?
• Puppet is a programming language that
  automates system administration
What is Puppet?
• Puppet is a programming language that
  automates system administration
• It’s the glue between resources and
  configuration files
What is Puppet?
• Puppet is a programming language that
  automates system administration
• It’s the glue between resources and
  configuration files
• Allows for repeatable sysadmin best
  practices
Net Result
• Servers are configured exactly how you
  specify
• Code once, deploy many
• Self documenting code
• Allow for repeatable built machines
• Allows for a constantly updated
  infrastructure
Puppet Features
Puppet Features
•   Open Source GPL license
Puppet Features
•   Open Source GPL license
•   Developed in Ruby language
Puppet Features
•   Open Source GPL license
•   Developed in Ruby language
•   Declarative language
Puppet Features
•   Open Source GPL license
•   Developed in Ruby language
•   Declarative language
•   Resource abstraction
Puppet Features
•   Open Source GPL license
•   Developed in Ruby language
•   Declarative language
•   Resource abstraction
•   client/server model - centralized management with
    downloadable resources
Puppet Features
•   Open Source GPL license
•   Developed in Ruby language
•   Declarative language
•   Resource abstraction
•   client/server model - centralized management with
    downloadable resources
•   Platform independent (supports many *nixes)
Puppet Features
•   Open Source GPL license
•   Developed in Ruby language
•   Declarative language
•   Resource abstraction
•   client/server model - centralized management with
    downloadable resources
•   Platform independent (supports many *nixes)
•   Relationships and execution order
Puppet Features
•   Open Source GPL license
•   Developed in Ruby language
•   Declarative language
•   Resource abstraction
•   client/server model - centralized management with
    downloadable resources
•   Platform independent (supports many *nixes)
•   Relationships and execution order
•   Can be used with servers and desktops
Puppet Features
•   Open Source GPL license
•   Developed in Ruby language
•   Declarative language
•   Resource abstraction
•   client/server model - centralized management with
    downloadable resources
•   Platform independent (supports many *nixes)
•   Relationships and execution order
•   Can be used with servers and desktops
•   Recipes “make it so” - ensures correctness and
    repeatable
Puppet Features
•   Open Source GPL license
•   Developed in Ruby language
•   Declarative language
•   Resource abstraction
•   client/server model - centralized management with
    downloadable resources
•   Platform independent (supports many *nixes)
•   Relationships and execution order
•   Can be used with servers and desktops
•   Recipes “make it so” - ensures correctness and
    repeatable
•   Not only for installs but to maintain and upgrade
O
SSH
Net Effects
Your Infrastructure is a
   now a program
10,000 ft Overview
Centralized
Management
Each host gets a
Resource Catalog
The Configuration
    Process
The Configuration
        Process
1. Retrieve resource catalog from central
   server
The Configuration
        Process
1. Retrieve resource catalog from central
   server
2. Determine resource order
The Configuration
         Process
1. Retrieve resource catalog from central
   server
2. Determine resource order
3. Check each resource in turn, fixing if
   necessary
The Configuration
         Process
1. Retrieve resource catalog from central
   server
2. Determine resource order
3. Check each resource in turn, fixing if
   necessary
4. Rinse and repeat, every 30 minutes
Transactions (for each
      resource)
Transactions (for each
              resource)

1. Retrieve current state (e.g., by querying dpkg
   db or doing a stat)
Transactions (for each
              resource)

1. Retrieve current state (e.g., by querying dpkg
   db or doing a stat)
2. Compare to desired state
Transactions (for each
               resource)

1. Retrieve current state (e.g., by querying dpkg
   db or doing a stat)
2. Compare to desired state
3. Fix, if necessary (or just log)
Configurations are
  idempotent
Configurations are
  idempotent
Idempotency allows
management through
    the lifecycle
Resource sorting is
done via dependencies
Otherwise known as a ‘Resource Graph’
Abstraction
Portable Resources
This:
Portable Resources
This:



Becomes:
Portable Resources
This:



Becomes:
Portable Resources
This:



Becomes:
Portable Resources
This:



Becomes:
Portable Resources
This:



Becomes:
What can you manage?
•   40+ resource types
•   Users in NetInfo, useradd, pw and LDAP
•   Support for Debian, Ubuntu, Red Hat,
    Solaris, OS X, Gentoo, SuSE, FreeBSD,
    AIX, HP-UX and more (currently not
    Windows)
Built In Types
•   augeas                  •   nagios_hostgroup
•   computer                •   nagios_service
•   cron                    •   nagios_servicedependency
•   exec                    •   nagios_serviceescalation
•   file                     •   nagios_serviceextinfo
•   filebucket               •   nagios_servicegroup
•   group                   •   nagios_timeperiod
•   host                    •   notify
•   k5login                 •   package
•   macauthorization        •   resources
•   mailalias               •   schedule
•   maillist                •   selmodule
•   mcx                     •   service
•   mount                   •   ssh_authorized_key
•   nagios_command          •   sshkey
•   nagios_contact          •   tidy
•   nagios_contactgroup     •   user
•   nagios_host             •   yumrepo
•   nagios_hostdependency   •   zfs
•   nagios_hostescalation   •   zone
•   nagios_hostextinfo      •   zpool
Reuse
Same concept, different
        code
Debian
Same concept, different
         code
Debian



Red Hat
Portability and Naming
One solution per
   problem
Relationships
Relationships matter
but are often implicit
Relationships matter
    but are often implicit


Package
Relationships matter
    but are often implicit

          Configuration should get
Package    modifed after package
                installation


              Configuration
Relationships matter
    but are often implicit

          Configuration should get
Package    modifed after package
                installation
                                    Service should restart
                                            when
              Configuration
                                    configuration changes


                                          Service
Relationships matter
Classes provide Intent
Facter
What is Facter?
What is Facter?

• Collects and display facts about the
  host
What is Facter?

• Collects and display facts about the
  host
• Integrated into puppet. Variables are
  inserted into Puppet recipes
What is Facter?

• Collects and display facts about the
  host
• Integrated into puppet. Variables are
  inserted into Puppet recipes
• Can create custom facts
What is Facter?

• Collects and display facts about the
  host
• Integrated into puppet. Variables are
  inserted into Puppet recipes
• Can create custom facts
• Detects changes and updates variables
Sample Output
Configuration Files
How to manage
configuration files?
How to manage
 configuration files?
• Direct File
How to manage
  configuration files?
• Direct File
• Inline Template (erb - ruby template language)
How to manage
  configuration files?
• Direct File
• Inline Template (erb - ruby template language)
• Augeas (new puppet type written by RedHat)
File Template
source => [
    “puppet:///nagios-nrpe/nrpe.${fqdn}.conf”,
    “puppet:///nagios-nrpe/nrpe.${hostname}.conf”,
    “puppet:///nagios-nrpe/nrpe.conf
    ],
erb config files
  content => $config_exim_setup ? {
       "antispam”=> template("directadmin-exim/exim.antispam.conf.erb"),
       "custom" => template("directadmin-exim/exim.${hostname}.conf.erb",
       default => template("directadmin-exim/exim.default.conf.erb"),
  },

exim.antispam.conf.erb
...
<% if config_da_clamd == "true" -%>
# enable clamav
av_scanner = clamd:/var/run/clamav/clamd.sock
<% end -%>
...
Augeas
• New to Puppet (version 0.24.7)
• Currently supports RH/CentOS?
• Allows for line by line file editing
augeas{"jboss_conf":
  context => "/files",
  changes => [
     "set /etc/jbossas/jbossas.conf/JBOSS_IP $ipaddress",
     "set /etc/jbossas/jbossas.conf/JAVA_HOME /usr"
  ],
  load_path => "$/usr/share/jbossas/lenses",
}
Node Classification
Puppet’s Internals
Puppet scales like
    HTTPS
All communication is
 via XMLRPC over
       HTTPS
   REST over HTTPS in 0.25.x
Uses SSL, and provides
a Certificate Authority
Logs go to syslog (by
      default)
Pros and Cons
Pros
•   Forever changes the way you think about
    administration. Administration now follows a
    development lifecycle

•   Relationships

•   Make a consistent configuration that always works

•   External Node classification - (LDAP or external app)

•   Good open source community
Cons
•   Weak with complex configuration files (Augeas
    should help)
•   Scalability issues out of box (uses webrick by
    default)
•   Documentation is slightly lacking and wiki needs
    improvement
•   Memory pig (especially with 64 bit OSes)
•   Administration becomes system programming
•   Test test test!
•   Bad code, can have massive ripple effects
The Competition
Puppet vs. Capistrano
• Primarily used for app deployment lifecycle
  (mostly RoR)
• On top of SSH
• No resource abstraction
• similar to existing scripting
Puppet vs. Cfengine
• Closed sourced
• No resource abstraction
• No ordering
• No code reuse
• Cfengine 3 is a much needed improvement
Puppet vs. Chef
• Puppet uses an external DSL while Chef is
  Ruby based
• Imperative (since is Ruby language)
• Chef’s relationship ordering is top down
  (order of code matters)
• No true dependency graph
Resources
•   http://puppet.reductivelabs.com/

     •   Source Code
     •   Recipes
     •   Wiki
     •   Documentation
     •   Bug Tracker

•   http://groups.google.com/group/puppet-users

•   “Pulling Strings with Puppet: Configuration Management Made
    Easy” - James Turnbull

•   ERB templates - http://www.ruby-doc.org/stdlib/libdoc/erb/rdoc/
NYC Puppet Group

• http://groups.google.com/group/puppet-nyc
• If demand supports it - monthly
• A.D.D. Moment: Don’t forget about
  marketing research question
Questions?
After NYLUG
        TGI Fridays 8:30 PM
677 Lexington Avenue and 56th Street
   Second floor, Northeast corner.
Larry Ludwig
Available for Puppet consulting services and best
       practices. In and out of the cloud

               Larry Ludwig
      Email: larry@brandorr.com
             Twitter: @lludwig
            Web: brandorr.com

Weitere ähnliche Inhalte

Was ist angesagt?

From java-to-ruby-book-summary
From java-to-ruby-book-summaryFrom java-to-ruby-book-summary
From java-to-ruby-book-summary120bi
 
The story of language development
The story of language developmentThe story of language development
The story of language developmentHiroshi SHIBATA
 
Joe Damato
Joe DamatoJoe Damato
Joe DamatoOntico
 
Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Roberto Cortez
 
Mixing Plone and Django for explosive results
Mixing Plone and Django for explosive resultsMixing Plone and Django for explosive results
Mixing Plone and Django for explosive resultsSimone Deponti
 
Gearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleGearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleMike Willbanks
 
Juggling Java EE with Enterprise Apache Maven
Juggling Java EE with Enterprise Apache MavenJuggling Java EE with Enterprise Apache Maven
Juggling Java EE with Enterprise Apache Mavenelliando dias
 
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Frank van der Linden
 
Maven - Taming the Beast
Maven - Taming the BeastMaven - Taming the Beast
Maven - Taming the BeastRoberto Cortez
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsAchievers Tech
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...Heiko Voigt
 
Virtualizing Development
Virtualizing DevelopmentVirtualizing Development
Virtualizing DevelopmentAdam Culp
 
Why Plone Will Die
Why Plone Will DieWhy Plone Will Die
Why Plone Will DieAndreas Jung
 
Symfony 2 under control
Symfony 2 under controlSymfony 2 under control
Symfony 2 under controlMax Romanovsky
 
Velocity london 2012 bbc olympics
Velocity london 2012 bbc olympicsVelocity london 2012 bbc olympics
Velocity london 2012 bbc olympicsAndrew Brockhurst
 
Polyglot Plugin Programming
Polyglot Plugin ProgrammingPolyglot Plugin Programming
Polyglot Plugin ProgrammingAtlassian
 
Continuous Integration & Drupal
Continuous Integration & DrupalContinuous Integration & Drupal
Continuous Integration & DrupalLimoenGroen
 
High Availability Perl DBI + MySQL
High Availability Perl DBI + MySQLHigh Availability Perl DBI + MySQL
High Availability Perl DBI + MySQLSteve Purkis
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal infoSynapseindiappsdevelopment
 

Was ist angesagt? (20)

Gearman
GearmanGearman
Gearman
 
From java-to-ruby-book-summary
From java-to-ruby-book-summaryFrom java-to-ruby-book-summary
From java-to-ruby-book-summary
 
The story of language development
The story of language developmentThe story of language development
The story of language development
 
Joe Damato
Joe DamatoJoe Damato
Joe Damato
 
Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7
 
Mixing Plone and Django for explosive results
Mixing Plone and Django for explosive resultsMixing Plone and Django for explosive results
Mixing Plone and Django for explosive results
 
Gearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleGearman: A Job Server made for Scale
Gearman: A Job Server made for Scale
 
Juggling Java EE with Enterprise Apache Maven
Juggling Java EE with Enterprise Apache MavenJuggling Java EE with Enterprise Apache Maven
Juggling Java EE with Enterprise Apache Maven
 
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
 
Maven - Taming the Beast
Maven - Taming the BeastMaven - Taming the Beast
Maven - Taming the Beast
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
Virtualizing Development
Virtualizing DevelopmentVirtualizing Development
Virtualizing Development
 
Why Plone Will Die
Why Plone Will DieWhy Plone Will Die
Why Plone Will Die
 
Symfony 2 under control
Symfony 2 under controlSymfony 2 under control
Symfony 2 under control
 
Velocity london 2012 bbc olympics
Velocity london 2012 bbc olympicsVelocity london 2012 bbc olympics
Velocity london 2012 bbc olympics
 
Polyglot Plugin Programming
Polyglot Plugin ProgrammingPolyglot Plugin Programming
Polyglot Plugin Programming
 
Continuous Integration & Drupal
Continuous Integration & DrupalContinuous Integration & Drupal
Continuous Integration & Drupal
 
High Availability Perl DBI + MySQL
High Availability Perl DBI + MySQLHigh Availability Perl DBI + MySQL
High Availability Perl DBI + MySQL
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
 

Andere mochten auch

Рождество в США
Рождество в СШАРождество в США
Рождество в СШАPe4enGo
 
Рождество в США
Рождество в СШАРождество в США
Рождество в СШАPe4enGo
 
Dinamika relasional akademisi-praktisi
Dinamika relasional akademisi-praktisiDinamika relasional akademisi-praktisi
Dinamika relasional akademisi-praktisiAmin Wibowo
 
Komunikasi pemasaran
Komunikasi pemasaran Komunikasi pemasaran
Komunikasi pemasaran Amin Wibowo
 
Value Line Ratings and Report 2009
Value Line Ratings and Report 2009Value Line Ratings and Report 2009
Value Line Ratings and Report 2009Work
 
One-to-Many relational Web Application
One-to-Many relational Web ApplicationOne-to-Many relational Web Application
One-to-Many relational Web ApplicationOnline Database
 
Value Line Sample Feb 2009
Value Line Sample Feb 2009Value Line Sample Feb 2009
Value Line Sample Feb 2009Work
 
Cognisant Webhosting Reseller
Cognisant Webhosting ResellerCognisant Webhosting Reseller
Cognisant Webhosting Resellercognisant
 

Andere mochten auch (13)

Titulo
TituloTitulo
Titulo
 
Teori pemasaran
Teori pemasaranTeori pemasaran
Teori pemasaran
 
Рождество в США
Рождество в СШАРождество в США
Рождество в США
 
Рождество в США
Рождество в СШАРождество в США
Рождество в США
 
Dinamika relasional akademisi-praktisi
Dinamika relasional akademisi-praktisiDinamika relasional akademisi-praktisi
Dinamika relasional akademisi-praktisi
 
15th Street
15th Street15th Street
15th Street
 
15th Street
15th Street15th Street
15th Street
 
Pa 2005
Pa 2005Pa 2005
Pa 2005
 
Komunikasi pemasaran
Komunikasi pemasaran Komunikasi pemasaran
Komunikasi pemasaran
 
Value Line Ratings and Report 2009
Value Line Ratings and Report 2009Value Line Ratings and Report 2009
Value Line Ratings and Report 2009
 
One-to-Many relational Web Application
One-to-Many relational Web ApplicationOne-to-Many relational Web Application
One-to-Many relational Web Application
 
Value Line Sample Feb 2009
Value Line Sample Feb 2009Value Line Sample Feb 2009
Value Line Sample Feb 2009
 
Cognisant Webhosting Reseller
Cognisant Webhosting ResellerCognisant Webhosting Reseller
Cognisant Webhosting Reseller
 

Ähnlich wie Intro To Puppet.Key

Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
 
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 -  Rock Solid Deployment of Symfony AppsSymfony Live NYC 2014 -  Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony AppsPablo Godel
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsPablo Godel
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Edureka!
 
DevOps For Solo Developers
DevOps For Solo DevelopersDevOps For Solo Developers
DevOps For Solo DevelopersJure Cuhalev
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemYi-Ting Cheng
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityGeoff Harcourt
 
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupaldrupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupalrolf vreijdenberger
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Tomas Doran
 
Immutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine ImagesImmutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine ImagesC4Media
 
Building software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinBuilding software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinRikard Thulin
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationNick Josevski
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsMichael Lihs
 
Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVaidik Kapoor
 
5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous DeliveryXebiaLabs
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsRonny López
 
Infrastructure as Code - Getting Started, Concepts & Tools
Infrastructure as Code - Getting Started, Concepts & ToolsInfrastructure as Code - Getting Started, Concepts & Tools
Infrastructure as Code - Getting Started, Concepts & ToolsLior Kamrat
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsPablo Godel
 
Deploying distributed software services to the cloud without breaking a sweat
Deploying distributed software services to the cloud without breaking a sweatDeploying distributed software services to the cloud without breaking a sweat
Deploying distributed software services to the cloud without breaking a sweatSusan Potter
 
Distributed software services to the cloud without breaking a sweat
Distributed software services to the cloud without breaking a sweatDistributed software services to the cloud without breaking a sweat
Distributed software services to the cloud without breaking a sweatJosé Ferreiro
 

Ähnlich wie Intro To Puppet.Key (20)

Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 -  Rock Solid Deployment of Symfony AppsSymfony Live NYC 2014 -  Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 
DevOps For Solo Developers
DevOps For Solo DevelopersDevOps For Solo Developers
DevOps For Solo Developers
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails Ecosystem
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production Parity
 
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupaldrupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)
 
Immutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine ImagesImmutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine Images
 
Building software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinBuilding software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard Thulin
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
 
Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps Culture
 
5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP Applications
 
Infrastructure as Code - Getting Started, Concepts & Tools
Infrastructure as Code - Getting Started, Concepts & ToolsInfrastructure as Code - Getting Started, Concepts & Tools
Infrastructure as Code - Getting Started, Concepts & Tools
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web Applications
 
Deploying distributed software services to the cloud without breaking a sweat
Deploying distributed software services to the cloud without breaking a sweatDeploying distributed software services to the cloud without breaking a sweat
Deploying distributed software services to the cloud without breaking a sweat
 
Distributed software services to the cloud without breaking a sweat
Distributed software services to the cloud without breaking a sweatDistributed software services to the cloud without breaking a sweat
Distributed software services to the cloud without breaking a sweat
 

Kürzlich hochgeladen

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Kürzlich hochgeladen (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

Intro To Puppet.Key

  • 1. Intro to Puppet Making Administration Sexy Larry Ludwig Email: larry@brandorr.com Twitter: @lludwig Web: brandorr.com
  • 3. How many servers/VPS instances do you currently manage?
  • 4. How many servers/VPS instances do you currently manage? • <25
  • 5. How many servers/VPS instances do you currently manage? • <25 • >25 & <100
  • 6. How many servers/VPS instances do you currently manage? • <25 • >25 & <100 • >100 & <250
  • 7. How many servers/VPS instances do you currently manage? • <25 • >25 & <100 • >100 & <250 • 250+
  • 8. The Evolution of Administration Image from http://www.wordinfo.info/words/images/evolution-man-computer.gif
  • 9. The Evolution of Administration Image from http://www.wordinfo.info/words/images/evolution-man-computer.gif
  • 10. From the Single Mainframe Computer Image from http://tvtropes.org/pmwiki/pub/images/monolith.jpg
  • 11. To Today Many Virtual Servers Image from http://www.code-muse.com/blog/wp-content/uploads/2007/11/df20021001.jpg
  • 13. What’s wrong with Administration Today? • Too many computers/services
  • 14. What’s wrong with Administration Today? • Too many computers/services • Too many different operating systems
  • 15. What’s wrong with Administration Today? • Too many computers/services • Too many different operating systems • Not enough time
  • 16. What’s wrong with Administration Today? • Too many computers/services • Too many different operating systems • Not enough time • Mostly a manual process
  • 17. What’s wrong with Administration Today? • Too many computers/services • Too many different operating systems • Not enough time • Mostly a manual process • No feedback loop - (work and boss)
  • 18. What’s wrong with Administration Today? • Too many computers/services • Too many different operating systems • Not enough time • Mostly a manual process • No feedback loop - (work and boss) • Best practices are not shared
  • 19. What’s wrong with Administration Today? • Too many computers/services • Too many different operating systems • Not enough time • Mostly a manual process • No feedback loop - (work and boss) • Best practices are not shared • Too much money lost when they fail
  • 20. What’s wrong with Administration Today? • Too many computers/services • Too many different operating systems • Not enough time • Mostly a manual process • No feedback loop - (work and boss) • Best practices are not shared • Too much money lost when they fail
  • 21. Not exactly modern Image from http://flickr.com/photos/silverwood/593965547/
  • 22. In fact, they kinda suck Image from http://flickr.com/photos/jefframone/1426716646/
  • 24. Sysadmin Programming Language Progression • Assembly Language
  • 25. Sysadmin Programming Language Progression • Assembly Language • High Level compiled languages (Cobol, C, C++)
  • 26. Sysadmin Programming Language Progression • Assembly Language • High Level compiled languages (Cobol, C, C++) • Shell Scripting (bash, awk, sed, grep, etc.)
  • 27. Sysadmin Programming Language Progression • Assembly Language • High Level compiled languages (Cobol, C, C++) • Shell Scripting (bash, awk, sed, grep, etc.) • High Level Interpreted (Perl and Python)
  • 28. Sysadmin Programming Language Progression • Assembly Language • High Level compiled languages (Cobol, C, C++) • Shell Scripting (bash, awk, sed, grep, etc.) • High Level Interpreted (Perl and Python) • Administration Based Programming (CFEngine)
  • 29. What’s Wrong With Existing Tools?
  • 30. What’s Wrong With Existing Tools? • Monitoring is immature and requires far too much effort
  • 31. What’s Wrong With Existing Tools? • Monitoring is immature and requires far too much effort • Few if any built-in feedback loops
  • 32. What’s Wrong With Existing Tools? • Monitoring is immature and requires far too much effort • Few if any built-in feedback loops • Each tool is an independent
  • 33. What’s Wrong With Existing Tools? • Monitoring is immature and requires far too much effort • Few if any built-in feedback loops • Each tool is an independent • All failures lead directly to human intervention
  • 34. What’s Wrong With Existing Tools? • Monitoring is immature and requires far too much effort • Few if any built-in feedback loops • Each tool is an independent • All failures lead directly to human intervention • No sharing of best practices and a manual process prone to errors
  • 35. What’s Wrong With Existing Tools? • Monitoring is immature and requires far too much effort • Few if any built-in feedback loops • Each tool is an independent • All failures lead directly to human intervention • No sharing of best practices and a manual process prone to errors • Security policies via documentation files
  • 37. What is Puppet? • Puppet is a programming language that automates system administration
  • 38. What is Puppet? • Puppet is a programming language that automates system administration • It’s the glue between resources and configuration files
  • 39. What is Puppet? • Puppet is a programming language that automates system administration • It’s the glue between resources and configuration files • Allows for repeatable sysadmin best practices
  • 40. Net Result • Servers are configured exactly how you specify • Code once, deploy many • Self documenting code • Allow for repeatable built machines • Allows for a constantly updated infrastructure
  • 42. Puppet Features • Open Source GPL license
  • 43. Puppet Features • Open Source GPL license • Developed in Ruby language
  • 44. Puppet Features • Open Source GPL license • Developed in Ruby language • Declarative language
  • 45. Puppet Features • Open Source GPL license • Developed in Ruby language • Declarative language • Resource abstraction
  • 46. Puppet Features • Open Source GPL license • Developed in Ruby language • Declarative language • Resource abstraction • client/server model - centralized management with downloadable resources
  • 47. Puppet Features • Open Source GPL license • Developed in Ruby language • Declarative language • Resource abstraction • client/server model - centralized management with downloadable resources • Platform independent (supports many *nixes)
  • 48. Puppet Features • Open Source GPL license • Developed in Ruby language • Declarative language • Resource abstraction • client/server model - centralized management with downloadable resources • Platform independent (supports many *nixes) • Relationships and execution order
  • 49. Puppet Features • Open Source GPL license • Developed in Ruby language • Declarative language • Resource abstraction • client/server model - centralized management with downloadable resources • Platform independent (supports many *nixes) • Relationships and execution order • Can be used with servers and desktops
  • 50. Puppet Features • Open Source GPL license • Developed in Ruby language • Declarative language • Resource abstraction • client/server model - centralized management with downloadable resources • Platform independent (supports many *nixes) • Relationships and execution order • Can be used with servers and desktops • Recipes “make it so” - ensures correctness and repeatable
  • 51. Puppet Features • Open Source GPL license • Developed in Ruby language • Declarative language • Resource abstraction • client/server model - centralized management with downloadable resources • Platform independent (supports many *nixes) • Relationships and execution order • Can be used with servers and desktops • Recipes “make it so” - ensures correctness and repeatable • Not only for installs but to maintain and upgrade
  • 52. O SSH
  • 54. Your Infrastructure is a now a program
  • 57. Each host gets a Resource Catalog
  • 59. The Configuration Process 1. Retrieve resource catalog from central server
  • 60. The Configuration Process 1. Retrieve resource catalog from central server 2. Determine resource order
  • 61. The Configuration Process 1. Retrieve resource catalog from central server 2. Determine resource order 3. Check each resource in turn, fixing if necessary
  • 62. The Configuration Process 1. Retrieve resource catalog from central server 2. Determine resource order 3. Check each resource in turn, fixing if necessary 4. Rinse and repeat, every 30 minutes
  • 64. Transactions (for each resource) 1. Retrieve current state (e.g., by querying dpkg db or doing a stat)
  • 65. Transactions (for each resource) 1. Retrieve current state (e.g., by querying dpkg db or doing a stat) 2. Compare to desired state
  • 66. Transactions (for each resource) 1. Retrieve current state (e.g., by querying dpkg db or doing a stat) 2. Compare to desired state 3. Fix, if necessary (or just log)
  • 67. Configurations are idempotent
  • 68. Configurations are idempotent
  • 70. Resource sorting is done via dependencies Otherwise known as a ‘Resource Graph’
  • 78. What can you manage? • 40+ resource types • Users in NetInfo, useradd, pw and LDAP • Support for Debian, Ubuntu, Red Hat, Solaris, OS X, Gentoo, SuSE, FreeBSD, AIX, HP-UX and more (currently not Windows)
  • 79. Built In Types • augeas • nagios_hostgroup • computer • nagios_service • cron • nagios_servicedependency • exec • nagios_serviceescalation • file • nagios_serviceextinfo • filebucket • nagios_servicegroup • group • nagios_timeperiod • host • notify • k5login • package • macauthorization • resources • mailalias • schedule • maillist • selmodule • mcx • service • mount • ssh_authorized_key • nagios_command • sshkey • nagios_contact • tidy • nagios_contactgroup • user • nagios_host • yumrepo • nagios_hostdependency • zfs • nagios_hostescalation • zone • nagios_hostextinfo • zpool
  • 80. Reuse
  • 81. Same concept, different code Debian
  • 82. Same concept, different code Debian Red Hat
  • 84. One solution per problem
  • 87. Relationships matter but are often implicit Package
  • 88. Relationships matter but are often implicit Configuration should get Package modifed after package installation Configuration
  • 89. Relationships matter but are often implicit Configuration should get Package modifed after package installation Service should restart when Configuration configuration changes Service
  • 94. What is Facter? • Collects and display facts about the host
  • 95. What is Facter? • Collects and display facts about the host • Integrated into puppet. Variables are inserted into Puppet recipes
  • 96. What is Facter? • Collects and display facts about the host • Integrated into puppet. Variables are inserted into Puppet recipes • Can create custom facts
  • 97. What is Facter? • Collects and display facts about the host • Integrated into puppet. Variables are inserted into Puppet recipes • Can create custom facts • Detects changes and updates variables
  • 101. How to manage configuration files? • Direct File
  • 102. How to manage configuration files? • Direct File • Inline Template (erb - ruby template language)
  • 103. How to manage configuration files? • Direct File • Inline Template (erb - ruby template language) • Augeas (new puppet type written by RedHat)
  • 104. File Template source => [ “puppet:///nagios-nrpe/nrpe.${fqdn}.conf”, “puppet:///nagios-nrpe/nrpe.${hostname}.conf”, “puppet:///nagios-nrpe/nrpe.conf ],
  • 105. erb config files content => $config_exim_setup ? { "antispam”=> template("directadmin-exim/exim.antispam.conf.erb"), "custom" => template("directadmin-exim/exim.${hostname}.conf.erb", default => template("directadmin-exim/exim.default.conf.erb"), }, exim.antispam.conf.erb ... <% if config_da_clamd == "true" -%> # enable clamav av_scanner = clamd:/var/run/clamav/clamd.sock <% end -%> ...
  • 106. Augeas • New to Puppet (version 0.24.7) • Currently supports RH/CentOS? • Allows for line by line file editing augeas{"jboss_conf": context => "/files", changes => [ "set /etc/jbossas/jbossas.conf/JBOSS_IP $ipaddress", "set /etc/jbossas/jbossas.conf/JAVA_HOME /usr" ], load_path => "$/usr/share/jbossas/lenses", }
  • 110. All communication is via XMLRPC over HTTPS REST over HTTPS in 0.25.x
  • 111. Uses SSL, and provides a Certificate Authority
  • 112. Logs go to syslog (by default)
  • 114. Pros • Forever changes the way you think about administration. Administration now follows a development lifecycle • Relationships • Make a consistent configuration that always works • External Node classification - (LDAP or external app) • Good open source community
  • 115. Cons • Weak with complex configuration files (Augeas should help) • Scalability issues out of box (uses webrick by default) • Documentation is slightly lacking and wiki needs improvement • Memory pig (especially with 64 bit OSes) • Administration becomes system programming • Test test test! • Bad code, can have massive ripple effects
  • 117. Puppet vs. Capistrano • Primarily used for app deployment lifecycle (mostly RoR) • On top of SSH • No resource abstraction • similar to existing scripting
  • 118. Puppet vs. Cfengine • Closed sourced • No resource abstraction • No ordering • No code reuse • Cfengine 3 is a much needed improvement
  • 119. Puppet vs. Chef • Puppet uses an external DSL while Chef is Ruby based • Imperative (since is Ruby language) • Chef’s relationship ordering is top down (order of code matters) • No true dependency graph
  • 120. Resources • http://puppet.reductivelabs.com/ • Source Code • Recipes • Wiki • Documentation • Bug Tracker • http://groups.google.com/group/puppet-users • “Pulling Strings with Puppet: Configuration Management Made Easy” - James Turnbull • ERB templates - http://www.ruby-doc.org/stdlib/libdoc/erb/rdoc/
  • 121. NYC Puppet Group • http://groups.google.com/group/puppet-nyc • If demand supports it - monthly • A.D.D. Moment: Don’t forget about marketing research question
  • 123. After NYLUG TGI Fridays 8:30 PM 677 Lexington Avenue and 56th Street Second floor, Northeast corner.
  • 124. Larry Ludwig Available for Puppet consulting services and best practices. In and out of the cloud Larry Ludwig Email: larry@brandorr.com Twitter: @lludwig Web: brandorr.com

Hinweis der Redaktion

  1. admin 15 years, using puppet for almost 2 years. Originally called &amp;#x201C;What it is and how can it make system administration less painful&amp;#x201D; Conveys a better image and what immediately comes to mind is no other than:
  2. This is not a sales pitch I will ask a marketing some marketing research at the end
  3. Like to know my audience
  4. Like to know my audience
  5. Like to know my audience
  6. Like to know my audience
  7. Stone Age Modernize Administration like programming has in the past 20 years. Mention my story
  8. One server relative easy to manage - one OS - mostly custom developed applications, few commercial or OSS apps to maintain and upgrade - monolith mainframe
  9. Even worse, cloud based instances that only last a few hours
  10. Like a blacksmith
  11. no complex images repeatable installations
  12. Puppet make administration a process than a manual task
  13. puppetd run as a daemon or cron one puppetmaster each server is called a node
  14. * You can change the runinterval * You can trigger runs through puppetrun, SIGUSR1, or puppetd --test
  15. * You can change the runinterval * You can trigger runs through puppetrun, SIGUSR1, or puppetd --test
  16. * You can change the runinterval * You can trigger runs through puppetrun, SIGUSR1, or puppetd --test
  17. * You can change the runinterval * You can trigger runs through puppetrun, SIGUSR1, or puppetd --test
  18. Idempotency is what allows us to manage a machine through its whole lifecycle term idempotent is used to describe methods or subroutine calls that can safely be called multiple times, as invoking the procedure a single time or multiple times results in the system maintaining the same state; i.e., after the method call all variables have the same value as they did before.
  19. add/remove more resources as needed
  20. resources title attributes ensures correctness (self healing)
  21. resources title attributes ensures correctness (self healing)
  22. resources title attributes ensures correctness (self healing)
  23. resources title attributes ensures correctness (self healing)
  24. resources title attributes ensures correctness (self healing)
  25. resources title attributes ensures correctness (self healing)
  26. resources title attributes ensures correctness (self healing)
  27. resources title attributes ensures correctness (self healing)
  28. Can develop your own custom Types
  29. We&amp;#x2019;re doing the same thing with different commands on different platforms
  30. resources unique name for each resource
  31. We&amp;#x2019;ll come back to abstraction
  32. This is shareable, releasable code. Classes are analogous with tags modules
  33. OO inherits includes external nodes ie (LDAP)
  34. And you don&amp;#x2019;t even need to centralize it.
  35. * Every connection is encrypted, and the only connection that isn&amp;#x2019;t authenticated is the one that asks for a signed cert * Client certs * Autosign, manual sign, manual certificate generation * You don&amp;#x2019;t even have to use it
  36. use syslog-ng
  37. development lifecycle
  38. developed by one person, not active development, not client/server environment