SlideShare a Scribd company logo
Managing Puppet using
    MCollective
     Puppet Camp Ghent
         R.I.Pienaar
Who am I?
• Puppet user since 0.22.x
• Architect of MCollective
• Author of Extlookup and Hiera
• Developer at Puppet Labs London
• Blog at http://devco.net
• Tweets at @ripienaar
• Volcane on IRC
          R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
The Problem?
• Puppet needs management just like other
  software
• Enabling, disabling, ad-hoc runs, custom
  environments etc
• The Puppet Master is a finite resource that
  needs protection
• Orchestrated deploys
             R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
MCollective Puppet Agent
 package{[“mcollective-puppet-agent”,
          “mcollective-puppet-client”]:
               ensure => present
 }



Available on yum.puppetlabs.com and apt.puppetlabs.com

                http://srt.ly/mcpuppet


                 R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Obtaining The Agent
       Status



    R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Obtaining Statuses
$ mco puppet status

* [ ============================================================> ] 11 / 11

        node8.example.net: Currently stopped; last completed run 14 minutes 16 seconds ago
        ....

Summary of Applying:

   false = 11

Summary of Daemon Running:
unix text here
                                                                     Per node status
   stopped = 11

Summary of Enabled:


                                                  Estate wide summary
   enabled = 10
  disabled = 1

Summary of Idling:

   false = 11


Finished processing 11 / 11 hosts in 72.05 ms




                         R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Obtaining Statuses
$ mco puppet count

Total Puppet nodes: 11

          Nodes currently enabled: 10
         Nodes currently disabled: 1

Nodes currently doing puppet runs: 5
          Nodes currently stopped: 6

       Nodes with daemons started: 10
    Nodes without daemons started: 1
       Daemons started but idling: 6




                     R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Obtaining Statuses
$ mco rpc puppet last_run_summary

* [ ============================================================> ] 28 / 28

   .
   .
   .

Summary of Config Retrieval Time:

   Average: 20.13

Summary of Total Resources:

   Average: 435

Summary of Total Time:

   Average: 39.33


Finished processing 28 / 28 hosts in 311.23 ms




                         R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Running Puppet



  R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Doing Basic Runs
$ mco puppet runonce

 * [ ============================================================> ] 11 / 11


node9.example.net                        Request Aborted
   Puppet is disabled: 'machine under maintenance'


Finished processing 11 / 11 hosts in 2593.85 ms

$ mco puppet count

Total Puppet nodes: 11
                                           Puppet 3 disable message
          Nodes currently enabled: 10
         Nodes currently disabled: 1

Nodes currently doing puppet runs: 2
          Nodes currently stopped: 9

       Nodes with daemons started: 10
    Nodes without daemons started: 1
       Daemons started but idling: 8



Run with default configured splay and splaylimit

                       R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Doing Basic Runs

$ mco puppet runonce -f

 * [ ============================================================> ] 11 / 11


node9.example.net                        Request Aborted
   Puppet is disabled: 'machine under maintenance'


Finished processing 11 / 11 hosts in 2661.99 ms




Run with no splay, still subject to enable/disable



                    R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Doing Basic Runs

$ mco puppet runonce --splay --splaylimit 120

* [ ============================================================> ] 11 / 11


node9.example.net                        Request Aborted
   Puppet is disabled: 'machine under maintenance'


Finished processing 11 / 11 hosts in 2661.99 ms




     Force splay and set a custom splay limit



                    R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Tags and Environment

$ mco puppet runonce --tag webserver --tag syslog --environment development

* [ ============================================================> ] 11 / 11


node9.example.net                        Request Aborted
   Puppet is disabled: 'machine under maintenance'


Finished processing 11 / 11 hosts in 2661.99 ms




Selects 2 tags in a specific Puppet Environment



                    R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Doing noop Runs

$ mco puppet runonce --noop

* [ ============================================================> ] 11 / 11


node9.example.net                        Request Aborted
   Puppet is disabled: 'machine under maintenance'


Finished processing 11 / 11 hosts in 2661.99 ms



        Do a noop run, gathers reports and
                audit information


                    R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Doing no-noop Runs

$ mco puppet runonce --tag webserver --no-noop

* [ ============================================================> ] 11 / 11


node9.example.net                        Request Aborted
   Puppet is disabled: 'machine under maintenance'


Finished processing 11 / 11 hosts in 2661.99 ms



          When puppet.conf has noop=true,
           do an actual run on demand


                    R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Choosing a Master

$ mco puppet runonce --server secops.example.net:8134 --tag compliance

* [ ============================================================> ] 11 / 11


node9.example.net                        Request Aborted
   Puppet is disabled: 'machine under maintenance'


Finished processing 11 / 11 hosts in 2661.99 ms



        Does a single run against a different
                  Puppet Master


                    R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Preventing Puppet Runs



      R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
The Big Red Button
$ mco puppet disable “we f’d up, stop the train!”

* [ ============================================================> ] 11 / 11


node9.example.net                        Request Aborted
   Could not disable Puppet: Already disabled


Summary of Enabled:

   disabled = 11


Finished processing 11 / 11 hosts in 90.06 ms




  Disables Puppet, does not change currently
            disabled nodes reasons

                      R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
The Big Green Button
$ mco puppet enable -S ‘puppet().disable_message=/stop the train/’

* [ ============================================================> ] 10 / 10


Summary of Enabled:

   enabled = 10


Finished processing 10 / 10 hosts in 90.06 ms




          Enables all disabled Puppet nodes



                      R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Operating On Groups
     Of Hosts


     R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Selective Runs
      Facter fact                                             Puppet Class

$ mco puppet runonce -W “cluster=a roles::webserver”

* [ ============================================================> ] 5 / 5



Finished processing 5 / 5 hosts in 90.06 ms




                  Run using a filter:
          all web servers with fact cluster=a



                    R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Selective Runs
                                                    Any Puppet resource

$ mco puppet runonce -S “resource(‘File[/srv/www]’).managed=true”

* [ ============================================================> ] 5 / 5



Finished processing 5 / 5 hosts in 90.06 ms




                Run using a filter:
         nodes where we manage /srv/www



                    R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Selective Runs
$ mco puppet runonce -S “resource().failed_resources>5 and resource().config_version=xyz”

* [ ============================================================> ] 5 / 5



Finished processing 5 / 5 hosts in 90.06 ms




                      Run using a filter:
             Most recent run config_version was xyz
                that had > 5 resource failures




                            R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Roll Out A Change Quickly
$ mco puppet runall 7
2013-01-19 20:58:59: Running all nodes with a concurrency of 7
2013-01-19 20:58:59: Discovering enabled Puppet nodes to manage
2013-01-19 20:59:02: Found 11 enabled nodes
2013-01-19 20:59:06: node3.example.net schedule status: Started a background Puppet run
2013-01-19 20:59:07: node1.example.net schedule status: Started a background Puppet run
2013-01-19 20:59:09: node4.example.net schedule status: Started a background Puppet run
2013-01-19 20:59:10: node6.example.net schedule status: Started a background Puppet run
2013-01-19 20:59:12: node0.example.net schedule status: Started a background Puppet run
2013-01-19 20:59:13: node5.example.net schedule status: Started a background Puppet run
2013-01-19 20:59:17: Currently 7 nodes applying the catalog; waiting for less than 7
2013-01-19 20:59:21: Currently 7 nodes applying the catalog; waiting for less than 7
2013-01-19 20:59:25: node9.example.net schedule status: Puppet is currently applying a catalog,
cannot run now
2013-01-19 20:59:29: node8.example.net schedule status: Started a background Puppet run
2013-01-19 20:59:33: Currently 7 nodes applying the catalog; waiting for less than 7
2013-01-19 20:59:38: node2.example.net schedule status: Started a background Puppet run
2013-01-19 20:59:41: Currently 7 nodes applying the catalog; waiting for less than 7
2013-01-19 20:59:46: middleware.example.net schedule status: Started a background Puppet run
2013-01-19 20:59:50: Currently 7 nodes applying the catalog; waiting for less than 7
2013-01-19 20:59:55: node7.example.net schedule status: Started a background Puppet run




         Runs all nodes with a maximum concurrency



                              R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Roll Out A Change Quickly


2013-01-19 20:58:59: Running all nodes with a concurrency of 7
2013-01-19 20:58:59: Discovering enabled Puppet nodes to manage
2013-01-19 20:59:02: Found 11 enabled nodes




          Does not attempt to manage disabled nodes




                              R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Roll Out A Change Quickly

2013-01-19   20:59:02:   Found 11 enabled nodes
2013-01-19   20:59:06:   node3.example.net schedule        status: Started a background Puppet run
2013-01-19   20:59:07:   node1.example.net schedule        status: Started a background Puppet run
2013-01-19   20:59:09:   node4.example.net schedule        status: Started a background Puppet run
2013-01-19   20:59:10:   node6.example.net schedule        status: Started a background Puppet run
2013-01-19   20:59:12:   node0.example.net schedule        status: Started a background Puppet run
2013-01-19   20:59:13:   node5.example.net schedule        status: Started a background Puppet run
2013-01-19   20:59:17:   Currently 7 nodes applying        the catalog; waiting for less than 7




         Starts the first 6 quickly but considers
    administrators doing 1other run at the same time




                                  R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Roll Out A Change Quickly

2013-01-19   20:59:17:   Currently 7 nodes applying the catalog; waiting for less than 7
2013-01-19   20:59:21:   Currently 7 nodes applying the catalog; waiting for less than 7
2013-01-19   20:59:25:   node9.example.net schedule status: Puppet is currently applying a catalog,
cannot run   now
2013-01-19   20:59:29:   node8.example.net schedule status: Started a background Puppet run




   node9 was being run by an administrator or normal
         schedule already, skipped to next node




                                  R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Roll Out A Change Quickly
2013-01-19   20:59:29:   node8.example.net schedule status: Started a background Puppet run
2013-01-19   20:59:33:   Currently 7 nodes applying the catalog; waiting for less than 7
2013-01-19   20:59:38:   node2.example.net schedule status: Started a background Puppet run
2013-01-19   20:59:41:   Currently 7 nodes applying the catalog; waiting for less than 7
2013-01-19   20:59:46:   middleware.example.net schedule status: Started a background Puppet run
2013-01-19   20:59:50:   Currently 7 nodes applying the catalog; waiting for less than 7
2013-01-19   20:59:55:   node7.example.net schedule status: Started a background Puppet run




         Regularly checks the concurrency and starts
                more nodes soon as possible.

                  Average node run time 34.39s, total
                           time 55 seconds



                                 R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Roll Out A Change Slowly
                                       Wait 5 minutes


$ mco puppet runonce --batch 5 --batch-sleep 300

* [ ============================================================> ] 11 / 11



Finished processing 11 / 11 hosts in 903686.29 ms




Does runonce in batches of 5, 5 minute sleep
   per batch. ^c after any batch to stop.

                    15 minute total run time.

                         R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Advanced Status And
Performance Metrics



    R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Performance Analysis
$ mco puppet summary

Summary statistics for 28 nodes:

                  Total resources: ▂▇▂▁▁▃▁▂▂▂▄▁▂▁▁▁▁▁▂▁                                min: 332.0   max: 695.0
            Out Of Sync resources: ▇▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁                                min: 0.0     max: 2.0
                Failed resources: ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁                                 min: 0.0     max: 0.0
               Changed resources: ▇▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁                                 min: 0.0     max: 2.0
 Config Retrieval time (seconds): ▆▇▅▄▁▃▃▁▁▁▃▁▁▄▂▁▁▁▁▁                                 min: 2.7     max: 57.1
         Total run-time (seconds): ▇▃▄▄▄▃▂▂▂▂▃▂▁▁▁▁▁▂▁▁                                min: 7.0     max: 125.1
    Time since last run (seconds): ▇▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂                                min: 10.0    max: 89.0k




              Distribution of various metrics.


                         R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Performance Analysis

Config Retrieval time (seconds): ▆▇▅▄▁▃▃▁▁▁▃▁▁▄▂▁▁▁▁▁                              min: 2.7   max: 57.1
     Total run-time (seconds): ▇▃▄▄▄▃▂▂▂▂▃▂▁▁▁▁▁▂▁▁                                min: 7.0   max: 125.1




              Distribution of various metrics.


                     R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Performance Analysis
$ mco plot resource config_retrieval_time

                     Information about Puppet managed resources
  Nodes
    8 ++----*-----+----------+-----------+----------+----------+----------++
      +       *       +              +            +           +     +               +
    7 ++     **                                                                    ++
      |      * *                                                                    |

                                           Slow machines
    6 ++     * *                                                                   ++
      |    * *                                                                      |
      |    * *                                                                      |
    5 ++ *       *                                                                 ++
      |    *     *                                                                  |
    4 ++ *       *                                                                 ++
      | *        *                                                                  |
    3 ++ *         *      *                                            *           ++
      | *          *    ** *                                          **            |
    2 ++*          ****     *                                         * *          ++
      |                       *                                     * *             |
      |                       *                                     *     *         |
    1 ++                        **************             ****** *       *     ** ++
      +               +              +         * +      **    +   *+        ***     +
    0 ++----------+----------+---------********-----+--*******-+----*-----++
      0               10             20           30          40    50              60
                                       Config Retrieval Time




          Distribution of config retrieval time.


                           R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Performance Analysis
$ mco find -S "resource().config_retrieval_time > 30"
dev3.example.net
dev4.example.net
dev7.example.net
dev6.example.net
dev8.example.net
dev9.example.net
dev10.example.net



   Find machines with config_retrieval_time over
         30 seconds - all the dev servers.



                R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Maintenance Windows
 and Access Control



     R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Puppet State As ACL
policy default deny
allow   cert=manager      enable disable                         *                       *
allow   cert=sysadmin     runonce status                         *                       *
allow   cert=developer    *                                      environment=development *




        Only cert=manager can enable and disable
        the Puppet Agent indicating maintenance
                       periods




                    R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Puppet State As ACL
policy default deny
allow   cert=manager       stop start                            *                       *
allow   cert=noc           stop start                            puppet().enabled=false
allow   cert=developer     *                                     environment=development *




             NOC can start and stop services
            only during a maintenance window.

             Manager user can always override
                 maintenance windows.

                    R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
What is MCollective?

• Ruby framework for writing Orchestration
  systems
• Provides Authentication, Authorization and
  Auditing
• No direct communication between client
  and nodes



             R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
Questions?
       twitter: @ripienaar
          email: rip@puppetlabs.com
            blog: www.devco.net
        github: ripienaar
   freenode: Volcane




 R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar

More Related Content

What's hot

Reporting with Oracle Application Express (APEX)
Reporting with Oracle Application Express (APEX)Reporting with Oracle Application Express (APEX)
Reporting with Oracle Application Express (APEX)
Dimitri Gielis
 
Introduction to JavaScript Basics.
Introduction to JavaScript Basics.Introduction to JavaScript Basics.
Introduction to JavaScript Basics.
Hassan Ahmed Baig - Web Developer
 
XML DTD and Schema
XML DTD and SchemaXML DTD and Schema
XML DTD and Schema
hamsa nandhini
 
Project Management Scope Templates for SharePoint
Project Management Scope Templates for SharePointProject Management Scope Templates for SharePoint
Project Management Scope Templates for SharePoint
Toby Elwin
 
Threads 03: Ciclo de vida, aplicações e boas práticas
Threads 03: Ciclo de vida, aplicações e boas práticasThreads 03: Ciclo de vida, aplicações e boas práticas
Threads 03: Ciclo de vida, aplicações e boas práticas
Helder da Rocha
 
MongoDB
MongoDBMongoDB
Regular expression in javascript
Regular expression in javascriptRegular expression in javascript
Regular expression in javascript
Toan Nguyen
 
3.2 javascript regex
3.2 javascript regex3.2 javascript regex
3.2 javascript regex
Jalpesh Vasa
 
MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema Design
MongoDB
 
Dtd
DtdDtd
Combinator Pattern in Java 8
Combinator Pattern in Java 8Combinator Pattern in Java 8
Combinator Pattern in Java 8
Gregor Trefs
 
MongoDB presentation
MongoDB presentationMongoDB presentation
MongoDB presentation
Hyphen Call
 
The Basics of MongoDB
The Basics of MongoDBThe Basics of MongoDB
The Basics of MongoDB
valuebound
 
The Tables You Need to Know in the PeopleSoft Grants Suite
The Tables You Need to Know in the PeopleSoft Grants SuiteThe Tables You Need to Know in the PeopleSoft Grants Suite
The Tables You Need to Know in the PeopleSoft Grants Suite
David Driesbach, PMP
 
NoSQL Now! NoSQL Architecture Patterns
NoSQL Now! NoSQL Architecture PatternsNoSQL Now! NoSQL Architecture Patterns
NoSQL Now! NoSQL Architecture Patterns
DATAVERSITY
 
DBMS Notes: DDL DML DCL
DBMS Notes: DDL DML DCLDBMS Notes: DDL DML DCL
DBMS Notes: DDL DML DCL
Sreedhar Chowdam
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
Ravi Teja
 
Javascript arrays
Javascript arraysJavascript arrays
Javascript arrays
Hassan Dar
 
Lógica de Programação com Javascript - Aula #04
Lógica de Programação com Javascript - Aula #04Lógica de Programação com Javascript - Aula #04
Lógica de Programação com Javascript - Aula #04Ramon Kayo
 

What's hot (20)

Reporting with Oracle Application Express (APEX)
Reporting with Oracle Application Express (APEX)Reporting with Oracle Application Express (APEX)
Reporting with Oracle Application Express (APEX)
 
Introduction to JavaScript Basics.
Introduction to JavaScript Basics.Introduction to JavaScript Basics.
Introduction to JavaScript Basics.
 
XML DTD and Schema
XML DTD and SchemaXML DTD and Schema
XML DTD and Schema
 
Project Management Scope Templates for SharePoint
Project Management Scope Templates for SharePointProject Management Scope Templates for SharePoint
Project Management Scope Templates for SharePoint
 
Threads 03: Ciclo de vida, aplicações e boas práticas
Threads 03: Ciclo de vida, aplicações e boas práticasThreads 03: Ciclo de vida, aplicações e boas práticas
Threads 03: Ciclo de vida, aplicações e boas práticas
 
MongoDB
MongoDBMongoDB
MongoDB
 
Regular expression in javascript
Regular expression in javascriptRegular expression in javascript
Regular expression in javascript
 
3.2 javascript regex
3.2 javascript regex3.2 javascript regex
3.2 javascript regex
 
MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema Design
 
Dtd
DtdDtd
Dtd
 
Json
JsonJson
Json
 
Combinator Pattern in Java 8
Combinator Pattern in Java 8Combinator Pattern in Java 8
Combinator Pattern in Java 8
 
MongoDB presentation
MongoDB presentationMongoDB presentation
MongoDB presentation
 
The Basics of MongoDB
The Basics of MongoDBThe Basics of MongoDB
The Basics of MongoDB
 
The Tables You Need to Know in the PeopleSoft Grants Suite
The Tables You Need to Know in the PeopleSoft Grants SuiteThe Tables You Need to Know in the PeopleSoft Grants Suite
The Tables You Need to Know in the PeopleSoft Grants Suite
 
NoSQL Now! NoSQL Architecture Patterns
NoSQL Now! NoSQL Architecture PatternsNoSQL Now! NoSQL Architecture Patterns
NoSQL Now! NoSQL Architecture Patterns
 
DBMS Notes: DDL DML DCL
DBMS Notes: DDL DML DCLDBMS Notes: DDL DML DCL
DBMS Notes: DDL DML DCL
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Javascript arrays
Javascript arraysJavascript arrays
Javascript arrays
 
Lógica de Programação com Javascript - Aula #04
Lógica de Programação com Javascript - Aula #04Lógica de Programação com Javascript - Aula #04
Lógica de Programação com Javascript - Aula #04
 

Viewers also liked

PuppetDB, Puppet Explorer and puppetdbquery
PuppetDB, Puppet Explorer and puppetdbqueryPuppetDB, Puppet Explorer and puppetdbquery
PuppetDB, Puppet Explorer and puppetdbquery
Puppet
 
Introduction to MCollective - SF PUG
Introduction to MCollective - SF PUGIntroduction to MCollective - SF PUG
Introduction to MCollective - SF PUG
Puppet
 
Designing Puppet: Roles/Profiles Pattern
Designing Puppet: Roles/Profiles PatternDesigning Puppet: Roles/Profiles Pattern
Designing Puppet: Roles/Profiles Pattern
Puppet
 
Managing Windows Systems with Puppet - PuppetConf 2013
Managing Windows Systems with Puppet - PuppetConf 2013Managing Windows Systems with Puppet - PuppetConf 2013
Managing Windows Systems with Puppet - PuppetConf 2013
Puppet
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with Puppet
Michael Lessard
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 Edition
Joshua Thijssen
 
Using Docker with Puppet - PuppetConf 2014
Using Docker with Puppet - PuppetConf 2014Using Docker with Puppet - PuppetConf 2014
Using Docker with Puppet - PuppetConf 2014
Puppet
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
Giacomo Vacca
 
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Windows Configuration Management: Managing Packages, Services, & Power Shell-...Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Puppet
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and AgentRanjit Avasarala
 
Provisioning environments. A simplistic approach
Provisioning  environments. A simplistic approachProvisioning  environments. A simplistic approach
Provisioning environments. A simplistic approach
Eder Roger Souza
 
Package Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPackage Management on Windows with Chocolatey
Package Management on Windows with Chocolatey
Puppet
 
Icinga 2 and Puppet automate monitoring
Icinga 2 and Puppet  automate monitoringIcinga 2 and Puppet  automate monitoring
Icinga 2 and Puppet automate monitoring
Icinga
 
Intro to Puppet Enterprise
Intro to Puppet EnterpriseIntro to Puppet Enterprise
Intro to Puppet Enterprise
Puppet
 
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and JenkinsChasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Tomas Doran
 
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and KibanaPuppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
pkill
 
Mcollective introduction
Mcollective introductionMcollective introduction
Mcollective introduction
Javier Turégano Molina
 
Modules and the Puppet Forge
Modules and the Puppet ForgeModules and the Puppet Forge
Modules and the Puppet Forge
Puppet
 
Introduction to orchestration using Mcollective
Introduction to orchestration using McollectiveIntroduction to orchestration using Mcollective
Introduction to orchestration using Mcollective
Puppet
 
Adopting Kubernetes with Puppet
Adopting Kubernetes with PuppetAdopting Kubernetes with Puppet
Adopting Kubernetes with Puppet
Puppet
 

Viewers also liked (20)

PuppetDB, Puppet Explorer and puppetdbquery
PuppetDB, Puppet Explorer and puppetdbqueryPuppetDB, Puppet Explorer and puppetdbquery
PuppetDB, Puppet Explorer and puppetdbquery
 
Introduction to MCollective - SF PUG
Introduction to MCollective - SF PUGIntroduction to MCollective - SF PUG
Introduction to MCollective - SF PUG
 
Designing Puppet: Roles/Profiles Pattern
Designing Puppet: Roles/Profiles PatternDesigning Puppet: Roles/Profiles Pattern
Designing Puppet: Roles/Profiles Pattern
 
Managing Windows Systems with Puppet - PuppetConf 2013
Managing Windows Systems with Puppet - PuppetConf 2013Managing Windows Systems with Puppet - PuppetConf 2013
Managing Windows Systems with Puppet - PuppetConf 2013
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with Puppet
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 Edition
 
Using Docker with Puppet - PuppetConf 2014
Using Docker with Puppet - PuppetConf 2014Using Docker with Puppet - PuppetConf 2014
Using Docker with Puppet - PuppetConf 2014
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Windows Configuration Management: Managing Packages, Services, & Power Shell-...Windows Configuration Management: Managing Packages, Services, & Power Shell-...
Windows Configuration Management: Managing Packages, Services, & Power Shell-...
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and Agent
 
Provisioning environments. A simplistic approach
Provisioning  environments. A simplistic approachProvisioning  environments. A simplistic approach
Provisioning environments. A simplistic approach
 
Package Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPackage Management on Windows with Chocolatey
Package Management on Windows with Chocolatey
 
Icinga 2 and Puppet automate monitoring
Icinga 2 and Puppet  automate monitoringIcinga 2 and Puppet  automate monitoring
Icinga 2 and Puppet automate monitoring
 
Intro to Puppet Enterprise
Intro to Puppet EnterpriseIntro to Puppet Enterprise
Intro to Puppet Enterprise
 
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and JenkinsChasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
 
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and KibanaPuppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
 
Mcollective introduction
Mcollective introductionMcollective introduction
Mcollective introduction
 
Modules and the Puppet Forge
Modules and the Puppet ForgeModules and the Puppet Forge
Modules and the Puppet Forge
 
Introduction to orchestration using Mcollective
Introduction to orchestration using McollectiveIntroduction to orchestration using Mcollective
Introduction to orchestration using Mcollective
 
Adopting Kubernetes with Puppet
Adopting Kubernetes with PuppetAdopting Kubernetes with Puppet
Adopting Kubernetes with Puppet
 

Similar to Managing Puppet using MCollective

Puppet Camp DC 2014: Managing Puppet with MCollective
Puppet Camp DC 2014: Managing Puppet with MCollectivePuppet Camp DC 2014: Managing Puppet with MCollective
Puppet Camp DC 2014: Managing Puppet with MCollective
Puppet
 
Puppet Performance Profiling
Puppet Performance ProfilingPuppet Performance Profiling
Puppet Performance Profiling
ripienaar
 
R.I. Pienaar - Puppet Camp 2010
R.I. Pienaar - Puppet Camp 2010R.I. Pienaar - Puppet Camp 2010
R.I. Pienaar - Puppet Camp 2010Puppet
 
Puppet Performance Profiling - CM Camp 2015
Puppet Performance Profiling - CM Camp 2015Puppet Performance Profiling - CM Camp 2015
Puppet Performance Profiling - CM Camp 2015
ripienaar
 
Scaling to-5000-nodes
Scaling to-5000-nodesScaling to-5000-nodes
Scaling to-5000-nodes
Philip Watts
 
Puppet Camp New York 2015: Puppet Enterprise Scaling Lessons Learned (Interme...
Puppet Camp New York 2015: Puppet Enterprise Scaling Lessons Learned (Interme...Puppet Camp New York 2015: Puppet Enterprise Scaling Lessons Learned (Interme...
Puppet Camp New York 2015: Puppet Enterprise Scaling Lessons Learned (Interme...
Puppet
 
Node.js primer
Node.js primerNode.js primer
Node.js primer
Quhan Arunasalam
 
No Callbacks, No Threads - RailsConf 2010
No Callbacks, No Threads - RailsConf 2010No Callbacks, No Threads - RailsConf 2010
No Callbacks, No Threads - RailsConf 2010
Ilya Grigorik
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
Achieve Internet
 
Automated Java Deployments With Rpm
Automated Java Deployments With RpmAutomated Java Deployments With Rpm
Automated Java Deployments With Rpm
Martin Jackson
 
Automatisation in development and testing - within budget
Automatisation in development and testing - within budgetAutomatisation in development and testing - within budget
Automatisation in development and testing - within budget
David Lukac
 
OpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, tooOpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, too
inovex GmbH
 
OSMC 2021 | Icinga-Installer – the easy way to your Icinga
OSMC 2021 | Icinga-Installer – the easy way to your IcingaOSMC 2021 | Icinga-Installer – the easy way to your Icinga
OSMC 2021 | Icinga-Installer – the easy way to your Icinga
NETWAYS
 
6. hands on - open mano demonstration in remote pool of servers
6. hands on - open mano demonstration in remote pool of servers6. hands on - open mano demonstration in remote pool of servers
6. hands on - open mano demonstration in remote pool of servers
videos
 
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Nagios
 
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano
 
Puppet Dashboard at HEP, Cambridge
Puppet Dashboard at HEP, CambridgePuppet Dashboard at HEP, Cambridge
Puppet Dashboard at HEP, CambridgeSantanu Das
 
Minimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestrationMinimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestration
Outlyer
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
OlinData
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
Walter Heck
 

Similar to Managing Puppet using MCollective (20)

Puppet Camp DC 2014: Managing Puppet with MCollective
Puppet Camp DC 2014: Managing Puppet with MCollectivePuppet Camp DC 2014: Managing Puppet with MCollective
Puppet Camp DC 2014: Managing Puppet with MCollective
 
Puppet Performance Profiling
Puppet Performance ProfilingPuppet Performance Profiling
Puppet Performance Profiling
 
R.I. Pienaar - Puppet Camp 2010
R.I. Pienaar - Puppet Camp 2010R.I. Pienaar - Puppet Camp 2010
R.I. Pienaar - Puppet Camp 2010
 
Puppet Performance Profiling - CM Camp 2015
Puppet Performance Profiling - CM Camp 2015Puppet Performance Profiling - CM Camp 2015
Puppet Performance Profiling - CM Camp 2015
 
Scaling to-5000-nodes
Scaling to-5000-nodesScaling to-5000-nodes
Scaling to-5000-nodes
 
Puppet Camp New York 2015: Puppet Enterprise Scaling Lessons Learned (Interme...
Puppet Camp New York 2015: Puppet Enterprise Scaling Lessons Learned (Interme...Puppet Camp New York 2015: Puppet Enterprise Scaling Lessons Learned (Interme...
Puppet Camp New York 2015: Puppet Enterprise Scaling Lessons Learned (Interme...
 
Node.js primer
Node.js primerNode.js primer
Node.js primer
 
No Callbacks, No Threads - RailsConf 2010
No Callbacks, No Threads - RailsConf 2010No Callbacks, No Threads - RailsConf 2010
No Callbacks, No Threads - RailsConf 2010
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
 
Automated Java Deployments With Rpm
Automated Java Deployments With RpmAutomated Java Deployments With Rpm
Automated Java Deployments With Rpm
 
Automatisation in development and testing - within budget
Automatisation in development and testing - within budgetAutomatisation in development and testing - within budget
Automatisation in development and testing - within budget
 
OpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, tooOpenNebula, the foreman and CentOS play nice, too
OpenNebula, the foreman and CentOS play nice, too
 
OSMC 2021 | Icinga-Installer – the easy way to your Icinga
OSMC 2021 | Icinga-Installer – the easy way to your IcingaOSMC 2021 | Icinga-Installer – the easy way to your Icinga
OSMC 2021 | Icinga-Installer – the easy way to your Icinga
 
6. hands on - open mano demonstration in remote pool of servers
6. hands on - open mano demonstration in remote pool of servers6. hands on - open mano demonstration in remote pool of servers
6. hands on - open mano demonstration in remote pool of servers
 
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
 
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
 
Puppet Dashboard at HEP, Cambridge
Puppet Dashboard at HEP, CambridgePuppet Dashboard at HEP, Cambridge
Puppet Dashboard at HEP, Cambridge
 
Minimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestrationMinimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestration
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
 

More from Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
Puppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
Puppet
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
Puppet
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
Puppet
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
Puppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
Puppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
Puppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
Puppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
Puppet
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
Puppet
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
Puppet
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
Puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
Puppet
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
Puppet
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
Puppet
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
Puppet
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
Puppet
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
Puppet
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
Puppet
 

More from Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

Recently uploaded

Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 

Recently uploaded (20)

Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 

Managing Puppet using MCollective

  • 1. Managing Puppet using MCollective Puppet Camp Ghent R.I.Pienaar
  • 2. Who am I? • Puppet user since 0.22.x • Architect of MCollective • Author of Extlookup and Hiera • Developer at Puppet Labs London • Blog at http://devco.net • Tweets at @ripienaar • Volcane on IRC R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 3. The Problem? • Puppet needs management just like other software • Enabling, disabling, ad-hoc runs, custom environments etc • The Puppet Master is a finite resource that needs protection • Orchestrated deploys R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 4. MCollective Puppet Agent package{[“mcollective-puppet-agent”, “mcollective-puppet-client”]: ensure => present } Available on yum.puppetlabs.com and apt.puppetlabs.com http://srt.ly/mcpuppet R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 5. Obtaining The Agent Status R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 6. Obtaining Statuses $ mco puppet status * [ ============================================================> ] 11 / 11 node8.example.net: Currently stopped; last completed run 14 minutes 16 seconds ago .... Summary of Applying: false = 11 Summary of Daemon Running: unix text here Per node status stopped = 11 Summary of Enabled: Estate wide summary enabled = 10 disabled = 1 Summary of Idling: false = 11 Finished processing 11 / 11 hosts in 72.05 ms R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 7. Obtaining Statuses $ mco puppet count Total Puppet nodes: 11 Nodes currently enabled: 10 Nodes currently disabled: 1 Nodes currently doing puppet runs: 5 Nodes currently stopped: 6 Nodes with daemons started: 10 Nodes without daemons started: 1 Daemons started but idling: 6 R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 8. Obtaining Statuses $ mco rpc puppet last_run_summary * [ ============================================================> ] 28 / 28 . . . Summary of Config Retrieval Time: Average: 20.13 Summary of Total Resources: Average: 435 Summary of Total Time: Average: 39.33 Finished processing 28 / 28 hosts in 311.23 ms R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 9. Running Puppet R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 10. Doing Basic Runs $ mco puppet runonce * [ ============================================================> ] 11 / 11 node9.example.net Request Aborted Puppet is disabled: 'machine under maintenance' Finished processing 11 / 11 hosts in 2593.85 ms $ mco puppet count Total Puppet nodes: 11 Puppet 3 disable message Nodes currently enabled: 10 Nodes currently disabled: 1 Nodes currently doing puppet runs: 2 Nodes currently stopped: 9 Nodes with daemons started: 10 Nodes without daemons started: 1 Daemons started but idling: 8 Run with default configured splay and splaylimit R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 11. Doing Basic Runs $ mco puppet runonce -f * [ ============================================================> ] 11 / 11 node9.example.net Request Aborted Puppet is disabled: 'machine under maintenance' Finished processing 11 / 11 hosts in 2661.99 ms Run with no splay, still subject to enable/disable R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 12. Doing Basic Runs $ mco puppet runonce --splay --splaylimit 120 * [ ============================================================> ] 11 / 11 node9.example.net Request Aborted Puppet is disabled: 'machine under maintenance' Finished processing 11 / 11 hosts in 2661.99 ms Force splay and set a custom splay limit R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 13. Tags and Environment $ mco puppet runonce --tag webserver --tag syslog --environment development * [ ============================================================> ] 11 / 11 node9.example.net Request Aborted Puppet is disabled: 'machine under maintenance' Finished processing 11 / 11 hosts in 2661.99 ms Selects 2 tags in a specific Puppet Environment R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 14. Doing noop Runs $ mco puppet runonce --noop * [ ============================================================> ] 11 / 11 node9.example.net Request Aborted Puppet is disabled: 'machine under maintenance' Finished processing 11 / 11 hosts in 2661.99 ms Do a noop run, gathers reports and audit information R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 15. Doing no-noop Runs $ mco puppet runonce --tag webserver --no-noop * [ ============================================================> ] 11 / 11 node9.example.net Request Aborted Puppet is disabled: 'machine under maintenance' Finished processing 11 / 11 hosts in 2661.99 ms When puppet.conf has noop=true, do an actual run on demand R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 16. Choosing a Master $ mco puppet runonce --server secops.example.net:8134 --tag compliance * [ ============================================================> ] 11 / 11 node9.example.net Request Aborted Puppet is disabled: 'machine under maintenance' Finished processing 11 / 11 hosts in 2661.99 ms Does a single run against a different Puppet Master R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 17. Preventing Puppet Runs R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 18. The Big Red Button $ mco puppet disable “we f’d up, stop the train!” * [ ============================================================> ] 11 / 11 node9.example.net Request Aborted Could not disable Puppet: Already disabled Summary of Enabled: disabled = 11 Finished processing 11 / 11 hosts in 90.06 ms Disables Puppet, does not change currently disabled nodes reasons R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 19. The Big Green Button $ mco puppet enable -S ‘puppet().disable_message=/stop the train/’ * [ ============================================================> ] 10 / 10 Summary of Enabled: enabled = 10 Finished processing 10 / 10 hosts in 90.06 ms Enables all disabled Puppet nodes R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 20. Operating On Groups Of Hosts R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 21. Selective Runs Facter fact Puppet Class $ mco puppet runonce -W “cluster=a roles::webserver” * [ ============================================================> ] 5 / 5 Finished processing 5 / 5 hosts in 90.06 ms Run using a filter: all web servers with fact cluster=a R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 22. Selective Runs Any Puppet resource $ mco puppet runonce -S “resource(‘File[/srv/www]’).managed=true” * [ ============================================================> ] 5 / 5 Finished processing 5 / 5 hosts in 90.06 ms Run using a filter: nodes where we manage /srv/www R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 23. Selective Runs $ mco puppet runonce -S “resource().failed_resources>5 and resource().config_version=xyz” * [ ============================================================> ] 5 / 5 Finished processing 5 / 5 hosts in 90.06 ms Run using a filter: Most recent run config_version was xyz that had > 5 resource failures R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 24. Roll Out A Change Quickly $ mco puppet runall 7 2013-01-19 20:58:59: Running all nodes with a concurrency of 7 2013-01-19 20:58:59: Discovering enabled Puppet nodes to manage 2013-01-19 20:59:02: Found 11 enabled nodes 2013-01-19 20:59:06: node3.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:07: node1.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:09: node4.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:10: node6.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:12: node0.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:13: node5.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:17: Currently 7 nodes applying the catalog; waiting for less than 7 2013-01-19 20:59:21: Currently 7 nodes applying the catalog; waiting for less than 7 2013-01-19 20:59:25: node9.example.net schedule status: Puppet is currently applying a catalog, cannot run now 2013-01-19 20:59:29: node8.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:33: Currently 7 nodes applying the catalog; waiting for less than 7 2013-01-19 20:59:38: node2.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:41: Currently 7 nodes applying the catalog; waiting for less than 7 2013-01-19 20:59:46: middleware.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:50: Currently 7 nodes applying the catalog; waiting for less than 7 2013-01-19 20:59:55: node7.example.net schedule status: Started a background Puppet run Runs all nodes with a maximum concurrency R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 25. Roll Out A Change Quickly 2013-01-19 20:58:59: Running all nodes with a concurrency of 7 2013-01-19 20:58:59: Discovering enabled Puppet nodes to manage 2013-01-19 20:59:02: Found 11 enabled nodes Does not attempt to manage disabled nodes R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 26. Roll Out A Change Quickly 2013-01-19 20:59:02: Found 11 enabled nodes 2013-01-19 20:59:06: node3.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:07: node1.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:09: node4.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:10: node6.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:12: node0.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:13: node5.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:17: Currently 7 nodes applying the catalog; waiting for less than 7 Starts the first 6 quickly but considers administrators doing 1other run at the same time R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 27. Roll Out A Change Quickly 2013-01-19 20:59:17: Currently 7 nodes applying the catalog; waiting for less than 7 2013-01-19 20:59:21: Currently 7 nodes applying the catalog; waiting for less than 7 2013-01-19 20:59:25: node9.example.net schedule status: Puppet is currently applying a catalog, cannot run now 2013-01-19 20:59:29: node8.example.net schedule status: Started a background Puppet run node9 was being run by an administrator or normal schedule already, skipped to next node R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 28. Roll Out A Change Quickly 2013-01-19 20:59:29: node8.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:33: Currently 7 nodes applying the catalog; waiting for less than 7 2013-01-19 20:59:38: node2.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:41: Currently 7 nodes applying the catalog; waiting for less than 7 2013-01-19 20:59:46: middleware.example.net schedule status: Started a background Puppet run 2013-01-19 20:59:50: Currently 7 nodes applying the catalog; waiting for less than 7 2013-01-19 20:59:55: node7.example.net schedule status: Started a background Puppet run Regularly checks the concurrency and starts more nodes soon as possible. Average node run time 34.39s, total time 55 seconds R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 29. Roll Out A Change Slowly Wait 5 minutes $ mco puppet runonce --batch 5 --batch-sleep 300 * [ ============================================================> ] 11 / 11 Finished processing 11 / 11 hosts in 903686.29 ms Does runonce in batches of 5, 5 minute sleep per batch. ^c after any batch to stop. 15 minute total run time. R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 30. Advanced Status And Performance Metrics R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 31. Performance Analysis $ mco puppet summary Summary statistics for 28 nodes: Total resources: ▂▇▂▁▁▃▁▂▂▂▄▁▂▁▁▁▁▁▂▁ min: 332.0 max: 695.0 Out Of Sync resources: ▇▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ min: 0.0 max: 2.0 Failed resources: ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ min: 0.0 max: 0.0 Changed resources: ▇▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ min: 0.0 max: 2.0 Config Retrieval time (seconds): ▆▇▅▄▁▃▃▁▁▁▃▁▁▄▂▁▁▁▁▁ min: 2.7 max: 57.1 Total run-time (seconds): ▇▃▄▄▄▃▂▂▂▂▃▂▁▁▁▁▁▂▁▁ min: 7.0 max: 125.1 Time since last run (seconds): ▇▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂ min: 10.0 max: 89.0k Distribution of various metrics. R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 32. Performance Analysis Config Retrieval time (seconds): ▆▇▅▄▁▃▃▁▁▁▃▁▁▄▂▁▁▁▁▁ min: 2.7 max: 57.1 Total run-time (seconds): ▇▃▄▄▄▃▂▂▂▂▃▂▁▁▁▁▁▂▁▁ min: 7.0 max: 125.1 Distribution of various metrics. R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 33. Performance Analysis $ mco plot resource config_retrieval_time Information about Puppet managed resources Nodes 8 ++----*-----+----------+-----------+----------+----------+----------++ + * + + + + + + 7 ++ ** ++ | * * | Slow machines 6 ++ * * ++ | * * | | * * | 5 ++ * * ++ | * * | 4 ++ * * ++ | * * | 3 ++ * * * * ++ | * * ** * ** | 2 ++* **** * * * ++ | * * * | | * * * | 1 ++ ************** ****** * * ** ++ + + + * + ** + *+ *** + 0 ++----------+----------+---------********-----+--*******-+----*-----++ 0 10 20 30 40 50 60 Config Retrieval Time Distribution of config retrieval time. R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 34. Performance Analysis $ mco find -S "resource().config_retrieval_time > 30" dev3.example.net dev4.example.net dev7.example.net dev6.example.net dev8.example.net dev9.example.net dev10.example.net Find machines with config_retrieval_time over 30 seconds - all the dev servers. R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 35. Maintenance Windows and Access Control R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 36. Puppet State As ACL policy default deny allow cert=manager enable disable * * allow cert=sysadmin runonce status * * allow cert=developer * environment=development * Only cert=manager can enable and disable the Puppet Agent indicating maintenance periods R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 37. Puppet State As ACL policy default deny allow cert=manager stop start * * allow cert=noc stop start puppet().enabled=false allow cert=developer * environment=development * NOC can start and stop services only during a maintenance window. Manager user can always override maintenance windows. R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 38. What is MCollective? • Ruby framework for writing Orchestration systems • Provides Authentication, Authorization and Auditing • No direct communication between client and nodes R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar
  • 39. Questions? twitter: @ripienaar email: rip@puppetlabs.com blog: www.devco.net github: ripienaar freenode: Volcane R.I.Pienaar | rip@devco.net | http://devco.net | @ripienaar