SlideShare a Scribd company logo
1 of 46
Download to read offline
Expanded Introduction
       to Puppet
   for DevOps Days
               2011-08-28
             Bangalore, India

              Garrett Honeycutt
        Professional Services Consultant
           garrett@puppetlabs.com
    http://linkedin.com/in/garretthoneycutt
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
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
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
•store
•tagmail
Report
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
   for DevOps Days
               2011-08-28
             Bangalore, India

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

More Related Content

More from garrett 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_tutorial
garrett honeycutt
 
20130407 load puppevtv3-and_hiera
20130407 load puppevtv3-and_hiera20130407 load puppevtv3-and_hiera
20130407 load puppevtv3-and_hiera
garrett 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 LOAD
garrett 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 Sasag
garrett honeycutt
 
20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasag20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasag
garrett honeycutt
 

More from garrett honeycutt (11)

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

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

20110828 expanded intro-to_puppet_for_dev_ops_days_bangalore

  • 1. Expanded Introduction to Puppet for DevOps Days 2011-08-28 Bangalore, India Garrett Honeycutt Professional Services Consultant garrett@puppetlabs.com http://linkedin.com/in/garretthoneycutt
  • 2. The one-off myth Your systems are not beautiful snowflakes photo from http://beesknees67.deviantart.com/
  • 3. The one-off myth • Only temporary
  • 4. The one-off myth • Only temporary • Replicas for pre-production environments
  • 5. The one-off myth • Only temporary • Replicas for pre-production environments • Disaster recovery
  • 7. Why? • reduce entropy
  • 8. Why? • reduce entropy • disaster recovery
  • 9. Why? • reduce entropy • disaster recovery • change management
  • 10. Why? • reduce entropy • disaster recovery • change management • infrastructure as code
  • 11. 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 !
  • 12. Operating System Support Linux Unix Other Red Hat Solaris Fedora OS X CentOS Windows AIX Ubuntu (2011) HP-UX Debian SuSE OpenBSD
  • 13. Puppet Enterprise What it is: • Puppet and related components packaged and integrated in one install: • Puppet • Puppet Master • Dashboard • Facter • Ruby • Apache • Passenger, etc.
  • 14. 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
  • 15. 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
  • 16. Puppet is Pervasive Web Entertainment Technology Financial Defense
  • 17. 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-):
  • 18. 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
  • 19. Puppet Assigns and Maintains a Node’s Desired Role
  • 21. 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
  • 23. 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
  • 25. 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
  • 26. Catalog • Automatically maintained comprehensive resource list • Easilyvalidated against compliance requirements prior to client configuration
  • 27. 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
  • 28. Report • Comprehensive report of every change ever made, correlated to every resource being managed • Easily validated against compliance requirements after reach run
  • 33. Example Resource Types • cron • exec • file • group • host • zfs • mount • package • service • sshkey
  • 39. Storeconfigs Ability to pass data between nodes, via a database acting as a proxy
  • 40. Storeconfigs Ability to pass data between nodes, via a database acting as a proxy • MySQL • SQLite3 • PostgreSQL • Oracle
  • 42. External Node Classifier •Puppet Dashboard •Your own CMDB
  • 43. External Node Classifier A script that takes $certname as an argument and outputs YAML to STDOUT
  • 44. External Node Classifier
  • 45. External Node Classifier
  • 46. Expanded Introduction to Puppet for DevOps Days 2011-08-28 Bangalore, India Garrett Honeycutt Professional Services Consultant garrett@puppetlabs.com http://linkedin.com/in/garretthoneycutt