Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Intro	
  to	
  Systems	
  Orchestra0on	
  
With	
  MCollec0ve	
  
What	
  is	
  Orchestra0on?	
  
Hello!	
  
R.I.Pienaar	
  
(h>p://www.devco.net/)	
  
THANK	
  YOU!	
  
Middleware	
  
Agents	
  ==	
  sheet	
  music	
  
Collec0ves	
  
Filters	
  ==	
  find	
  a	
  sec0on	
  
Use	
  this	
  stuff	
  
Using	
  it	
  ==	
  direct	
  one	
  sec0on	
  
Yeah,	
  not	
  an	
  orchestra	
  yet	
  
What	
  to	
  do?	
  
#!/bin/bash	
  -­‐e	
  
for	
  node	
  in	
  $(mco	
  find	
  -­‐-­‐np	
  -­‐C	
  roles::node)	
  
do	
  
	
  	
  echo	
  "...
#!/usr/bin/ruby	
  
	
  
require	
  'mcollec0ve'	
  
require	
  'pp'	
  
	
  
include	
  MCollec0ve::RPC	
  
	
  
#	
  dis...
Ques0ons?	
  
Come	
  Work	
  for	
  Us!	
  
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Intro to Systems Orchestration with MCollective
Upcoming SlideShare
Loading in …5
×

Intro to Systems Orchestration with MCollective

2,767 views

Published on

As the number and variety of systems that you manage grows, it becomes increasingly important to have the ability to execute specific and targeted tasks against these systems - i.e orchestration. This session will provide an overview of how an orchestration framework, specifically mcollective, can be used in conjunction with puppet to provide an organized and efficient way to achieve this.

Devon Peters
Tools Engineer, Jive Software
A Tools Engineer at Jive Software working on the Technical Operations team, which provides SaaS for hundreds of Jive customers. I've been managing Unix systems and related technologies for over 10 years, with a current focus on configuration management and systems automation, with the goal of simplifying and standardizing operations.

  • Be the first to comment

  • Be the first to like this

Intro to Systems Orchestration with MCollective

  1. 1. Intro  to  Systems  Orchestra0on   With  MCollec0ve  
  2. 2. What  is  Orchestra0on?  
  3. 3. Hello!  
  4. 4. R.I.Pienaar   (h>p://www.devco.net/)  
  5. 5. THANK  YOU!  
  6. 6. Middleware  
  7. 7. Agents  ==  sheet  music  
  8. 8. Collec0ves  
  9. 9. Filters  ==  find  a  sec0on  
  10. 10. Use  this  stuff  
  11. 11. Using  it  ==  direct  one  sec0on  
  12. 12. Yeah,  not  an  orchestra  yet  
  13. 13. What  to  do?  
  14. 14. #!/bin/bash  -­‐e   for  node  in  $(mco  find  -­‐-­‐np  -­‐C  roles::node)   do      echo  "restar0ng  ssh  on  $node"      mco  service  -­‐-­‐np  sshd  restart  -­‐I  $node  >/dev/null      sleep  2      mco  rpc  service  status  service=sshd  -­‐I  $node  -­‐j  |            jgrep  data.status=running  -­‐s  data.status  >/dev/null      echo  "ssh  is  up  on  $node"   done  
  15. 15. #!/usr/bin/ruby     require  'mcollec0ve'   require  'pp'     include  MCollec0ve::RPC     #  discover   u0l  =  rpcclient("rpcu0l")   u0l.progress  =  false   u0l.class_filter  /roles::node/   nodes  =  []   u0l.ping.each  do  |resp|      nodes  <<  resp[:sender]   end   u0l.disconnect     nodes.each  do  |node|      srv  =  rpcclient("service")      srv.progress  =  false      srv.iden0ty_filter  node      puts  "restar0ng  sshd  on  #{node}"      srv.restart(:service  =>  "sshd")      srv.reset     <snip>  
  16. 16. Ques0ons?  
  17. 17. Come  Work  for  Us!  

×