SlideShare a Scribd company logo
1 of 47
Download to read offline
Expanded Introduction
     to Puppet
               2011-04-02
             Texas Linux Fest
                Austin, TX

              Garrett Honeycutt
        Professional Services Consultant
           garrett@puppetlabs.com
    http://linkedin.com/in/garretthoneycutt
Puppet Open Source Ecosystem

                                    Puppet Distribution

                                    Bundled with major OS
                                    !




   
    3,000 person mailing list

    2,000 messages a month
         Puppet Community

  300 people at all times in IRC    Active participation
                                    !

   (#puppet on freenode.net)

 100+ people       100+ modules
                                    Puppet Contributors

contributing to    contributed to
                                    Framework
documentation      Puppet Module
                                    enhancements
   and code 
          Forge 
      !
Operating System Support

Linux
     Unix
       Other
Red Hat
    Solaris
 Fedora
             OS X
 CentOS
               Windows
             AIX
 Ubuntu
                (2011)
            HP-UX
 Debian
  SuSE
    OpenBSD
Puppet Enterprise
What it is:
•   Puppet and related components packaged and
    integrated in one install:
     •   Puppet
     •   Puppet Master
     •   Dashboard
     •   Facter
     •   Ruby
     •   Apache
     •   Passenger, etc.
Puppet Enterprise
•   Fully QA’d stack of Puppet and dependencies
•   Simplified installation
•   Ease of maintenance
•   Pre-configured for scalability and performance
•   Predictable enhancement delivery
•   Enhanced enterprise class Support
Puppet Enterprise
What you can expect in the future:
•   Pre-loaded set of commonly used modules
•   Direct integration with public module-forge
•   Support for additional platforms
•   Integration with MCollective
MCollective adds
                orchestration
Command                                                                   MCollective sequences
   Line          Web            Puppet!                                   actions based on data
Interface      interface!      Dashboard!                                 in Puppet!
  (CLI)!
                                                             Scenario 1 (Complete Process)!
                                                             !
                                                             Step 1: Remove server group 3 from load balancers!
                                                             Step 2: Upgrade server on group 3!
                                                             Step 3.Verify monitoring status of group 3!
                Puppet!                       MCollective!   Step 4: Put group 3 back in load balancers!




                                                             Scenario 2 (Across Server Groups)!
                                                             !
1!   2!   3!   1!   2!    3!   1!   2!   3!                  Step 1: Prevent Puppet runs for machines of type 5!
                                                             Step 2: Restart Apache on all machines of type 2!
                                                             Step 3: Update machines of type 4 in batches of 50
Datacenter!    Datacenter!     Datacenter!                   every 2 hours!
                                                             Step 4: Schedule mail delivery of type 4 in batches of
                                                             50 every 2 hours!
4!   5!   6!   4!   5!    6!   4!   5!   6!
Puppet is Pervasive
  Web       Entertainment   Technology




Financial
                             Defense
How Puppet Works

                                                                                              1    Define: !"#$%&'(()#*+%,)-./0/#"1)%
                                                                                             %      ./23'/3)%45'%,)+"32%/%30/($%56%
                                                                                             0)./#"52+$"(+%7)#8))2%0)+5'0-)+%8"#$"2%
                                                                                             0)'+/7.)%95,'.)+:%;$)+)%95,'.)+%,)6"2)%
                                                                                             45'0%"260/+#0'-#'0)%"2%"#+%,)+"0),%+#/#):

                                                                                        JB
                                                                               B   D@
                                                                            HI
                                                                       %E
                                                                  CB


                                                             B@
                                                        ED
                                                       %AG
                                                 G>
                                              B%@
                                          A ; B D @;




%4   Report: &'(()#%>/+$75/0,%0)(50#+%                                                                                      2    Simulate:%!"#$%#$"+%0)+5'0-)%
%    #0/-?%0)./#"52+$"(+%7)#8))2%                                                                                          %      30/($<%&'(()#%"+%'2"=')%"2%"#+%
-59(52)2#+%/2,%/..%-$/23)+<%/..58"23%                                                                                      /7"."#4%#5%+"9'./#)%,)(.549)2#+<%)2/7."23%
45'%#5%?))(%'(%8"#$%+)-'0"#4%/2,%                                                                                          45'%#5%#)+#%-$/23)+%8"#$5'#%,"+0'(#"52%
-59(."/2-)%9/2,/#)+:%@2,%8"#$%#$)%                                                                                         #5%45'0%"260/+#0'-#'0):
5()2%@&A%45'%-/2%"2#)30/#)%&'(()#%8"#$%
#$"0,%(/0#4%952"#50"23%#55.+:




                                EFDDBG;
                                                                                             %3    Enforce:%&'(()#%-59(/0)+%45'0%
                                C;@;B                                                        %     +4+#)9%#5%#$)%,)+"0),%+#/#)%/+%45'%
                                                                                             ,)6"2)%"#<%/2,%/'#59/#"-/..4%)2650-)+%"#%
                                                                       >BCADB>
                                                                       C;@;B                 #5%#$)%,)+"0),%+#/#)%)2+'0"23%45'0%+4+#)9%
                                                                                             "+%"2%-59(."/2-):
Use Puppet to create composable configurations
Modules   and manage the enterprise infrastructure

                                                                        1    Define Your Resources in Modules.
                                                                       !      "#$%!&'(()$*!+,'!-).#/)!+,'0!1,-'2)3!4+!/,-)!
            9GHGAG7D    "DA!7DEFDE      G&&!7DEFDE         7D?MEJH =   52633#.#56$#,/3*!3'5%!63!")4!7)08)0!,0!96$6463)*!622,:#/;!
                                                                       +,'!$,!-).#/)!0)26$#,/3%#(3!4)$:))/!0)3,'05)3!6/-!
                                                                       5,/.#;'0)!$%,'36/-3!,.!3)08)03!6$!,/5)<!
                Via                          Custom                          Assign resource relationships automatically.!
          Puppet Dashboard               External Source
                                            (CMDB, LDAP, etc.)
                                                                       !
                                                                        2
                                                                             =,'!56/!$%)/!633#;/!6/-!-)(2,+!5,/.#;'06$#,/3!
                                                                       8#6!&'(()$!963%4,60-*!,0!:#$%!+,'0!,:/!5'3$,1#>)-!
                                                                       ?@9A!$,,23<
          "DA!7DEFDE7     9GHGAG7D!7DEFDE7      G&&IJ?GHJKL!7DEFDE7




             LK9D               LK9D                    LK9D
                                                                        3    Reusable, composable configurations. !
                                                                       !    "#$%!&'(()$!+,'!56/!0)B'3)!1,-'2)3!650,33!1'2$#(2)!
                                                                       /,-)3*!#/!:%6$)8)0!5,14#/6$#,/!+,'!/))-*!0)-'5#/;!
                                                                       0)()$#$#8)!$63C3!6/-!)2#1#/6$#/;!)00,0B(0,/)!350#($3<!




             LK9D               LK9D                    LK9D                                    Multi Node
Puppet Assigns and Maintains
   a Node’s Desired Role
Managing Configuration Drift
How Puppet Manages Data Flow
         for Individual Nodes

                                                Node




                     1   Facts
                         !"#$%&'#$(#%'($
                         %&)*+,-.#'$'+/+$
                         +0&1/$-/(#,2$/&$/"#$
                         3144#/$5+(/#)6
                                                  SSL secure               2    Catalog
                                                                                3144#/$1(#($/"#$7+8/($/&
                                                  encryption                    8&*4-,#$+$9+/+,&:$/"+/
                                                  on all data                   (4#8-2-#($"&;$/"#$%&'#
                                                  transport                     ("&1,'$0#$8&%2-:1)#'6
Report     3
!"#$%&'#$
)#4&)/($0+8=$
/&$3144#/$
-%'-8+/-%:$/"#$
8&%2-:1)+/-&%$-($
8&*4,#/#>$;"-8"$
-($?-(-0,#$-%$/"#$                              Puppet
3144#/$@+("0&+)'6                               Master             4                    Report Collector
                                                                                        A3144#/$&)$B)'$4+)/<$/&&,C
                                                                Report
                                                                8+%$+,(&$(#%'$'+/+$
                                                                /&$/"-)'$4+)/<$/&&,(6
Facts

 Automatically
Maintained Asset
   Inventory
domain => local
facterversion => 1.5.8
fqdn => sliver.local
hardwaremodel => i386
hostname => sliver
interfaces => lo0,gif0,stf0,en0,en1,fw0,vmnet1,vboxnet0
ipaddress => 192.168.174.1
ipaddress_lo0 => 127.0.0.1
ipaddress_vmnet1 => 192.168.174.1
kernel => Darwin
kernelmajversion => 10.6
kernelrelease => 10.6.0
macosx_productname => Mac OS X
macosx_productversion => 10.6.6
netmask => 255.255.255.0
netmask_lo0 => 255.0.0.0
netmask_vmnet1 => 255.255.255.0
network_lo0 => 127.0.0.0
network_vmnet1 => 192.168.174.0
operatingsystem => Darwin
operatingsystemrelease => 10.6.0
path => /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/
usr/X11/bin:/Users/gh/bin:/Users/gh/.gem/ruby/1.8/bin/
ps => ps auxwww
puppetversion => 2.6.4
rubysitedir => /opt/local/lib/ruby/site_ruby/1.8
timezone => PST
uptime => 1 day
rubyversion => 1.8.7
sp_bus_speed => 1.07 GHz
Custom Facts
How Puppet Manages Data Flow
         for Individual Nodes

                                                Node




                     1   Facts
                         !"#$%&'#$(#%'($
                         %&)*+,-.#'$'+/+$
                         +0&1/$-/(#,2$/&$/"#$
                         3144#/$5+(/#)6
                                                  SSL secure               2    Catalog
                                                                                3144#/$1(#($/"#$7+8/($/&
                                                  encryption                    8&*4-,#$+$9+/+,&:$/"+/
                                                  on all data                   (4#8-2-#($"&;$/"#$%&'#
                                                  transport                     ("&1,'$0#$8&%2-:1)#'6
Report     3
!"#$%&'#$
)#4&)/($0+8=$
/&$3144#/$
-%'-8+/-%:$/"#$
8&%2-:1)+/-&%$-($
8&*4,#/#>$;"-8"$
-($?-(-0,#$-%$/"#$                              Puppet
3144#/$@+("0&+)'6                               Master             4                    Report Collector
                                                                                        A3144#/$&)$B)'$4+)/<$/&&,C
                                                                Report
                                                                8+%$+,(&$(#%'$'+/+$
                                                                /&$/"-)'$4+)/<$/&&,(6
Catalog

• Automatically
             maintained
 comprehensive resource list
• Easilyvalidated against
 compliance requirements prior
 to client configuration
How Puppet Manages Data Flow
         for Individual Nodes

                                                Node




                     1   Facts
                         !"#$%&'#$(#%'($
                         %&)*+,-.#'$'+/+$
                         +0&1/$-/(#,2$/&$/"#$
                         3144#/$5+(/#)6
                                                  SSL secure               2    Catalog
                                                                                3144#/$1(#($/"#$7+8/($/&
                                                  encryption                    8&*4-,#$+$9+/+,&:$/"+/
                                                  on all data                   (4#8-2-#($"&;$/"#$%&'#
                                                  transport                     ("&1,'$0#$8&%2-:1)#'6
Report     3
!"#$%&'#$
)#4&)/($0+8=$
/&$3144#/$
-%'-8+/-%:$/"#$
8&%2-:1)+/-&%$-($
8&*4,#/#>$;"-8"$
-($?-(-0,#$-%$/"#$                              Puppet
3144#/$@+("0&+)'6                               Master             4                    Report Collector
                                                                                        A3144#/$&)$B)'$4+)/<$/&&,C
                                                                Report
                                                                8+%$+,(&$(#%'$'+/+$
                                                                /&$/"-)'$4+)/<$/&&,(6
Report

• Comprehensive report of every
 change ever made, correlated to every
 resource being managed
• Easily
       validated against compliance
 requirements after reach run
Report

•http
•log
•rrdgraph
•store
•tagmail
Report
The one-off myth



                     Your systems are not beautiful
                              snowflakes


photo from http://beesknees67.deviantart.com/
The one-off myth

•   Only temporary
The one-off myth

•   Only temporary

•   Replicas for pre-production environments
The one-off myth

•   Only temporary

•   Replicas for pre-production environments

•   Disaster recovery
Why?
Why?

• reduce   entropy
Why?

• reduce   entropy
• disaster   recovery
Why?

• reduce   entropy
• disaster   recovery
• change   management
Why?

• reduce   entropy
• disaster   recovery
• change   management
• infrastructure   as code
What not How
What not how
Example Resource Types
•   cron
•   exec
•   file
•   group
•   host
•   zfs
•   mount
•   package
•   service
•   sshkey
Package-File-Service
File Serving
Templates
Templates - Advanced
Syntax Checking
Storeconfigs
Ability to pass data between nodes, via
a database acting as a proxy
Storeconfigs
Ability to pass data between nodes, via
a database acting as a proxy

 •   MySQL
 •   SQLite3
 •   PostgreSQL
 •   Oracle
Storeconfigs
External Node
       Classifier

•Puppet Dashboard

•Your own CMDB
External Node
        Classifier

A script that takes $certname as
an argument and outputs YAML to
STDOUT
External Node
  Classifier
External Node
  Classifier
Expanded Introduction
     to Puppet
               2011-04-02
             Texas Linux Fest
                Austin, TX

              Garrett Honeycutt
        Professional Services Consultant
           garrett@puppetlabs.com
    http://linkedin.com/in/garretthoneycutt

More Related Content

More from garrett honeycutt

(2016-06-11) Packer: Make Multi-Platform Images
(2016-06-11) Packer: Make Multi-Platform Images(2016-06-11) Packer: Make Multi-Platform Images
(2016-06-11) Packer: Make Multi-Platform Imagesgarrett honeycutt
 
20150613 self-puppet v4-avoiding_dragons
20150613 self-puppet v4-avoiding_dragons20150613 self-puppet v4-avoiding_dragons
20150613 self-puppet v4-avoiding_dragonsgarrett honeycutt
 
20150314 - Functional Testing for Configuration Management @ Cascadia IT Con...
20150314  - Functional Testing for Configuration Management @ Cascadia IT Con...20150314  - Functional Testing for Configuration Management @ Cascadia IT Con...
20150314 - Functional Testing for Configuration Management @ Cascadia IT Con...garrett honeycutt
 
2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA142014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14garrett honeycutt
 
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattlegarrett honeycutt
 
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicagogarrett honeycutt
 
20140406 loa days-tdd-with_puppet_tutorial
20140406 loa days-tdd-with_puppet_tutorial20140406 loa days-tdd-with_puppet_tutorial
20140406 loa days-tdd-with_puppet_tutorialgarrett honeycutt
 
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07garrett honeycutt
 
20130407 load puppevtv3-and_hiera
20130407 load puppevtv3-and_hiera20130407 load puppevtv3-and_hiera
20130407 load puppevtv3-and_hieragarrett honeycutt
 
20120331 - Expanded Intro to Puppet for LOAD
20120331 - Expanded Intro to Puppet for LOAD20120331 - Expanded Intro to Puppet for LOAD
20120331 - Expanded Intro to Puppet for LOADgarrett honeycutt
 
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...garrett honeycutt
 
20110611 expanded intro-to_puppet_for_self
20110611 expanded intro-to_puppet_for_self20110611 expanded intro-to_puppet_for_self
20110611 expanded intro-to_puppet_for_selfgarrett honeycutt
 
20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnwgarrett honeycutt
 
Fighting Spam With A Perimeter Mail System 20071108 Sasag
Fighting Spam With A Perimeter Mail System 20071108 SasagFighting Spam With A Perimeter Mail System 20071108 Sasag
Fighting Spam With A Perimeter Mail System 20071108 Sasaggarrett honeycutt
 
20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasag20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasaggarrett honeycutt
 

More from garrett honeycutt (15)

(2016-06-11) Packer: Make Multi-Platform Images
(2016-06-11) Packer: Make Multi-Platform Images(2016-06-11) Packer: Make Multi-Platform Images
(2016-06-11) Packer: Make Multi-Platform Images
 
20150613 self-puppet v4-avoiding_dragons
20150613 self-puppet v4-avoiding_dragons20150613 self-puppet v4-avoiding_dragons
20150613 self-puppet v4-avoiding_dragons
 
20150314 - Functional Testing for Configuration Management @ Cascadia IT Con...
20150314  - Functional Testing for Configuration Management @ Cascadia IT Con...20150314  - Functional Testing for Configuration Management @ Cascadia IT Con...
20150314 - Functional Testing for Configuration Management @ Cascadia IT Con...
 
2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA142014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
 
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
 
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago
 
20140406 loa days-tdd-with_puppet_tutorial
20140406 loa days-tdd-with_puppet_tutorial20140406 loa days-tdd-with_puppet_tutorial
20140406 loa days-tdd-with_puppet_tutorial
 
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07
 
20130407 load puppevtv3-and_hiera
20130407 load puppevtv3-and_hiera20130407 load puppevtv3-and_hiera
20130407 load puppevtv3-and_hiera
 
20120331 - Expanded Intro to Puppet for LOAD
20120331 - Expanded Intro to Puppet for LOAD20120331 - Expanded Intro to Puppet for LOAD
20120331 - Expanded Intro to Puppet for LOAD
 
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
 
20110611 expanded intro-to_puppet_for_self
20110611 expanded intro-to_puppet_for_self20110611 expanded intro-to_puppet_for_self
20110611 expanded intro-to_puppet_for_self
 
20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw
 
Fighting Spam With A Perimeter Mail System 20071108 Sasag
Fighting Spam With A Perimeter Mail System 20071108 SasagFighting Spam With A Perimeter Mail System 20071108 Sasag
Fighting Spam With A Perimeter Mail System 20071108 Sasag
 
20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasag20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasag
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

20110402 expanded intro-to_puppet_texas_linuxfest

  • 1. Expanded Introduction to Puppet 2011-04-02 Texas Linux Fest Austin, TX Garrett Honeycutt Professional Services Consultant garrett@puppetlabs.com http://linkedin.com/in/garretthoneycutt
  • 2. Puppet Open Source Ecosystem Puppet Distribution
 Bundled with major OS ! 3,000 person mailing list
 2,000 messages a month
 Puppet Community
 300 people at all times in IRC Active participation ! (#puppet on freenode.net) 100+ people 100+ modules Puppet Contributors
 contributing to contributed to Framework documentation Puppet Module enhancements and code Forge !
  • 3. Operating System Support Linux Unix Other Red Hat Solaris Fedora OS X CentOS Windows AIX Ubuntu (2011) HP-UX Debian SuSE OpenBSD
  • 4. Puppet Enterprise What it is: • Puppet and related components packaged and integrated in one install: • Puppet • Puppet Master • Dashboard • Facter • Ruby • Apache • Passenger, etc.
  • 5. Puppet Enterprise • Fully QA’d stack of Puppet and dependencies • Simplified installation • Ease of maintenance • Pre-configured for scalability and performance • Predictable enhancement delivery • Enhanced enterprise class Support
  • 6. Puppet Enterprise What you can expect in the future: • Pre-loaded set of commonly used modules • Direct integration with public module-forge • Support for additional platforms • Integration with MCollective
  • 7. MCollective adds orchestration Command MCollective sequences Line Web Puppet! actions based on data Interface interface! Dashboard! in Puppet! (CLI)! Scenario 1 (Complete Process)! ! Step 1: Remove server group 3 from load balancers! Step 2: Upgrade server on group 3! Step 3.Verify monitoring status of group 3! Puppet! MCollective! Step 4: Put group 3 back in load balancers! Scenario 2 (Across Server Groups)! ! 1! 2! 3! 1! 2! 3! 1! 2! 3! Step 1: Prevent Puppet runs for machines of type 5! Step 2: Restart Apache on all machines of type 2! Step 3: Update machines of type 4 in batches of 50 Datacenter! Datacenter! Datacenter! every 2 hours! Step 4: Schedule mail delivery of type 4 in batches of 50 every 2 hours! 4! 5! 6! 4! 5! 6! 4! 5! 6!
  • 8. Puppet is Pervasive Web Entertainment Technology Financial Defense
  • 9. How Puppet Works 1 Define: !"#$%&'(()#*+%,)-./0/#"1)% % ./23'/3)%45'%,)+"32%/%30/($%56% 0)./#"52+$"(+%7)#8))2%0)+5'0-)+%8"#$"2% 0)'+/7.)%95,'.)+:%;$)+)%95,'.)+%,)6"2)% 45'0%"260/+#0'-#'0)%"2%"#+%,)+"0),%+#/#): JB B D@ HI %E CB B@ ED %AG G> B%@ A ; B D @; %4 Report: &'(()#%>/+$75/0,%0)(50#+% 2 Simulate:%!"#$%#$"+%0)+5'0-)% % #0/-?%0)./#"52+$"(+%7)#8))2% % 30/($<%&'(()#%"+%'2"=')%"2%"#+% -59(52)2#+%/2,%/..%-$/23)+<%/..58"23% /7"."#4%#5%+"9'./#)%,)(.549)2#+<%)2/7."23% 45'%#5%?))(%'(%8"#$%+)-'0"#4%/2,% 45'%#5%#)+#%-$/23)+%8"#$5'#%,"+0'(#"52% -59(."/2-)%9/2,/#)+:%@2,%8"#$%#$)% #5%45'0%"260/+#0'-#'0): 5()2%@&A%45'%-/2%"2#)30/#)%&'(()#%8"#$% #$"0,%(/0#4%952"#50"23%#55.+: EFDDBG; %3 Enforce:%&'(()#%-59(/0)+%45'0% C;@;B % +4+#)9%#5%#$)%,)+"0),%+#/#)%/+%45'% ,)6"2)%"#<%/2,%/'#59/#"-/..4%)2650-)+%"#% >BCADB> C;@;B #5%#$)%,)+"0),%+#/#)%)2+'0"23%45'0%+4+#)9% "+%"2%-59(."/2-):
  • 10. Use Puppet to create composable configurations Modules and manage the enterprise infrastructure 1 Define Your Resources in Modules. ! "#$%!&'(()$*!+,'!-).#/)!+,'0!1,-'2)3!4+!/,-)! 9GHGAG7D "DA!7DEFDE G&&!7DEFDE 7D?MEJH = 52633#.#56$#,/3*!3'5%!63!")4!7)08)0!,0!96$6463)*!622,:#/;! +,'!$,!-).#/)!0)26$#,/3%#(3!4)$:))/!0)3,'05)3!6/-! 5,/.#;'0)!$%,'36/-3!,.!3)08)03!6$!,/5)<! Via Custom Assign resource relationships automatically.! Puppet Dashboard External Source (CMDB, LDAP, etc.) ! 2 =,'!56/!$%)/!633#;/!6/-!-)(2,+!5,/.#;'06$#,/3! 8#6!&'(()$!963%4,60-*!,0!:#$%!+,'0!,:/!5'3$,1#>)-! ?@9A!$,,23< "DA!7DEFDE7 9GHGAG7D!7DEFDE7 G&&IJ?GHJKL!7DEFDE7 LK9D LK9D LK9D 3 Reusable, composable configurations. ! ! "#$%!&'(()$!+,'!56/!0)B'3)!1,-'2)3!650,33!1'2$#(2)! /,-)3*!#/!:%6$)8)0!5,14#/6$#,/!+,'!/))-*!0)-'5#/;! 0)()$#$#8)!$63C3!6/-!)2#1#/6$#/;!)00,0B(0,/)!350#($3<! LK9D LK9D LK9D Multi Node
  • 11. Puppet Assigns and Maintains a Node’s Desired Role
  • 13. How Puppet Manages Data Flow for Individual Nodes Node 1 Facts !"#$%&'#$(#%'($ %&)*+,-.#'$'+/+$ +0&1/$-/(#,2$/&$/"#$ 3144#/$5+(/#)6 SSL secure 2 Catalog 3144#/$1(#($/"#$7+8/($/& encryption 8&*4-,#$+$9+/+,&:$/"+/ on all data (4#8-2-#($"&;$/"#$%&'# transport ("&1,'$0#$8&%2-:1)#'6 Report 3 !"#$%&'#$ )#4&)/($0+8=$ /&$3144#/$ -%'-8+/-%:$/"#$ 8&%2-:1)+/-&%$-($ 8&*4,#/#>$;"-8"$ -($?-(-0,#$-%$/"#$ Puppet 3144#/$@+("0&+)'6 Master 4 Report Collector A3144#/$&)$B)'$4+)/<$/&&,C Report 8+%$+,(&$(#%'$'+/+$ /&$/"-)'$4+)/<$/&&,(6
  • 15. domain => local facterversion => 1.5.8 fqdn => sliver.local hardwaremodel => i386 hostname => sliver interfaces => lo0,gif0,stf0,en0,en1,fw0,vmnet1,vboxnet0 ipaddress => 192.168.174.1 ipaddress_lo0 => 127.0.0.1 ipaddress_vmnet1 => 192.168.174.1 kernel => Darwin kernelmajversion => 10.6 kernelrelease => 10.6.0 macosx_productname => Mac OS X macosx_productversion => 10.6.6 netmask => 255.255.255.0 netmask_lo0 => 255.0.0.0 netmask_vmnet1 => 255.255.255.0 network_lo0 => 127.0.0.0 network_vmnet1 => 192.168.174.0 operatingsystem => Darwin operatingsystemrelease => 10.6.0 path => /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/ usr/X11/bin:/Users/gh/bin:/Users/gh/.gem/ruby/1.8/bin/ ps => ps auxwww puppetversion => 2.6.4 rubysitedir => /opt/local/lib/ruby/site_ruby/1.8 timezone => PST uptime => 1 day rubyversion => 1.8.7 sp_bus_speed => 1.07 GHz
  • 17. How Puppet Manages Data Flow for Individual Nodes Node 1 Facts !"#$%&'#$(#%'($ %&)*+,-.#'$'+/+$ +0&1/$-/(#,2$/&$/"#$ 3144#/$5+(/#)6 SSL secure 2 Catalog 3144#/$1(#($/"#$7+8/($/& encryption 8&*4-,#$+$9+/+,&:$/"+/ on all data (4#8-2-#($"&;$/"#$%&'# transport ("&1,'$0#$8&%2-:1)#'6 Report 3 !"#$%&'#$ )#4&)/($0+8=$ /&$3144#/$ -%'-8+/-%:$/"#$ 8&%2-:1)+/-&%$-($ 8&*4,#/#>$;"-8"$ -($?-(-0,#$-%$/"#$ Puppet 3144#/$@+("0&+)'6 Master 4 Report Collector A3144#/$&)$B)'$4+)/<$/&&,C Report 8+%$+,(&$(#%'$'+/+$ /&$/"-)'$4+)/<$/&&,(6
  • 18. Catalog • Automatically maintained comprehensive resource list • Easilyvalidated against compliance requirements prior to client configuration
  • 19. How Puppet Manages Data Flow for Individual Nodes Node 1 Facts !"#$%&'#$(#%'($ %&)*+,-.#'$'+/+$ +0&1/$-/(#,2$/&$/"#$ 3144#/$5+(/#)6 SSL secure 2 Catalog 3144#/$1(#($/"#$7+8/($/& encryption 8&*4-,#$+$9+/+,&:$/"+/ on all data (4#8-2-#($"&;$/"#$%&'# transport ("&1,'$0#$8&%2-:1)#'6 Report 3 !"#$%&'#$ )#4&)/($0+8=$ /&$3144#/$ -%'-8+/-%:$/"#$ 8&%2-:1)+/-&%$-($ 8&*4,#/#>$;"-8"$ -($?-(-0,#$-%$/"#$ Puppet 3144#/$@+("0&+)'6 Master 4 Report Collector A3144#/$&)$B)'$4+)/<$/&&,C Report 8+%$+,(&$(#%'$'+/+$ /&$/"-)'$4+)/<$/&&,(6
  • 20. Report • Comprehensive report of every change ever made, correlated to every resource being managed • Easily validated against compliance requirements after reach run
  • 23. The one-off myth Your systems are not beautiful snowflakes photo from http://beesknees67.deviantart.com/
  • 24. The one-off myth • Only temporary
  • 25. The one-off myth • Only temporary • Replicas for pre-production environments
  • 26. The one-off myth • Only temporary • Replicas for pre-production environments • Disaster recovery
  • 27. Why?
  • 28. Why? • reduce entropy
  • 29. Why? • reduce entropy • disaster recovery
  • 30. Why? • reduce entropy • disaster recovery • change management
  • 31. Why? • reduce entropy • disaster recovery • change management • infrastructure as code
  • 34. Example Resource Types • cron • exec • file • group • host • zfs • mount • package • service • sshkey
  • 40. Storeconfigs Ability to pass data between nodes, via a database acting as a proxy
  • 41. Storeconfigs Ability to pass data between nodes, via a database acting as a proxy • MySQL • SQLite3 • PostgreSQL • Oracle
  • 43. External Node Classifier •Puppet Dashboard •Your own CMDB
  • 44. External Node Classifier A script that takes $certname as an argument and outputs YAML to STDOUT
  • 45. External Node Classifier
  • 46. External Node Classifier
  • 47. Expanded Introduction to Puppet 2011-04-02 Texas Linux Fest Austin, TX Garrett Honeycutt Professional Services Consultant garrett@puppetlabs.com http://linkedin.com/in/garretthoneycutt