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

User Story Smells & Anti-patterns
User Story Smells & Anti-patternsUser Story Smells & Anti-patterns
User Story Smells & Anti-patternsFadi Stephan
 
Effective Agile Retrospectives
Effective Agile RetrospectivesEffective Agile Retrospectives
Effective Agile RetrospectivesYuval Yeret
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들Hyunjik Bae
 
Getting Started - Ansible Galaxy NG
Getting Started - Ansible Galaxy NGGetting Started - Ansible Galaxy NG
Getting Started - Ansible Galaxy NGHideki Saito
 
Ansible Introduction
Ansible IntroductionAnsible Introduction
Ansible IntroductionGong Haibing
 
Leveraging Nexus Repository Manager at the Heart of DevOps
Leveraging Nexus Repository Manager at the Heart of DevOpsLeveraging Nexus Repository Manager at the Heart of DevOps
Leveraging Nexus Repository Manager at the Heart of DevOpsSeniorStoryteller
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetesKrishna-Kumar
 
Agile methodology v 4.5 s
Agile methodology   v 4.5 sAgile methodology   v 4.5 s
Agile methodology v 4.5 sJames Sutter
 
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docxKeepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docxNeoClova
 
Writing Good User Stories (Hint: It's not about writing)
Writing Good User Stories (Hint: It's not about writing)Writing Good User Stories (Hint: It's not about writing)
Writing Good User Stories (Hint: It's not about writing)one80
 
System Hardening Using Ansible
System Hardening Using AnsibleSystem Hardening Using Ansible
System Hardening Using AnsibleSonatype
 

What's hot (20)

User Story Smells & Anti-patterns
User Story Smells & Anti-patternsUser Story Smells & Anti-patterns
User Story Smells & Anti-patterns
 
Scrum
ScrumScrum
Scrum
 
Packer
Packer Packer
Packer
 
ansible why ?
ansible why ?ansible why ?
ansible why ?
 
Effective Agile Retrospectives
Effective Agile RetrospectivesEffective Agile Retrospectives
Effective Agile Retrospectives
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들
 
Getting Started - Ansible Galaxy NG
Getting Started - Ansible Galaxy NGGetting Started - Ansible Galaxy NG
Getting Started - Ansible Galaxy NG
 
Ansible Introduction
Ansible IntroductionAnsible Introduction
Ansible Introduction
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Scrum 101
Scrum 101 Scrum 101
Scrum 101
 
Leveraging Nexus Repository Manager at the Heart of DevOps
Leveraging Nexus Repository Manager at the Heart of DevOpsLeveraging Nexus Repository Manager at the Heart of DevOps
Leveraging Nexus Repository Manager at the Heart of DevOps
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetes
 
Agile scrum-retrospective
Agile scrum-retrospectiveAgile scrum-retrospective
Agile scrum-retrospective
 
Agile methodology v 4.5 s
Agile methodology   v 4.5 sAgile methodology   v 4.5 s
Agile methodology v 4.5 s
 
Scrum metrics
Scrum metricsScrum metrics
Scrum metrics
 
AGILE METHODOLOGY
AGILE METHODOLOGYAGILE METHODOLOGY
AGILE METHODOLOGY
 
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docxKeepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
 
Ansible
AnsibleAnsible
Ansible
 
Writing Good User Stories (Hint: It's not about writing)
Writing Good User Stories (Hint: It's not about writing)Writing Good User Stories (Hint: It's not about writing)
Writing Good User Stories (Hint: It's not about writing)
 
System Hardening Using Ansible
System Hardening Using AnsibleSystem Hardening Using Ansible
System Hardening Using Ansible
 

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

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

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