+ All Categories
Home > Documents > MCollective -...

MCollective -...

Date post: 13-Mar-2018
Category:
Upload: dotruc
View: 218 times
Download: 4 times
Share this document with a friend
46
MCollective Resistance is Futile…and stu. Gary Larizza Puppet Labs @glarizza
Transcript
Page 1: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

MCollectiveResistance is Futile…and stuff.

Gary LarizzaPuppet Labs@glarizza

Page 2: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Just Do It.

Page 3: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Just thesemachines

Page 4: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Tell meabout it

Page 5: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Don’t takeforever

Page 6: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

MCollective?

• Framework for System Management

•Orchestration

Page 7: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

MCollective?

• Framework for System Management

•Orchestration

Page 8: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

What Problems Does This Solve?

• System discovery

• Task execution

• Inventory/Data collection

• Configuration/Package management steroids

Page 9: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza
Page 10: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

“MCollective is like a chainsaw, taped to a chainsaw, swinging in the air.”

Page 11: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza
Page 12: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

R.I Pienaar - http://github.com/ripienaar

Page 13: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

WHY MCollective?

•No centralized inventory

• Thousands of Nodes

• Framework for Creation

Page 14: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Many Servers - One Client

• Servers: PROVIDE data

• Client: RECEIVES information/data

Page 15: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

The Big Black Box?Message Queue

MCollective

MiddlewareBroker

Topic

CollectiveAgent

Client

Server

RPC

Page 16: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

The Big Black Box?

Page 17: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

The Big Black Box?• Sender/Receiver

•Request (The Message)

•Message Transfer

•Response (Also A Message)

Page 18: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

How Does it Work?(in the simplest fashion ever, please)

Page 19: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Collective

Message Queue

‘client’

‘servers’

Page 20: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Collective

mco ping --with-fact sevenofnine=true

Message Queue

‘client’

‘servers’

Page 21: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Collective

mco ping --with-fact sevenofnine=true

Message Queue

‘client’

‘servers’

Page 22: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Collective

mco ping --with-fact sevenofnine=true

Message Queue

‘client’

‘servers’

Page 23: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Collective

mco ping --with-fact sevenofnine=true

Message Queue

‘client’

‘servers’

Page 24: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Collective

mco ping --with-fact sevenofnine=true

Message Queue

‘client’

‘servers’

Page 25: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Middleware?• The Software that handles

communication between services.

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

• No logic ITSELF - like TCP/IP

Page 26: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

What’s a Message Queue?

• Data store 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.

We’re British; we queue!

Page 27: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Agents?• File containing Actions

•Actions = commands to execute

• Filtering for free

home$ rm -Rf /

Page 28: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Agents:Simple (as) RPC

• ‘SimpleRPC’ is the framework we use for creating agents

• Abstracts common/difficult tasks (discovery, filtering)

• Agents written in Ruby

• Shell-out for exection

Page 29: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Simple Agent

        Printer                                                                  

       'list'          lpstat -a | cut -d ' ' -f 1            

module MCollective  module Agent    class Printer<RPC::Agent      metadata :name        => 'printer',               :description => 'Printers and printing',               :author      => 'Gary Larizza',               :license     => 'BSD',               :version     => '0.1',               :url         =>'http://puppetlabs.com',               :timeout     => 100

      action 'list' do        reply[:output] = `lpstat -a | cut -d ' ' -f 1`.split      end    end  endend

Page 30: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Simple Agent

        Printer                                                                  

       'list'          lpstat -a | cut -d ' ' -f 1            

module MCollective  module Agent    class Printer<RPC::Agent      metadata :name        => 'printer',               :description => 'Printers and printing',               :author      => 'Gary Larizza',               :license     => 'BSD',               :version     => '0.1',               :url         =>'http://puppetlabs.com',               :timeout     => 100

      action 'list' do        reply[:output] = `lpstat -a | cut -d ' ' -f 1`.split      end    end  endend

Page 31: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Simple Agent

        Printer                                                                  

       'list'          lpstat -a | cut -d ' ' -f 1            

module MCollective  module Agent    class Printer<RPC::Agent      metadata :name        => 'printer',               :description => 'Printers and printing',               :author      => 'Gary Larizza',               :license     => 'BSD',               :version     => '0.1',               :url         =>'http://puppetlabs.com',               :timeout     => 100

      action 'list' do        reply[:output] = `lpstat -a | cut -d ' ' -f 1`.split      end    end  endend

Page 32: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Simple Agent

        Printer                                                                  

       'list'          lpstat -a | cut -d ' ' -f 1            

module MCollective  module Agent    class Printer<RPC::Agent      metadata :name        => 'printer',               :description => 'Printers and printing',               :author      => 'Gary Larizza',               :license     => 'BSD',               :version     => '0.1',               :url         =>'http://puppetlabs.com',               :timeout     => 100

      action 'list' do        reply[:output] = `lpstat -a | cut -d ' ' -f 1`.split      end    end  endend

Page 33: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Simple Agent

        Printer                                                                  

       'list'          lpstat -a | cut -d ' ' -f 1            

module MCollective  module Agent    class Printer<RPC::Agent      metadata :name        => 'printer',               :description => 'Printers and printing',               :author      => 'Gary Larizza',               :license     => 'BSD',               :version     => '0.1',               :url         =>'http://puppetlabs.com',               :timeout     => 100

      action 'list' do        reply[:output] = `lpstat -a | cut -d ' ' -f 1`.split      end    end  endend

Agent Name

Page 34: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Simple Agent

        Printer                                                                  

       'list'          lpstat -a | cut -d ' ' -f 1            

module MCollective  module Agent    class Printer<RPC::Agent      metadata :name        => 'printer',               :description => 'Printers and printing',               :author      => 'Gary Larizza',               :license     => 'BSD',               :version     => '0.1',               :url         =>'http://puppetlabs.com',               :timeout     => 100

      action 'list' do        reply[:output] = `lpstat -a | cut -d ' ' -f 1`.split      end    end  endend

Agent Name

Action Name

Page 35: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Simple Agent

        Printer                                                                  

       'list'          lpstat -a | cut -d ' ' -f 1            

module MCollective  module Agent    class Printer<RPC::Agent      metadata :name        => 'printer',               :description => 'Printers and printing',               :author      => 'Gary Larizza',               :license     => 'BSD',               :version     => '0.1',               :url         =>'http://puppetlabs.com',               :timeout     => 100

      action 'list' do        reply[:output] = `lpstat -a | cut -d ' ' -f 1`.split      end    end  endend

Command to be Run

Agent Name

Action Name

Page 36: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Simple Agent

        Printer                                                                  

       'list'          lpstat -a | cut -d ' ' -f 1            

module MCollective  module Agent    class Printer<RPC::Agent      metadata :name        => 'printer',               :description => 'Printers and printing',               :author      => 'Gary Larizza',               :license     => 'BSD',               :version     => '0.1',               :url         =>'http://puppetlabs.com',               :timeout     => 100

      action 'list' do        reply[:output] = `lpstat -a | cut -d ' ' -f 1`.split      end    end  endend

Page 37: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Running an Agentmco rpc printer list --with-fact location=HHS

Agent Name

Action Name

Filter

Fact Filter

Page 38: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

MCollective Agents vs ARD?

• Node Discovery

• Node Selection/Filtering

• Command Execution

• Input Parsing

• Timeouts and Blocking

Page 39: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Plug-able and Customizable!• Plugins:

• Custom Agents

• Security

• Facts

• MCollective is a framework on which we’ve shipped a set of rudimentary programs.

Page 40: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Let’s do this thing...

Page 42: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Getting Puppet for Mac?

http://bit.ly/puppet-mac

Page 44: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

Install Puppet Enterprise

http://bit.ly/pe-install

Page 46: MCollective - documentation2.macsysadmin.sedocumentation2.macsysadmin.se/2012/pdf/Mcollective-Macsysadmi…MCollective Resistance is Futile…and stuff. Gary Larizza Puppet Labs @glarizza

• @glarizza

[email protected]

• glarizza on freenode

• (hint - my name doesn’t rhyme with pizza)


Recommended