SlideShare a Scribd company logo
1 of 39
Download to read offline
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

Apache Hudi: The Path Forward
Apache Hudi: The Path ForwardApache Hudi: The Path Forward
Apache Hudi: The Path ForwardAlluxio, Inc.
 
Journeys from Kafka to Parquet
Journeys from Kafka to ParquetJourneys from Kafka to Parquet
Journeys from Kafka to ParquetDataWorks Summit
 
2017 jenkins world
2017 jenkins world2017 jenkins world
2017 jenkins worldBrent Laster
 
Building a Microservices-based ERP System
Building a Microservices-based ERP SystemBuilding a Microservices-based ERP System
Building a Microservices-based ERP SystemMongoDB
 
Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziHakan Ilter
 
PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase
PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase
PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase DataWorks Summit
 
Google Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data editionGoogle Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data editionDaniel Zivkovic
 
JDBC Source Connector: What could go wrong? with Francesco Tisiot | Kafka Sum...
JDBC Source Connector: What could go wrong? with Francesco Tisiot | Kafka Sum...JDBC Source Connector: What could go wrong? with Francesco Tisiot | Kafka Sum...
JDBC Source Connector: What could go wrong? with Francesco Tisiot | Kafka Sum...HostedbyConfluent
 
Case Study: Stream Processing on AWS using Kappa Architecture
Case Study: Stream Processing on AWS using Kappa ArchitectureCase Study: Stream Processing on AWS using Kappa Architecture
Case Study: Stream Processing on AWS using Kappa ArchitectureJoey Bolduc-Gilbert
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationDatabricks
 
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...Databricks
 
Big Data Ingestion @ Flipkart Data Platform
Big Data Ingestion @ Flipkart Data PlatformBig Data Ingestion @ Flipkart Data Platform
Big Data Ingestion @ Flipkart Data PlatformNavneet Gupta
 

What's hot (14)

Apache Hudi: The Path Forward
Apache Hudi: The Path ForwardApache Hudi: The Path Forward
Apache Hudi: The Path Forward
 
Journeys from Kafka to Parquet
Journeys from Kafka to ParquetJourneys from Kafka to Parquet
Journeys from Kafka to Parquet
 
2017 jenkins world
2017 jenkins world2017 jenkins world
2017 jenkins world
 
Building a Microservices-based ERP System
Building a Microservices-based ERP SystemBuilding a Microservices-based ERP System
Building a Microservices-based ERP System
 
Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri Analizi
 
Hadoop and OpenStack
Hadoop and OpenStackHadoop and OpenStack
Hadoop and OpenStack
 
PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase
PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase
PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase
 
Google Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data editionGoogle Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data edition
 
Introduction to Amazon Redshift
Introduction to Amazon RedshiftIntroduction to Amazon Redshift
Introduction to Amazon Redshift
 
JDBC Source Connector: What could go wrong? with Francesco Tisiot | Kafka Sum...
JDBC Source Connector: What could go wrong? with Francesco Tisiot | Kafka Sum...JDBC Source Connector: What could go wrong? with Francesco Tisiot | Kafka Sum...
JDBC Source Connector: What could go wrong? with Francesco Tisiot | Kafka Sum...
 
Case Study: Stream Processing on AWS using Kappa Architecture
Case Study: Stream Processing on AWS using Kappa ArchitectureCase Study: Stream Processing on AWS using Kappa Architecture
Case Study: Stream Processing on AWS using Kappa Architecture
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI Integration
 
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
 
Big Data Ingestion @ Flipkart Data Platform
Big Data Ingestion @ Flipkart Data PlatformBig Data Ingestion @ Flipkart Data Platform
Big Data Ingestion @ Flipkart Data Platform
 

Viewers also liked

PuppetDB, Puppet Explorer and puppetdbquery
PuppetDB, Puppet Explorer and puppetdbqueryPuppetDB, Puppet Explorer and puppetdbquery
PuppetDB, Puppet Explorer and puppetdbqueryPuppet
 
Introduction to MCollective - SF PUG
Introduction to MCollective - SF PUGIntroduction to MCollective - SF PUG
Introduction to MCollective - SF PUGPuppet
 
Designing Puppet: Roles/Profiles Pattern
Designing Puppet: Roles/Profiles PatternDesigning Puppet: Roles/Profiles Pattern
Designing Puppet: Roles/Profiles PatternPuppet
 
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 2013Puppet
 
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 PuppetMichael Lessard
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionJoshua Thijssen
 
Using Docker with Puppet - PuppetConf 2014
Using Docker with Puppet - PuppetConf 2014Using Docker with Puppet - PuppetConf 2014
Using Docker with Puppet - PuppetConf 2014Puppet
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationGiacomo 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 approachEder Roger Souza
 
Package Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPackage Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPuppet
 
Icinga 2 and Puppet automate monitoring
Icinga 2 and Puppet  automate monitoringIcinga 2 and Puppet  automate monitoring
Icinga 2 and Puppet automate monitoringIcinga
 
Intro to Puppet Enterprise
Intro to Puppet EnterpriseIntro to Puppet Enterprise
Intro to Puppet EnterprisePuppet
 
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 JenkinsTomas 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 Kibanapkill
 
Modules and the Puppet Forge
Modules and the Puppet ForgeModules and the Puppet Forge
Modules and the Puppet ForgePuppet
 
Introduction to orchestration using Mcollective
Introduction to orchestration using McollectiveIntroduction to orchestration using Mcollective
Introduction to orchestration using McollectivePuppet
 
Adopting Kubernetes with Puppet
Adopting Kubernetes with PuppetAdopting Kubernetes with Puppet
Adopting Kubernetes with PuppetPuppet
 

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 MCollectivePuppet
 
Puppet Performance Profiling
Puppet Performance ProfilingPuppet Performance Profiling
Puppet Performance Profilingripienaar
 
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 2015ripienaar
 
Scaling to-5000-nodes
Scaling to-5000-nodesScaling to-5000-nodes
Scaling to-5000-nodesPhilip 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
 
No Callbacks, No Threads - RailsConf 2010
No Callbacks, No Threads - RailsConf 2010No Callbacks, No Threads - RailsConf 2010
No Callbacks, No Threads - RailsConf 2010Ilya Grigorik
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetAchieve Internet
 
Automated Java Deployments With Rpm
Automated Java Deployments With RpmAutomated Java Deployments With Rpm
Automated Java Deployments With RpmMartin 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 budgetDavid 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, tooinovex 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 IcingaNETWAYS
 
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 serversvideos
 
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 2015Masahiro 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 orchestrationOutlyer
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetWalter Heck
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetOlinData
 

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 controlrepoPuppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyamlPuppet
 
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 vscodePuppet
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twentiesPuppet
 
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 codePuppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approachPuppet
 
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 automationPuppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliancePuppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowPuppet
 
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 WindowsPuppet
 
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. 2020Puppet
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppetPuppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet
 
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 ReeuwijkPuppet
 
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 groundPuppet
 
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 SoftwarePuppet
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User GroupPuppet
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsPuppet
 
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 MaludyPuppet
 

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

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

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