SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
Managing Puppet with
MCollective
Jon Mosco

@jpmosco
Who am I?
Infrastructure Engineer

Puppet User for 2+ years

Puppet Certified Professional

Linux user for 10+ years (Slackware!)

Metal Head m/
What is MCollective?
The Marionette Collective (MCollective)
is a framework to build server
orchestration or parallel job execution 	
Works perfectly along side Puppet
providing real-time command execution
across your infrastructure
This is what it really is…
Configuration
Management
Focuses on single node management	
Great at managing one server at a
time
Orchestration
Coordination of management of multiple
systems
MCollective Architecture
Servers == Puppet Agent

Clients

Middleware == Puppet Master
Client Middleware
Server
Server
Server
Server
Servers
Systems that can be controlled via
MCollective

Run the daemon mcollectived

puppet agent == mcollectived

Multiple Agent Plugins 

small Ruby libraries that enable custom
command execution
Clients
Clients send and receive requests to servers

Admin server for managing MCollective

Security and connector plugin 

mco command-line client

interactive usage or in scripts
Middleware
!
Clients and servers communicate through the
middleware system (ActiveMA, RabbitMQ)

MCollective uses a publish/subscribe system
for all communication

Sends and receives messages using STOMP

Used for transporting messages between
clients and servers
Message Flow
Broadcast paradigm

Messages are sent from the administrator
account on the client server to the
middleware server and broadcast to all
nodes 

Each agent is both a publisher and
subscriber
MW
MW =
Middleware

S = Server
s
s
s
Client

mco
Plugins
Enable MCollective to execute commands on
the entire collective

Provide the functionality to use with
MCollective

puppet agent, service, process, package, etc.
Integration with Puppet
Pre-installed and configured with Puppet
Enterprise

Puppet Labs modules for opensource

https://github.com/puppetlabs/puppetlabs-
mcollective
PuppetLabs MCollective Module
Orchestrating Puppet
MCollective can be used to control the
Puppet Daemon

The performance of a Puppet Master is
related to the max concurrent Puppet nodes
that are applying a catalog

MCollective can determine how many servers
are currently enabled and applying catalogs
mco puppet
$ mco help puppet
[14/180]

!
Schedule runs, enable, disable and interrogate the Puppet Agent

!
Usage: mco puppet [OPTIONS] [FILTERS] <ACTION> [CONCURRENCY|MESSAGE]

Usage: mco puppet <count|enable|status|summary>

Usage: mco puppet disable [message]

Usage: mco puppet runonce [PUPPET OPTIONS]

Usage: mco puppet resource type name property1=value property2=value

Usage: mco puppet runall [--rerun SECONDS] [PUPPET OPTIONS]

!
The ACTION can be one of the following:

!
count - return a total count of running, enabled, and disabled nodes

enable - enable the Puppet Agent if it was previously disabled

disable - disable the Puppet Agent preventing catalog from being applied

resource - manage individual resources using the Puppet Type (RAL) system

runall - invoke a puppet run on matching nodes, making sure to only run

CONCURRENCY nodes at a time

runonce - invoke a Puppet run on matching nodes

status - shows a short summary about each Puppet Agent status

summary - shows resource and run time summaries
Controlled Nodes
Query and run Puppet from any node that
has the client installed:
$ mco puppet count

Total Puppet nodes: 9

!
Nodes currently enabled: 9

Nodes currently disabled: 0

!
Nodes currently doing puppet runs: 0

Nodes currently stopped: 9

!
Nodes with daemons started: 9

Nodes without daemons started: 0

Daemons started but idling: 9
Puppet Status
$ mco puppet status

!
* [ ============================================================> ] 7 / 7

!
db02.example.com: Currently idling; last completed run 4 minutes 50 seconds ago

fpvcs01.example.com: Currently idling; last completed run 24 minutes 44 seconds ago

puppet.example.com: Currently idling; last completed run 6 minutes 48 seconds ago

mco01.example.com: Currently idling; last completed run 24 minutes 35 seconds ago

fp01.example.com: Currently idling; last completed run 4 minutes 55 seconds ago

web01.example.net: Currently idling; last completed run 24 minutes 16 seconds ago

mail02.example.com: Currently idling; last completed run 3 minutes 17 seconds ago

!
Summary of Applying:

false = 7

Summary of Daemon Running:

running = 7

Summary of Enabled:

enabled = 7

Summary of Idling:

true = 7

Summary of Status:

idling = 7

!
Finished processing 7 / 7 hosts in 96.09 ms
Running Puppet
Basic Puppet run:	
$ mco puppet runonce	
!
A noop run:	
$ mco puppet runonce —noop	
!
A run when noop is set:	
$ mco puppet runonce —no-noop	
!
A splay run:	
$ mco puppet runonce —splay —
splaylimit 120
Filters
Host Filters	
-W, --with FILTER Combined classes and facts filter	
-S, --select FILTER Compound filter combining facts and classes	
-F, --wf, --with-fact fact=val Match hosts with a certain fact	
-C, --wc, --with-class CLASS Match hosts with a certain config management class	
-A, --wa, --with-agent AGENT Match hosts with a certain agent	
-I, --wi, --with-identity IDENT Match hosts with a certain configured identity
$ mco puppet runonce web01.example.com	
* [ ============================================================> ] 9 / 9
Don't forget filters….
Invoking Actions

with filters
Facts

$ mco find -F osfamily=RedHat

$ mco find —with-fact operatingsystemmajrelease=5

Classes

Puppet provides a list of classes applied to
a node:

$ mco find —with-class /apache/
Agent Runs
$ mco puppet runall 1

2013-01-16 16:14:26: Running all nodes with a concurrency of 1

2013-01-16 16:14:26: Discovering enabled Puppet nodes to manage

2013-01-16 16:14:29: Found 2 enabled nodes

2013-01-16 16:14:32: Currently 1 node applying the catalog; waiting for less than 1

2013-01-16 16:14:37: dev1.example.net schedule status: Started a background Puppet run using the 'puppet agent
--onetime --daemonize --color=false' command

2013-01-16 16:14:38: 1 out of 2 hosts left to run in this iteration

2013-01-16 16:14:40: Currently 1 node applying the catalog; waiting for less than 1

2013-01-16 16:14:44: Currently 1 node applying the catalog; waiting for less than 1

2013-01-16 16:14:48: Currently 1 node applying the catalog; waiting for less than 1

2013-01-16 16:14:52: Currently 1 node applying the catalog; waiting for less than 1

2013-01-16 16:14:56: Currently 1 node applying the catalog; waiting for less than 1

2013-01-16 16:15:00: Currently 1 node applying the catalog; waiting for less than 1

2013-01-16 16:15:04: Currently 1 node applying the catalog; waiting for less than 1

2013-01-16 16:15:08: Currently 1 node applying the catalog; waiting for less than 1
Last run summary
Plotting Performance
MCollective Puppet agent can make changes
based on the Puppet RAL
Puppet Resources
Allowing resource control
Enable and Disable
Puppet
$ mco puppet disable message=“turn off all the things”	
$ mco puppet enable
Misc Plugin Examples
$ mco process list java -I dradis.example.com

!
* [ ============================================================> ] 1 / 1

!
dradis.example.com

!
PID USER VSZ COMMAND

1380 logstash 1.794 GB /usr/bin/java -Djava.io.tmpdir=/var/lib/logstash -Xmx500m -X

1436 elasticsea 2.298 GB /usr/bin/java -Xms256m -Xmx1g -Xss256k -Djava.awt.headless=t

!
!
Summary of The Process List:

!
Matched hosts: 1

Matched Processes: 2

Resident Size: 146.453 MB

Virtual Size: 4.092 GB

!
!
Finished processing 1 / 1 hosts in 113.93 ms
$ mco package bash status -I db02.example.com

!
* [ ============================================================> ] 1 / 1

!
db02.example.com: bash-4.1.2-15.el6_4.x86_64

!
Summary of Arch:

!
x86_64 = 1

!
Summary of Ensure:

!
4.1.2-15.el6_4 = 1

!
!
Finished processing 1 / 1 hosts in 128.67 ms
InventoryRetrieve all facts, classes, and agent plugins:

!
$mco inventory web01.example.com

Agents:

discovery filemgr package

puppet rpcutil service

thanks

!
Data Plugins:

agent fstat puppet

resource service

!
Configuration Management Classes:

agent epel

epel::params mcollective

mcollective::common mcollective::common::config

mcollective::common::config::connector::activemq mcollective::defaults

mcollective::server mcollective::server::config

mcollective::server::config::connector::activemq mcollective::server::config::factsource::yaml

mcollective::server::config::rpcauditprovider::logfile
mcollective::server::config::rpcauthprovider::action_policy

mcollective::server::config::securityprovider::ssl mcollective::server::install

mcollective::server::service ntp

…..

!
Facts:

architecture => x86_64

augeasversion => 1.0.0

bios_release_date => 04/17/2013

bios_vendor => Xen

bios_version => 4.0.1

blockdevice_xvda_size => 21559771136

blockdevice_xvdb_size => 17179869184

blockdevices => xvda,xvdb
inventory do

format "%40s:tt%20stt%s"

!
fields { [ identity, facts["operatingsystemrelease"], facts["ipaddress"] ] }

end
$ mco inventory -C /epel/ —script inventory.rb

mco01.example.com: 6.5 192.168.2.25

web02.example.com: 6.1 192.168.2.30

mon01.example.com: 6.5 192.168.2.28

db01.example.com: 6.5 192.168.2.40

db02.example.com: 6.3 192.168.2.60

mail02.example.com: 6.5 192.168.2.50
Inventory Reports
Puppet Enterprise Live
Management
Demo time!
Stay away demo daemon!
Questions?
Thank you!

Más contenido relacionado

La actualidad más candente

OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013databus.pro
 
PuppetCamp SEA 1 - Puppet Deployment at OnApp
PuppetCamp SEA 1 - Puppet Deployment  at OnAppPuppetCamp SEA 1 - Puppet Deployment  at OnApp
PuppetCamp SEA 1 - Puppet Deployment at OnAppWalter Heck
 
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet
 
Testing your infrastructure with litmus
Testing your infrastructure with litmusTesting your infrastructure with litmus
Testing your infrastructure with litmusBram Vogelaar
 
Ansible for beginners ...?
Ansible for beginners ...?Ansible for beginners ...?
Ansible for beginners ...?shirou wakayama
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetWalter Heck
 
Europython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & CeleryEuropython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & CeleryMauro Rocco
 
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!Puppet
 
Advanced task management with Celery
Advanced task management with CeleryAdvanced task management with Celery
Advanced task management with CeleryMahendra M
 
Scaling Ruby with Evented I/O - Ruby underground
Scaling Ruby with Evented I/O - Ruby undergroundScaling Ruby with Evented I/O - Ruby underground
Scaling Ruby with Evented I/O - Ruby undergroundOmer Gazit
 
DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)Soshi Nemoto
 
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014Puppet
 
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopPuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopWalter Heck
 
Ansible loves Python, Python Philadelphia meetup
Ansible loves Python, Python Philadelphia meetupAnsible loves Python, Python Philadelphia meetup
Ansible loves Python, Python Philadelphia meetupGreg DeKoenigsberg
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)Soshi Nemoto
 
Autoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadAutoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadBram Vogelaar
 
Hacking ansible
Hacking ansibleHacking ansible
Hacking ansiblebcoca
 

La actualidad más candente (20)

OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013
 
PuppetCamp SEA 1 - Puppet Deployment at OnApp
PuppetCamp SEA 1 - Puppet Deployment  at OnAppPuppetCamp SEA 1 - Puppet Deployment  at OnApp
PuppetCamp SEA 1 - Puppet Deployment at OnApp
 
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
 
Testing your infrastructure with litmus
Testing your infrastructure with litmusTesting your infrastructure with litmus
Testing your infrastructure with litmus
 
Ansible for beginners ...?
Ansible for beginners ...?Ansible for beginners ...?
Ansible for beginners ...?
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
 
Europython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & CeleryEuropython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & Celery
 
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!
Puppet Camp NYC 2014: Build a Modern Infrastructure in 45 min!
 
Advanced task management with Celery
Advanced task management with CeleryAdvanced task management with Celery
Advanced task management with Celery
 
Scaling Ruby with Evented I/O - Ruby underground
Scaling Ruby with Evented I/O - Ruby undergroundScaling Ruby with Evented I/O - Ruby underground
Scaling Ruby with Evented I/O - Ruby underground
 
DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)
 
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
 
Django Celery
Django Celery Django Celery
Django Celery
 
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopPuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
 
Celery with python
Celery with pythonCelery with python
Celery with python
 
Ansible loves Python, Python Philadelphia meetup
Ansible loves Python, Python Philadelphia meetupAnsible loves Python, Python Philadelphia meetup
Ansible loves Python, Python Philadelphia meetup
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)
 
Autoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadAutoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomad
 
Getting Started With Aura
Getting Started With AuraGetting Started With Aura
Getting Started With Aura
 
Hacking ansible
Hacking ansibleHacking ansible
Hacking ansible
 

Destacado

Masterless puppet
Masterless puppetMasterless puppet
Masterless puppetJesus Nunez
 
Build your own clouds with Chef and MCollective
Build your own clouds with Chef and MCollectiveBuild your own clouds with Chef and MCollective
Build your own clouds with Chef and MCollectiveJonathan Weiss
 
Puppet at Scale – Case Study of PayPal's Learnings - PuppetConf 2013
Puppet at Scale – Case Study of PayPal's Learnings - PuppetConf 2013Puppet at Scale – Case Study of PayPal's Learnings - PuppetConf 2013
Puppet at Scale – Case Study of PayPal's Learnings - PuppetConf 2013Puppet
 
Puppet Camp Tokyo 2014: Why we stopped using Puppet Agent Daemon
Puppet Camp Tokyo 2014: Why we stopped using Puppet Agent Daemon Puppet Camp Tokyo 2014: Why we stopped using Puppet Agent Daemon
Puppet Camp Tokyo 2014: Why we stopped using Puppet Agent Daemon Puppet
 
Continuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritageContinuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritageRan Levy
 
PuppetConf track overview: Modern Infrastructure
PuppetConf track overview: Modern InfrastructurePuppetConf track overview: Modern Infrastructure
PuppetConf track overview: Modern InfrastructurePuppet
 
11 Ways to Hack Puppet for Fun and Productivity - Luke Kanies - Velocity 2012
11 Ways to Hack Puppet for Fun and Productivity - Luke Kanies - Velocity 201211 Ways to Hack Puppet for Fun and Productivity - Luke Kanies - Velocity 2012
11 Ways to Hack Puppet for Fun and Productivity - Luke Kanies - Velocity 2012Puppet
 

Destacado (9)

Masterless puppet
Masterless puppetMasterless puppet
Masterless puppet
 
Write php deploy everywhere
Write php deploy everywhereWrite php deploy everywhere
Write php deploy everywhere
 
Build your own clouds with Chef and MCollective
Build your own clouds with Chef and MCollectiveBuild your own clouds with Chef and MCollective
Build your own clouds with Chef and MCollective
 
Puppet at Scale – Case Study of PayPal's Learnings - PuppetConf 2013
Puppet at Scale – Case Study of PayPal's Learnings - PuppetConf 2013Puppet at Scale – Case Study of PayPal's Learnings - PuppetConf 2013
Puppet at Scale – Case Study of PayPal's Learnings - PuppetConf 2013
 
Demystifying puppet
Demystifying puppetDemystifying puppet
Demystifying puppet
 
Puppet Camp Tokyo 2014: Why we stopped using Puppet Agent Daemon
Puppet Camp Tokyo 2014: Why we stopped using Puppet Agent Daemon Puppet Camp Tokyo 2014: Why we stopped using Puppet Agent Daemon
Puppet Camp Tokyo 2014: Why we stopped using Puppet Agent Daemon
 
Continuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritageContinuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritage
 
PuppetConf track overview: Modern Infrastructure
PuppetConf track overview: Modern InfrastructurePuppetConf track overview: Modern Infrastructure
PuppetConf track overview: Modern Infrastructure
 
11 Ways to Hack Puppet for Fun and Productivity - Luke Kanies - Velocity 2012
11 Ways to Hack Puppet for Fun and Productivity - Luke Kanies - Velocity 201211 Ways to Hack Puppet for Fun and Productivity - Luke Kanies - Velocity 2012
11 Ways to Hack Puppet for Fun and Productivity - Luke Kanies - Velocity 2012
 

Similar a Puppet Camp DC 2014: Managing Puppet with MCollective

Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetAchieve Internet
 
Puppet Dashboard at HEP, Cambridge
Puppet Dashboard at HEP, CambridgePuppet Dashboard at HEP, Cambridge
Puppet Dashboard at HEP, CambridgeSantanu Das
 
Bpug mcollective 20140624
Bpug mcollective 20140624Bpug mcollective 20140624
Bpug mcollective 20140624Johan De Wit
 
Active mq Installation and Master Slave setup
Active mq Installation and Master Slave setupActive mq Installation and Master Slave setup
Active mq Installation and Master Slave setupRamakrishna Narkedamilli
 
Puppet slides for intelligrape
Puppet slides for intelligrapePuppet slides for intelligrape
Puppet slides for intelligrapeSharad Aggarwal
 
Islands: Puppet at Bulletproof Networks
Islands: Puppet at Bulletproof NetworksIslands: Puppet at Bulletproof Networks
Islands: Puppet at Bulletproof NetworksLindsay Holmwood
 
Writing & Sharing Great Modules on the Puppet Forge
Writing & Sharing Great Modules on the Puppet ForgeWriting & Sharing Great Modules on the Puppet Forge
Writing & Sharing Great Modules on the Puppet ForgePuppet
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practiceDocker, Inc.
 
Capistrano, Puppet, and Chef
Capistrano, Puppet, and ChefCapistrano, Puppet, and Chef
Capistrano, Puppet, and ChefDavid Benjamin
 
Troubleshooting the Puppet Enterprise Stack
Troubleshooting the Puppet Enterprise StackTroubleshooting the Puppet Enterprise Stack
Troubleshooting the Puppet Enterprise StackPuppet
 
Puppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollective
Puppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollectivePuppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollective
Puppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollectivePuppet
 
Planning to Fail #phpne13
Planning to Fail #phpne13Planning to Fail #phpne13
Planning to Fail #phpne13Dave Gardner
 
Introduction to PowerShell
Introduction to PowerShellIntroduction to PowerShell
Introduction to PowerShellBoulos Dib
 
Writing & Sharing Great Modules - Puppet Camp Boston
Writing & Sharing Great Modules - Puppet Camp BostonWriting & Sharing Great Modules - Puppet Camp Boston
Writing & Sharing Great Modules - Puppet Camp BostonPuppet
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operationsgrim_radical
 
Yapc::Asia 2008 Tokyo - Easy system administration programming with a framewo...
Yapc::Asia 2008 Tokyo - Easy system administration programming with a framewo...Yapc::Asia 2008 Tokyo - Easy system administration programming with a framewo...
Yapc::Asia 2008 Tokyo - Easy system administration programming with a framewo...Gosuke Miyashita
 
Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Simon McCartney
 
Strategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringStrategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringAlessandro Franceschi
 

Similar a Puppet Camp DC 2014: Managing Puppet with MCollective (20)

Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
 
Puppet quick start guide
Puppet quick start guidePuppet quick start guide
Puppet quick start guide
 
Puppet Dashboard at HEP, Cambridge
Puppet Dashboard at HEP, CambridgePuppet Dashboard at HEP, Cambridge
Puppet Dashboard at HEP, Cambridge
 
Bpug mcollective 20140624
Bpug mcollective 20140624Bpug mcollective 20140624
Bpug mcollective 20140624
 
Active mq Installation and Master Slave setup
Active mq Installation and Master Slave setupActive mq Installation and Master Slave setup
Active mq Installation and Master Slave setup
 
Puppet slides for intelligrape
Puppet slides for intelligrapePuppet slides for intelligrape
Puppet slides for intelligrape
 
Islands: Puppet at Bulletproof Networks
Islands: Puppet at Bulletproof NetworksIslands: Puppet at Bulletproof Networks
Islands: Puppet at Bulletproof Networks
 
Writing & Sharing Great Modules on the Puppet Forge
Writing & Sharing Great Modules on the Puppet ForgeWriting & Sharing Great Modules on the Puppet Forge
Writing & Sharing Great Modules on the Puppet Forge
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practice
 
Capistrano, Puppet, and Chef
Capistrano, Puppet, and ChefCapistrano, Puppet, and Chef
Capistrano, Puppet, and Chef
 
Troubleshooting the Puppet Enterprise Stack
Troubleshooting the Puppet Enterprise StackTroubleshooting the Puppet Enterprise Stack
Troubleshooting the Puppet Enterprise Stack
 
Puppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollective
Puppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollectivePuppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollective
Puppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollective
 
java
javajava
java
 
Planning to Fail #phpne13
Planning to Fail #phpne13Planning to Fail #phpne13
Planning to Fail #phpne13
 
Introduction to PowerShell
Introduction to PowerShellIntroduction to PowerShell
Introduction to PowerShell
 
Writing & Sharing Great Modules - Puppet Camp Boston
Writing & Sharing Great Modules - Puppet Camp BostonWriting & Sharing Great Modules - Puppet Camp Boston
Writing & Sharing Great Modules - Puppet Camp Boston
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operations
 
Yapc::Asia 2008 Tokyo - Easy system administration programming with a framewo...
Yapc::Asia 2008 Tokyo - Easy system administration programming with a framewo...Yapc::Asia 2008 Tokyo - Easy system administration programming with a framewo...
Yapc::Asia 2008 Tokyo - Easy system administration programming with a framewo...
 
Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013
 
Strategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringStrategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoring
 

Más de 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
 

Más de 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
 

Último

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyAnusha Are
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456KiaraTiradoMicha
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxalwaysnagaraju26
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 

Último (20)

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 

Puppet Camp DC 2014: Managing Puppet with MCollective

  • 2. Who am I? Infrastructure Engineer Puppet User for 2+ years Puppet Certified Professional Linux user for 10+ years (Slackware!) Metal Head m/
  • 4. The Marionette Collective (MCollective) is a framework to build server orchestration or parallel job execution Works perfectly along side Puppet providing real-time command execution across your infrastructure This is what it really is…
  • 5. Configuration Management Focuses on single node management Great at managing one server at a time
  • 7. MCollective Architecture Servers == Puppet Agent Clients Middleware == Puppet Master Client Middleware Server Server Server Server
  • 8. Servers Systems that can be controlled via MCollective Run the daemon mcollectived puppet agent == mcollectived Multiple Agent Plugins small Ruby libraries that enable custom command execution
  • 9. Clients Clients send and receive requests to servers Admin server for managing MCollective Security and connector plugin mco command-line client interactive usage or in scripts
  • 10. Middleware ! Clients and servers communicate through the middleware system (ActiveMA, RabbitMQ) MCollective uses a publish/subscribe system for all communication Sends and receives messages using STOMP Used for transporting messages between clients and servers
  • 11. Message Flow Broadcast paradigm Messages are sent from the administrator account on the client server to the middleware server and broadcast to all nodes Each agent is both a publisher and subscriber
  • 12. MW MW = Middleware S = Server s s s Client mco
  • 13. Plugins Enable MCollective to execute commands on the entire collective Provide the functionality to use with MCollective puppet agent, service, process, package, etc.
  • 14. Integration with Puppet Pre-installed and configured with Puppet Enterprise Puppet Labs modules for opensource https://github.com/puppetlabs/puppetlabs- mcollective
  • 16. Orchestrating Puppet MCollective can be used to control the Puppet Daemon The performance of a Puppet Master is related to the max concurrent Puppet nodes that are applying a catalog MCollective can determine how many servers are currently enabled and applying catalogs
  • 17. mco puppet $ mco help puppet [14/180] ! Schedule runs, enable, disable and interrogate the Puppet Agent ! Usage: mco puppet [OPTIONS] [FILTERS] <ACTION> [CONCURRENCY|MESSAGE] Usage: mco puppet <count|enable|status|summary> Usage: mco puppet disable [message] Usage: mco puppet runonce [PUPPET OPTIONS] Usage: mco puppet resource type name property1=value property2=value Usage: mco puppet runall [--rerun SECONDS] [PUPPET OPTIONS] ! The ACTION can be one of the following: ! count - return a total count of running, enabled, and disabled nodes enable - enable the Puppet Agent if it was previously disabled disable - disable the Puppet Agent preventing catalog from being applied resource - manage individual resources using the Puppet Type (RAL) system runall - invoke a puppet run on matching nodes, making sure to only run CONCURRENCY nodes at a time runonce - invoke a Puppet run on matching nodes status - shows a short summary about each Puppet Agent status summary - shows resource and run time summaries
  • 18. Controlled Nodes Query and run Puppet from any node that has the client installed: $ mco puppet count Total Puppet nodes: 9 ! Nodes currently enabled: 9 Nodes currently disabled: 0 ! Nodes currently doing puppet runs: 0 Nodes currently stopped: 9 ! Nodes with daemons started: 9 Nodes without daemons started: 0 Daemons started but idling: 9
  • 19. Puppet Status $ mco puppet status ! * [ ============================================================> ] 7 / 7 ! db02.example.com: Currently idling; last completed run 4 minutes 50 seconds ago fpvcs01.example.com: Currently idling; last completed run 24 minutes 44 seconds ago puppet.example.com: Currently idling; last completed run 6 minutes 48 seconds ago mco01.example.com: Currently idling; last completed run 24 minutes 35 seconds ago fp01.example.com: Currently idling; last completed run 4 minutes 55 seconds ago web01.example.net: Currently idling; last completed run 24 minutes 16 seconds ago mail02.example.com: Currently idling; last completed run 3 minutes 17 seconds ago ! Summary of Applying: false = 7 Summary of Daemon Running: running = 7 Summary of Enabled: enabled = 7 Summary of Idling: true = 7 Summary of Status: idling = 7 ! Finished processing 7 / 7 hosts in 96.09 ms
  • 20. Running Puppet Basic Puppet run: $ mco puppet runonce ! A noop run: $ mco puppet runonce —noop ! A run when noop is set: $ mco puppet runonce —no-noop ! A splay run: $ mco puppet runonce —splay — splaylimit 120
  • 21. Filters Host Filters -W, --with FILTER Combined classes and facts filter -S, --select FILTER Compound filter combining facts and classes -F, --wf, --with-fact fact=val Match hosts with a certain fact -C, --wc, --with-class CLASS Match hosts with a certain config management class -A, --wa, --with-agent AGENT Match hosts with a certain agent -I, --wi, --with-identity IDENT Match hosts with a certain configured identity $ mco puppet runonce web01.example.com * [ ============================================================> ] 9 / 9
  • 23. Invoking Actions with filters Facts
 $ mco find -F osfamily=RedHat
 $ mco find —with-fact operatingsystemmajrelease=5 Classes Puppet provides a list of classes applied to a node:
 $ mco find —with-class /apache/
  • 24. Agent Runs $ mco puppet runall 1 2013-01-16 16:14:26: Running all nodes with a concurrency of 1 2013-01-16 16:14:26: Discovering enabled Puppet nodes to manage 2013-01-16 16:14:29: Found 2 enabled nodes 2013-01-16 16:14:32: Currently 1 node applying the catalog; waiting for less than 1 2013-01-16 16:14:37: dev1.example.net schedule status: Started a background Puppet run using the 'puppet agent --onetime --daemonize --color=false' command 2013-01-16 16:14:38: 1 out of 2 hosts left to run in this iteration 2013-01-16 16:14:40: Currently 1 node applying the catalog; waiting for less than 1 2013-01-16 16:14:44: Currently 1 node applying the catalog; waiting for less than 1 2013-01-16 16:14:48: Currently 1 node applying the catalog; waiting for less than 1 2013-01-16 16:14:52: Currently 1 node applying the catalog; waiting for less than 1 2013-01-16 16:14:56: Currently 1 node applying the catalog; waiting for less than 1 2013-01-16 16:15:00: Currently 1 node applying the catalog; waiting for less than 1 2013-01-16 16:15:04: Currently 1 node applying the catalog; waiting for less than 1 2013-01-16 16:15:08: Currently 1 node applying the catalog; waiting for less than 1
  • 27. MCollective Puppet agent can make changes based on the Puppet RAL Puppet Resources
  • 28.
  • 30. Enable and Disable Puppet $ mco puppet disable message=“turn off all the things” $ mco puppet enable
  • 31. Misc Plugin Examples $ mco process list java -I dradis.example.com ! * [ ============================================================> ] 1 / 1 ! dradis.example.com ! PID USER VSZ COMMAND 1380 logstash 1.794 GB /usr/bin/java -Djava.io.tmpdir=/var/lib/logstash -Xmx500m -X 1436 elasticsea 2.298 GB /usr/bin/java -Xms256m -Xmx1g -Xss256k -Djava.awt.headless=t ! ! Summary of The Process List: ! Matched hosts: 1 Matched Processes: 2 Resident Size: 146.453 MB Virtual Size: 4.092 GB ! ! Finished processing 1 / 1 hosts in 113.93 ms
  • 32. $ mco package bash status -I db02.example.com ! * [ ============================================================> ] 1 / 1 ! db02.example.com: bash-4.1.2-15.el6_4.x86_64 ! Summary of Arch: ! x86_64 = 1 ! Summary of Ensure: ! 4.1.2-15.el6_4 = 1 ! ! Finished processing 1 / 1 hosts in 128.67 ms
  • 33. InventoryRetrieve all facts, classes, and agent plugins: ! $mco inventory web01.example.com Agents: discovery filemgr package puppet rpcutil service thanks ! Data Plugins: agent fstat puppet resource service ! Configuration Management Classes: agent epel epel::params mcollective mcollective::common mcollective::common::config mcollective::common::config::connector::activemq mcollective::defaults mcollective::server mcollective::server::config mcollective::server::config::connector::activemq mcollective::server::config::factsource::yaml mcollective::server::config::rpcauditprovider::logfile mcollective::server::config::rpcauthprovider::action_policy mcollective::server::config::securityprovider::ssl mcollective::server::install mcollective::server::service ntp ….. ! Facts: architecture => x86_64 augeasversion => 1.0.0 bios_release_date => 04/17/2013 bios_vendor => Xen bios_version => 4.0.1 blockdevice_xvda_size => 21559771136 blockdevice_xvdb_size => 17179869184 blockdevices => xvda,xvdb
  • 34. inventory do format "%40s:tt%20stt%s" ! fields { [ identity, facts["operatingsystemrelease"], facts["ipaddress"] ] } end $ mco inventory -C /epel/ —script inventory.rb mco01.example.com: 6.5 192.168.2.25 web02.example.com: 6.1 192.168.2.30 mon01.example.com: 6.5 192.168.2.28 db01.example.com: 6.5 192.168.2.40 db02.example.com: 6.3 192.168.2.60 mail02.example.com: 6.5 192.168.2.50 Inventory Reports
  • 36. Demo time! Stay away demo daemon!