Intro to Systems Orchestration with MCollective

2,696 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.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,696
On SlideShare
0
From Embeds
0
Number of Embeds
1,221
Actions
Shares
0
Downloads
38
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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!  

×