SlideShare a Scribd company logo
Marionette Collective
 Resistance is Futile…and stuff.



 Gary Larizza
   Puppet Labs
   @glarizza
What is MCollective


• Framework
          for System
 Management
• Orchestration
“MCollective is like a chainsaw, taped to a
     chainsaw, swinging in the air.”
R.I Pienaar - http://github.com/ripienaar
What Problems Does This Solve?

• System   Discovery
• Inventory   Collection
• Task   Execution
• Configuration/Package     Management Steroids
WHY MCollective?
• No centralized
 inventory
• Thousands   of Nodes
• Framework   for
 Creation
• Asynchronous
Many Servers - One Client

• Servers: PROVIDE
 data
• Client: RECEIVES
 information/data
The Big Black Box?

                   Message Queue
MCollective

              RPC     Topic
 Client
                                 Middleware
          Broker
Agent               Collective      Server
The Big Black Box?
The Big Black Box?
• Sender

• Receiver

• Request    (The Message)
• Message Transfer

• Response    (Also A Message)
Middleware




     ‘client’




‘servers’
                Collective
Middleware




     ‘client’




‘servers’
                       Collective


            mco ping --with-fact IsMac=true
Middleware

                         Request

     ‘client’




‘servers’
                       Collective


            mco ping --with-fact IsMac=true
Middleware

                         Request

     ‘client’




‘servers’
                       Collective


            mco ping --with-fact IsMac=true
Middleware




     ‘client’
                       Reply



‘servers’
                       Collective


            mco ping --with-fact IsMac=true
Middleware




     ‘client’
                       Reply



‘servers’
                       Collective


            mco ping --with-fact IsMac=true
What is Middleware?
• The
    Software that handles
 communication between services.

• The SERVICE that transfers the
 ‘request’ and the ‘response’.

• No    logic ITSELF - like TCP/IP

• SMTP Analogy:  Think of it as a mail
 server with routing rules.

• IRC Analogy:    The IRC server
What’s a Message Queue?

• Datastore that applications
 can write-to or read-from.

• SMTP Analogy: Like the mail
 queue on your smtp server.

• The individual chat room in
 the IRC analogy.
So what is MCollective?

• The   software that sends/receives messages over the queue

• ‘Agents’ perform   actions on the system based on message
 content

• IRC Analogy: People   in the Chatroom

• SMTP Analogy: Your    Email Client and You
Agents?

• Agents  execute commands on
 all your ‘Server’ nodes

• The  response from the agent     home$ rm -Rf /
 is returned to the ‘Client’

• MCollectiveprovides a built-in
 filtering mechanism
Writing Agents
              Simple (as) RPC

• ‘SimpleRPC’ is   the framework we use for creating
 agents
• Abstracts   common/difficult tasks (discovery,
 filtering)
• Agents   written in Ruby
Simple Agent
module MCollective
  
  module Agent
    
    class Printer<RPC::Agent
          Printer
    
      metadata :name        => 'printer',
            
               :description => 'Printers and printing',
        
               :author      => 'Gary Larizza',
       
               :license     => 'BSD',
        
               :version     => '0.1',
              :url         =>'http://puppetlabs.com',
              
               :timeout     => 100

      
      action 'list' 
             'list' do
        
        reply[:output] = `lpstat -a | cut -d ' ' -f 1
                          lpstat                    1`.split("n")
      
      end
    
    end
  
  end
end
Simple Agent
module MCollective
  
  module Agent
    
    class Printer<RPC::Agent
          Printer
    
      metadata :name        => 'printer',
            
               :description => 'Printers and printing',
        
               :author      => 'Gary Larizza',
       
               :license     => 'BSD',
        
               :version     => '0.1',
              :url         =>'http://puppetlabs.com',
              
               :timeout     => 100

      
      action 'list' 
             'list' do
        
        reply[:output] = `lpstat -a | cut -d ' ' -f 1
                          lpstat                    1`.split("n")
      
      end
    
    end
  
  end
end
Simple Agent
module MCollective
  
  module Agent
                                  Agent Name
    
    class Printer<RPC::Agent
          Printer
    
      metadata :name        => 'printer',
            
               :description => 'Printers and printing',
        
               :author      => 'Gary Larizza',
       
               :license     => 'BSD',
        
               :version     => '0.1',
              :url         =>'http://puppetlabs.com',
              
               :timeout     => 100

      
      action 'list' 
             'list' do
        
        reply[:output] = `lpstat -a | cut -d ' ' -f 1
                          lpstat                    1`.split("n")
      
      end
    
    end
  
  end
end
Simple Agent
module MCollective
  
  module Agent
                                  Agent Name
    
    class Printer<RPC::Agent
          Printer
    
      metadata :name        => 'printer',
            
               :description => 'Printers and printing',
        
               :author      => 'Gary Larizza',
       
               :license     => 'BSD',

     Action Name
        
               :version     => '0.1',
              :url         =>'http://puppetlabs.com',
              
               :timeout     => 100

      
      action 'list' 
             'list' do
        
        reply[:output] = `lpstat -a | cut -d ' ' -f 1
                          lpstat                    1`.split("n")
      
      end
    
    end
  
  end
end
Simple Agent
module MCollective
  
  module Agent
                                  Agent Name
    
    class Printer<RPC::Agent
          Printer
    
      metadata :name        => 'printer',
            
               :description => 'Printers and printing',
        
               :author      => 'Gary Larizza',
       
               :license     => 'BSD',

     Action Name
        
                                Command to be Run
               :version     => '0.1',
              :url         =>'http://puppetlabs.com',
              
               :timeout     => 100

      
      action 'list' 
             'list' do
        
        reply[:output] = `lpstat -a | cut -d ' ' -f 1
                          lpstat                    1`.split("n")
      
      end
    
    end
  
  end
end
Simple Agent
module MCollective
  
  module Agent
    
    class Printer<RPC::Agent
          Printer
    
      metadata :name        => 'printer',
            
               :description => 'Printers and printing',
        
               :author      => 'Gary Larizza',
       
               :license     => 'BSD',
        
               :version     => '0.1',
              :url         =>'http://puppetlabs.com',
              
               :timeout     => 100

      
      action 'list' 
             'list' do
        
        reply[:output] = `lpstat -a | cut -d ' ' -f 1
                          lpstat                    1`.split("n")
      
      end
    
    end
  
  end
end
Running an Agent

mco rpc printer list --with-fact location=HHS


 Agent Name           Filter

        Action Name             Fact Filter
Output
Determining the amount of hosts matching filter for 2 seconds .... 89
* [ ============================================================> ] 89 / 89



lab15-hsimaclab-hhs
  result: ["psm_HHS_201Lab",
          "psm_HHS_Bookroom",
          "psm_HHS_Media_Center",
          "psm_HHS_Office_9040",
          "psm_HHS_Office_9050"]

lab12-hsimaclab-hhs
  result: ["psm_HHS_201Lab",
          "psm_HHS_Bookroom",
          "psm_HHS_Media_Center",
          "psm_HHS_Office_9040",
          "psm_HHS_Office_9050"]
Leverage the Power of Puppet

• Puppet    NOT necessary for MCollective…but RAL is awesome!

• Use   Resource Abstraction Layer:

 • Start/Stop   Services

 • Query     system resources (users, groups, packages, etc...)

 • Puppet    NEED NOT be actively running!

 • Filter   Nodes based on Puppet Classes
Don’t Forget Facter!

• Facter    facts available as Metadata
• Filter   nodes based on Facts
• Query  fact values across
 collectives
mco facts location
Report for fact: location

     HHS                           found 91 times
     MJHS                          found 8 times
     SHEL                          found 20 times
     WIS                           found 11 times

Finished processing 131 / 131 hosts in 3185.64 ms
Centralized Inventory with
            Decentralization

• No    CENTRAL data store for Inventory
• Use   Facts/Metadata/Classes to compile list of nodes
• Query Warranty, Location, Purchase      Date
• Export   live data for archival (website, reports, wiki)
Messaging across Locations
Plug-able and Customizable!
• Plugins:

 • Custom Agents

 • Security

 • Facts

• MCollective is a platform on which we’ve shipped
 a set of rudimentary programs.
Picture Citations
•   http://www.omgot.org/forums/cgi-bin/album/album.pl?photo=RicsGhost/
    matt_Avatar.JPG;photo_height=250

•   http://www.imdb.com/media/rm1419216896/nm0422710

•   http://www.yourcaketopper.co.uk/pages/meerkats-cake-topper.htm

•   http://www.flickr.com/photos/43103276@N07/5063150491/in/
    photostream

•   http://withfriendship.com/user/mithunss/voltron.php

•   http://screenrant.com/voltron-movie-new-writer-pauly-30032/
Picture Citations
•   http://en.wikipedia.org/wiki/File:Norad-control-center.jpg

•   http://www.fotothing.com/reemadreaming/photo/
    1a1fccd052d4d0207b1976b0ac49c451/

•   http://knowyourmeme.com/memes/internet-husband#.TquCd5w7c44

•   http://www.easyexport.us/cars-for-sale/
    SALVAGE_CERTIFICATE_BIOHAZARDOUS_CHEMICAL_2001_VOL
    VO_S60_21570521/image/1

•   http://apple.wikia.com/wiki/Apple_Remote_Desktop

More Related Content

What's hot

Testing your infrastructure with litmus
Testing your infrastructure with litmusTesting your infrastructure with litmus
Testing your infrastructure with litmus
Bram Vogelaar
 
Build Automation 101
Build Automation 101Build Automation 101
Build Automation 101
Martin Jackson
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
Walter Heck
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 Edition
Joshua Thijssen
 
The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016
effie mouzeli
 
Automated Java Deployments With Rpm
Automated Java Deployments With RpmAutomated Java Deployments With Rpm
Automated Java Deployments With Rpm
Martin Jackson
 
Puppet Performance Profiling - CM Camp 2015
Puppet Performance Profiling - CM Camp 2015Puppet Performance Profiling - CM Camp 2015
Puppet Performance Profiling - CM Camp 2015
ripienaar
 
IT Infrastructure Through The Public Network Challenges And Solutions
IT Infrastructure Through The Public Network   Challenges And SolutionsIT Infrastructure Through The Public Network   Challenges And Solutions
IT Infrastructure Through The Public Network Challenges And Solutions
Martin Jackson
 
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
Walter Heck
 
Fixing Growing Pains With Puppet Data Patterns
Fixing Growing Pains With Puppet Data PatternsFixing Growing Pains With Puppet Data Patterns
Fixing Growing Pains With Puppet Data Patterns
Martin Jackson
 
Autoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadAutoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomad
Bram Vogelaar
 
Bootstrapping multidc observability stack
Bootstrapping multidc observability stackBootstrapping multidc observability stack
Bootstrapping multidc observability stack
Bram Vogelaar
 
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
William Yeh
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slidesharetomcopeland
 
How we use and deploy Varnish at Opera
How we use and deploy Varnish at OperaHow we use and deploy Varnish at Opera
How we use and deploy Varnish at Opera
Cosimo Streppone
 
OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013databus.pro
 
Puppet and the HashiStack
Puppet and the HashiStackPuppet and the HashiStack
Puppet and the HashiStack
Bram Vogelaar
 
DevOps Hackathon - Session 1: Vagrant
DevOps Hackathon - Session 1: VagrantDevOps Hackathon - Session 1: Vagrant
DevOps Hackathon - Session 1: Vagrant
Antons Kranga
 
Observability with Consul Connect
Observability with Consul ConnectObservability with Consul Connect
Observability with Consul Connect
Bram Vogelaar
 
DevOps hackathon Session 2: Basics of Chef
DevOps hackathon Session 2: Basics of ChefDevOps hackathon Session 2: Basics of Chef
DevOps hackathon Session 2: Basics of Chef
Antons Kranga
 

What's hot (20)

Testing your infrastructure with litmus
Testing your infrastructure with litmusTesting your infrastructure with litmus
Testing your infrastructure with litmus
 
Build Automation 101
Build Automation 101Build Automation 101
Build Automation 101
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 Edition
 
The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016
 
Automated Java Deployments With Rpm
Automated Java Deployments With RpmAutomated Java Deployments With Rpm
Automated Java Deployments With Rpm
 
Puppet Performance Profiling - CM Camp 2015
Puppet Performance Profiling - CM Camp 2015Puppet Performance Profiling - CM Camp 2015
Puppet Performance Profiling - CM Camp 2015
 
IT Infrastructure Through The Public Network Challenges And Solutions
IT Infrastructure Through The Public Network   Challenges And SolutionsIT Infrastructure Through The Public Network   Challenges And Solutions
IT Infrastructure Through The Public Network Challenges And Solutions
 
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
 
Fixing Growing Pains With Puppet Data Patterns
Fixing Growing Pains With Puppet Data PatternsFixing Growing Pains With Puppet Data Patterns
Fixing Growing Pains With Puppet Data Patterns
 
Autoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadAutoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomad
 
Bootstrapping multidc observability stack
Bootstrapping multidc observability stackBootstrapping multidc observability stack
Bootstrapping multidc observability stack
 
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshare
 
How we use and deploy Varnish at Opera
How we use and deploy Varnish at OperaHow we use and deploy Varnish at Opera
How we use and deploy Varnish at Opera
 
OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013OpenNebula and SaltStack - OpenNebulaConf 2013
OpenNebula and SaltStack - OpenNebulaConf 2013
 
Puppet and the HashiStack
Puppet and the HashiStackPuppet and the HashiStack
Puppet and the HashiStack
 
DevOps Hackathon - Session 1: Vagrant
DevOps Hackathon - Session 1: VagrantDevOps Hackathon - Session 1: Vagrant
DevOps Hackathon - Session 1: Vagrant
 
Observability with Consul Connect
Observability with Consul ConnectObservability with Consul Connect
Observability with Consul Connect
 
DevOps hackathon Session 2: Basics of Chef
DevOps hackathon Session 2: Basics of ChefDevOps hackathon Session 2: Basics of Chef
DevOps hackathon Session 2: Basics of Chef
 

Viewers also liked

Puppet DB: Higher-Order Puppet - Deepak Giridharagopal - PuppetCamp LA '12
Puppet DB: Higher-Order Puppet - Deepak Giridharagopal - PuppetCamp LA '12Puppet DB: Higher-Order Puppet - Deepak Giridharagopal - PuppetCamp LA '12
Puppet DB: Higher-Order Puppet - Deepak Giridharagopal - PuppetCamp LA '12
Puppet
 
Intro to Backbone.js by Azat Mardanov for General Assembly
Intro to Backbone.js by Azat Mardanov for General AssemblyIntro to Backbone.js by Azat Mardanov for General Assembly
Intro to Backbone.js by Azat Mardanov for General Assembly
Azat Mardanov
 
AngularJS vs. Ember.js vs. Backbone.js
AngularJS vs. Ember.js vs. Backbone.jsAngularJS vs. Ember.js vs. Backbone.js
AngularJS vs. Ember.js vs. Backbone.js
Mark
 
Backbone And Marionette : Take Over The World
Backbone And Marionette : Take Over The WorldBackbone And Marionette : Take Over The World
Backbone And Marionette : Take Over The World
harshit040591
 
Introduction to Backbone.js
Introduction to Backbone.jsIntroduction to Backbone.js
Introduction to Backbone.js
Roman Kalyakin
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
Knoldus Inc.
 
Introduction to Backbone.js
Introduction to Backbone.jsIntroduction to Backbone.js
Introduction to Backbone.js
Jonathan Weiss
 
Introduction à Marionette
Introduction à MarionetteIntroduction à Marionette
Introduction à Marionette
Raphaël Lemaire
 
Beautiful Maintainable ModularJavascript Codebase with RequireJS - HelsinkiJ...
 Beautiful Maintainable ModularJavascript Codebase with RequireJS - HelsinkiJ... Beautiful Maintainable ModularJavascript Codebase with RequireJS - HelsinkiJ...
Beautiful Maintainable ModularJavascript Codebase with RequireJS - HelsinkiJ...
Mikko Ohtamaa
 
Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]
Andrii Lundiak
 
Backbone/Marionette introduction
Backbone/Marionette introductionBackbone/Marionette introduction
Backbone/Marionette introduction
matt-briggs
 
Introduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.jsIntroduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.js
Return on Intelligence
 
Marionette talk 2016
Marionette talk 2016Marionette talk 2016
Marionette talk 2016
Kseniya Redunova
 
Client-side MVC with Backbone.js
Client-side MVC with Backbone.js Client-side MVC with Backbone.js
Client-side MVC with Backbone.js
iloveigloo
 
introduction to Marionette.js (jscafe14)
introduction to Marionette.js (jscafe14)introduction to Marionette.js (jscafe14)
introduction to Marionette.js (jscafe14)
Ryuma Tsukano
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
VO Tho
 
Marionette: the Backbone framework
Marionette: the Backbone frameworkMarionette: the Backbone framework
Marionette: the Backbone framework
frontendne
 
RequireJS
RequireJSRequireJS
Introduction to Backbone.js
Introduction to Backbone.jsIntroduction to Backbone.js
Introduction to Backbone.jsPragnesh Vaghela
 

Viewers also liked (20)

Puppet DB: Higher-Order Puppet - Deepak Giridharagopal - PuppetCamp LA '12
Puppet DB: Higher-Order Puppet - Deepak Giridharagopal - PuppetCamp LA '12Puppet DB: Higher-Order Puppet - Deepak Giridharagopal - PuppetCamp LA '12
Puppet DB: Higher-Order Puppet - Deepak Giridharagopal - PuppetCamp LA '12
 
Intro to Backbone.js by Azat Mardanov for General Assembly
Intro to Backbone.js by Azat Mardanov for General AssemblyIntro to Backbone.js by Azat Mardanov for General Assembly
Intro to Backbone.js by Azat Mardanov for General Assembly
 
AngularJS vs. Ember.js vs. Backbone.js
AngularJS vs. Ember.js vs. Backbone.jsAngularJS vs. Ember.js vs. Backbone.js
AngularJS vs. Ember.js vs. Backbone.js
 
Backbone And Marionette : Take Over The World
Backbone And Marionette : Take Over The WorldBackbone And Marionette : Take Over The World
Backbone And Marionette : Take Over The World
 
Introduction to Backbone.js
Introduction to Backbone.jsIntroduction to Backbone.js
Introduction to Backbone.js
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
Introduction to Backbone.js
Introduction to Backbone.jsIntroduction to Backbone.js
Introduction to Backbone.js
 
Introduction à Marionette
Introduction à MarionetteIntroduction à Marionette
Introduction à Marionette
 
MVC & backbone.js
MVC & backbone.jsMVC & backbone.js
MVC & backbone.js
 
Beautiful Maintainable ModularJavascript Codebase with RequireJS - HelsinkiJ...
 Beautiful Maintainable ModularJavascript Codebase with RequireJS - HelsinkiJ... Beautiful Maintainable ModularJavascript Codebase with RequireJS - HelsinkiJ...
Beautiful Maintainable ModularJavascript Codebase with RequireJS - HelsinkiJ...
 
Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]
 
Backbone/Marionette introduction
Backbone/Marionette introductionBackbone/Marionette introduction
Backbone/Marionette introduction
 
Introduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.jsIntroduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.js
 
Marionette talk 2016
Marionette talk 2016Marionette talk 2016
Marionette talk 2016
 
Client-side MVC with Backbone.js
Client-side MVC with Backbone.js Client-side MVC with Backbone.js
Client-side MVC with Backbone.js
 
introduction to Marionette.js (jscafe14)
introduction to Marionette.js (jscafe14)introduction to Marionette.js (jscafe14)
introduction to Marionette.js (jscafe14)
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
Marionette: the Backbone framework
Marionette: the Backbone frameworkMarionette: the Backbone framework
Marionette: the Backbone framework
 
RequireJS
RequireJSRequireJS
RequireJS
 
Introduction to Backbone.js
Introduction to Backbone.jsIntroduction to Backbone.js
Introduction to Backbone.js
 

Similar to Introduction to Marionette Collective

Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano
 
Incrementalism: An Industrial Strategy For Adopting Modern Automation
Incrementalism: An Industrial Strategy For Adopting Modern AutomationIncrementalism: An Industrial Strategy For Adopting Modern Automation
Incrementalism: An Industrial Strategy For Adopting Modern Automation
Sean Chittenden
 
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
Puppet
 
Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...
Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...
Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...
Amazon Web Services
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
Wesley Beary
 
Sinatra for REST services
Sinatra for REST servicesSinatra for REST services
Sinatra for REST services
Emanuele DelBono
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
Wesley Beary
 
Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)
Yan Cui
 
Pycon - Python for ethical hackers
Pycon - Python for ethical hackers Pycon - Python for ethical hackers
Pycon - Python for ethical hackers
Mohammad Reza Kamalifard
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloud
Kyle Rames
 
Hunting for APT in network logs workshop presentation
Hunting for APT in network logs workshop presentationHunting for APT in network logs workshop presentation
Hunting for APT in network logs workshop presentation
OlehLevytskyi1
 
Introducing envoy-based service mesh at Booking.com
Introducing envoy-based service mesh at Booking.comIntroducing envoy-based service mesh at Booking.com
Introducing envoy-based service mesh at Booking.com
Ivan Kruglov
 
Serverless in production, an experience report (linuxing in london)
Serverless in production, an experience report (linuxing in london)Serverless in production, an experience report (linuxing in london)
Serverless in production, an experience report (linuxing in london)
Yan Cui
 
Network Automation with Salt and NAPALM: Introuction
Network Automation with Salt and NAPALM: IntrouctionNetwork Automation with Salt and NAPALM: Introuction
Network Automation with Salt and NAPALM: Introuction
Cloudflare
 
Oracle Drivers configuration for High Availability
Oracle Drivers configuration for High AvailabilityOracle Drivers configuration for High Availability
Oracle Drivers configuration for High Availability
Ludovico Caldara
 
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine YardHow I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
SV Ruby on Rails Meetup
 
Actors or Not: Async Event Architectures
Actors or Not: Async Event ArchitecturesActors or Not: Async Event Architectures
Actors or Not: Async Event Architectures
Yaroslav Tkachenko
 
Integrating Consul and Puppet
Integrating Consul and PuppetIntegrating Consul and Puppet
Integrating Consul and Puppet
OnyxPoint Inc
 
Integrating Consul and Puppet
Integrating Consul and PuppetIntegrating Consul and Puppet
Integrating Consul and Puppet
Dylan Cochran
 

Similar to Introduction to Marionette Collective (20)

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
 
Incrementalism: An Industrial Strategy For Adopting Modern Automation
Incrementalism: An Industrial Strategy For Adopting Modern AutomationIncrementalism: An Industrial Strategy For Adopting Modern Automation
Incrementalism: An Industrial Strategy For Adopting Modern Automation
 
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
 
Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...
Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...
Monitoring as Code: Getting to Monitoring-Driven Development - DEV314 - re:In...
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
 
Sinatra for REST services
Sinatra for REST servicesSinatra for REST services
Sinatra for REST services
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
 
Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)
 
Pycon - Python for ethical hackers
Pycon - Python for ethical hackers Pycon - Python for ethical hackers
Pycon - Python for ethical hackers
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloud
 
Hunting for APT in network logs workshop presentation
Hunting for APT in network logs workshop presentationHunting for APT in network logs workshop presentation
Hunting for APT in network logs workshop presentation
 
Introducing envoy-based service mesh at Booking.com
Introducing envoy-based service mesh at Booking.comIntroducing envoy-based service mesh at Booking.com
Introducing envoy-based service mesh at Booking.com
 
Serverless in production, an experience report (linuxing in london)
Serverless in production, an experience report (linuxing in london)Serverless in production, an experience report (linuxing in london)
Serverless in production, an experience report (linuxing in london)
 
The Art of Grey-Box Attack
The Art of Grey-Box AttackThe Art of Grey-Box Attack
The Art of Grey-Box Attack
 
Network Automation with Salt and NAPALM: Introuction
Network Automation with Salt and NAPALM: IntrouctionNetwork Automation with Salt and NAPALM: Introuction
Network Automation with Salt and NAPALM: Introuction
 
Oracle Drivers configuration for High Availability
Oracle Drivers configuration for High AvailabilityOracle Drivers configuration for High Availability
Oracle Drivers configuration for High Availability
 
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine YardHow I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
 
Actors or Not: Async Event Architectures
Actors or Not: Async Event ArchitecturesActors or Not: Async Event Architectures
Actors or Not: Async Event Architectures
 
Integrating Consul and Puppet
Integrating Consul and PuppetIntegrating Consul and Puppet
Integrating Consul and Puppet
 
Integrating Consul and Puppet
Integrating Consul and PuppetIntegrating Consul and Puppet
Integrating Consul and Puppet
 

More from Puppet

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

More from Puppet (20)

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

Recently uploaded

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 

Recently uploaded (20)

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 

Introduction to Marionette Collective

  • 1. Marionette Collective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza
  • 2. What is MCollective • Framework for System Management • Orchestration
  • 3.
  • 4. “MCollective is like a chainsaw, taped to a chainsaw, swinging in the air.”
  • 5.
  • 6. R.I Pienaar - http://github.com/ripienaar
  • 7. What Problems Does This Solve? • System Discovery • Inventory Collection • Task Execution • Configuration/Package Management Steroids
  • 8. WHY MCollective? • No centralized inventory • Thousands of Nodes • Framework for Creation • Asynchronous
  • 9. Many Servers - One Client • Servers: PROVIDE data • Client: RECEIVES information/data
  • 10. The Big Black Box? Message Queue MCollective RPC Topic Client Middleware Broker Agent Collective Server
  • 12. The Big Black Box? • Sender • Receiver • Request (The Message) • Message Transfer • Response (Also A Message)
  • 13. Middleware ‘client’ ‘servers’ Collective
  • 14. Middleware ‘client’ ‘servers’ Collective mco ping --with-fact IsMac=true
  • 15. Middleware Request ‘client’ ‘servers’ Collective mco ping --with-fact IsMac=true
  • 16. Middleware Request ‘client’ ‘servers’ Collective mco ping --with-fact IsMac=true
  • 17. Middleware ‘client’ Reply ‘servers’ Collective mco ping --with-fact IsMac=true
  • 18. Middleware ‘client’ Reply ‘servers’ Collective mco ping --with-fact IsMac=true
  • 19. What is Middleware? • The Software that handles communication between services. • The SERVICE that transfers the ‘request’ and the ‘response’. • No logic ITSELF - like TCP/IP • SMTP Analogy: Think of it as a mail server with routing rules. • IRC Analogy: The IRC server
  • 20. What’s a Message Queue? • Datastore that applications can write-to or read-from. • SMTP Analogy: Like the mail queue on your smtp server. • The individual chat room in the IRC analogy.
  • 21. So what is MCollective? • The software that sends/receives messages over the queue • ‘Agents’ perform actions on the system based on message content • IRC Analogy: People in the Chatroom • SMTP Analogy: Your Email Client and You
  • 22. Agents? • Agents execute commands on all your ‘Server’ nodes • The response from the agent home$ rm -Rf / is returned to the ‘Client’ • MCollectiveprovides a built-in filtering mechanism
  • 23. Writing Agents Simple (as) RPC • ‘SimpleRPC’ is the framework we use for creating agents • Abstracts common/difficult tasks (discovery, filtering) • Agents written in Ruby
  • 24. Simple Agent module MCollective      module Agent          class Printer<RPC::Agent  Printer            metadata :name        => 'printer',                             :description => 'Printers and printing',                         :author      => 'Gary Larizza',                        :license     => 'BSD',                         :version     => '0.1',               :url         =>'http://puppetlabs.com',                               :timeout     => 100              action 'list'  'list' do                  reply[:output] = `lpstat -a | cut -d ' ' -f 1 lpstat 1`.split("n")              end          end      end end
  • 25. Simple Agent module MCollective      module Agent          class Printer<RPC::Agent  Printer            metadata :name        => 'printer',                             :description => 'Printers and printing',                         :author      => 'Gary Larizza',                        :license     => 'BSD',                         :version     => '0.1',               :url         =>'http://puppetlabs.com',                               :timeout     => 100              action 'list'  'list' do                  reply[:output] = `lpstat -a | cut -d ' ' -f 1 lpstat 1`.split("n")              end          end      end end
  • 26. Simple Agent module MCollective      module Agent Agent Name          class Printer<RPC::Agent  Printer            metadata :name        => 'printer',                             :description => 'Printers and printing',                         :author      => 'Gary Larizza',                        :license     => 'BSD',                         :version     => '0.1',               :url         =>'http://puppetlabs.com',                               :timeout     => 100              action 'list'  'list' do                  reply[:output] = `lpstat -a | cut -d ' ' -f 1 lpstat 1`.split("n")              end          end      end end
  • 27. Simple Agent module MCollective      module Agent Agent Name          class Printer<RPC::Agent  Printer            metadata :name        => 'printer',                             :description => 'Printers and printing',                         :author      => 'Gary Larizza',                        :license     => 'BSD', Action Name                         :version     => '0.1',               :url         =>'http://puppetlabs.com',                               :timeout     => 100              action 'list'  'list' do                  reply[:output] = `lpstat -a | cut -d ' ' -f 1 lpstat 1`.split("n")              end          end      end end
  • 28. Simple Agent module MCollective      module Agent Agent Name          class Printer<RPC::Agent  Printer            metadata :name        => 'printer',                             :description => 'Printers and printing',                         :author      => 'Gary Larizza',                        :license     => 'BSD', Action Name          Command to be Run                :version     => '0.1',               :url         =>'http://puppetlabs.com',                               :timeout     => 100              action 'list'  'list' do                  reply[:output] = `lpstat -a | cut -d ' ' -f 1 lpstat 1`.split("n")              end          end      end end
  • 29. Simple Agent module MCollective      module Agent          class Printer<RPC::Agent  Printer            metadata :name        => 'printer',                             :description => 'Printers and printing',                         :author      => 'Gary Larizza',                        :license     => 'BSD',                         :version     => '0.1',               :url         =>'http://puppetlabs.com',                               :timeout     => 100              action 'list'  'list' do                  reply[:output] = `lpstat -a | cut -d ' ' -f 1 lpstat 1`.split("n")              end          end      end end
  • 30. Running an Agent mco rpc printer list --with-fact location=HHS Agent Name Filter Action Name Fact Filter
  • 31. Output Determining the amount of hosts matching filter for 2 seconds .... 89 * [ ============================================================> ] 89 / 89 lab15-hsimaclab-hhs result: ["psm_HHS_201Lab", "psm_HHS_Bookroom", "psm_HHS_Media_Center", "psm_HHS_Office_9040", "psm_HHS_Office_9050"] lab12-hsimaclab-hhs result: ["psm_HHS_201Lab", "psm_HHS_Bookroom", "psm_HHS_Media_Center", "psm_HHS_Office_9040", "psm_HHS_Office_9050"]
  • 32. Leverage the Power of Puppet • Puppet NOT necessary for MCollective…but RAL is awesome! • Use Resource Abstraction Layer: • Start/Stop Services • Query system resources (users, groups, packages, etc...) • Puppet NEED NOT be actively running! • Filter Nodes based on Puppet Classes
  • 33. Don’t Forget Facter! • Facter facts available as Metadata • Filter nodes based on Facts • Query fact values across collectives
  • 34. mco facts location Report for fact: location HHS found 91 times MJHS found 8 times SHEL found 20 times WIS found 11 times Finished processing 131 / 131 hosts in 3185.64 ms
  • 35. Centralized Inventory with Decentralization • No CENTRAL data store for Inventory • Use Facts/Metadata/Classes to compile list of nodes • Query Warranty, Location, Purchase Date • Export live data for archival (website, reports, wiki)
  • 37. Plug-able and Customizable! • Plugins: • Custom Agents • Security • Facts • MCollective is a platform on which we’ve shipped a set of rudimentary programs.
  • 38. Picture Citations • http://www.omgot.org/forums/cgi-bin/album/album.pl?photo=RicsGhost/ matt_Avatar.JPG;photo_height=250 • http://www.imdb.com/media/rm1419216896/nm0422710 • http://www.yourcaketopper.co.uk/pages/meerkats-cake-topper.htm • http://www.flickr.com/photos/43103276@N07/5063150491/in/ photostream • http://withfriendship.com/user/mithunss/voltron.php • http://screenrant.com/voltron-movie-new-writer-pauly-30032/
  • 39. Picture Citations • http://en.wikipedia.org/wiki/File:Norad-control-center.jpg • http://www.fotothing.com/reemadreaming/photo/ 1a1fccd052d4d0207b1976b0ac49c451/ • http://knowyourmeme.com/memes/internet-husband#.TquCd5w7c44 • http://www.easyexport.us/cars-for-sale/ SALVAGE_CERTIFICATE_BIOHAZARDOUS_CHEMICAL_2001_VOL VO_S60_21570521/image/1 • http://apple.wikia.com/wiki/Apple_Remote_Desktop