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

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 (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

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
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
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
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
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
 
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
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
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
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 

Recently uploaded (20)

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
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
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
 
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
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
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
 
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
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
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
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 

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