Using Orchestration in Puppet Enterprise 3 - PuppetConf 2013

2,964 views

Published on

"Using Orchestration in Puppet Enterprise 3" by Nick Fagerlund Technical Writer, Puppet Labs.

Presentation Overview: The recently released Puppet Enterprise 3.0 introduced several powerful orchestration engine capabilities, including dynamic discovery and progressive deployment. This introductory-level talk will provide an overview of these and other orchestration engine features, the common use-cases they address, and how you use them.

Speaker Bio: Nick Fagerlund was the very first dedicated technical writer at Puppet Labs. Like any responsible pet owner, Puppet Labs has since provided him with companions. Unlike a responsible pet owner, Puppet Labs has fed him after midnight and occasionally splashed water on him. Nick writes (and re-writes) at http://docs.puppetlabs.com, focusing on platform-level components like the Puppet language. He specializes in breaking things and then explaining how they broke. His business card says "weird bugs."

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,964
On SlideShare
0
From Embeds
0
Number of Embeds
1,643
Actions
Shares
0
Downloads
52
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Using Orchestration in Puppet Enterprise 3 - PuppetConf 2013

  1. 1. Using Orchestration in Puppet Enterprise 3 Nick Fagerlund Technical Writer | Puppet Labs @nfagerlund Friday, August 23, 13
  2. 2. puppetconf.com #puppetconf HI. Friday, August 23, 13
  3. 3. puppetconf.com #puppetconf How’s it goin. Friday, August 23, 13
  4. 4. puppetconf.com #puppetconf Let’s talk about orchestration! Raise your hand if you know what it is. Friday, August 23, 13
  5. 5. puppetconf.com #puppetconf Specifically, let’s talk about… • What it is, why you use it, and when • HOW??? • Cool new features in Puppet Enterprise 3 • Concrete use cases Friday, August 23, 13
  6. 6. puppetconf.com #puppetconf I already took notes for you. Friday, August 23, 13
  7. 7. puppetconf.com #puppetconf http://docs.puppetlabs.com/pe/latest Friday, August 23, 13
  8. 8. puppetconf.com #puppetconf OK,what’s orchestration. Friday, August 23, 13
  9. 9. puppetconf.com #puppetconf It’s not configuration management. It’s a different kind of automation. They’re complementary! Friday, August 23, 13
  10. 10. puppetconf.com #puppetconf Config management is: • Modeling a desired state for systems… • …enforcing that desired state… • …and updating the model in order to update the state. Friday, August 23, 13
  11. 11. puppetconf.com #puppetconf Orchestration is about: • Executing actions… • …on demand… • …on a flexible group of systems. Friday, August 23, 13
  12. 12. puppetconf.com #puppetconf ??? Friday, August 23, 13
  13. 13. puppetconf.com #puppetconf What’s an “action?” • Pre-defined actions are distributed as plugins. • Actions have structured inputs and outputs. • Actions can do... like, whatever. (Several built-in, or write your own.) Friday, August 23, 13
  14. 14. puppetconf.com #puppetconf What’s “on demand?” • Whenever you want— • —either really quickly and in parallel— • —or in a controlled series of batches. Friday, August 23, 13
  15. 15. puppetconf.com #puppetconf Flexible group of systems? • Select nodes by fact values • Select by Puppet classes • Select with dynamic data discovery Instead of using a list of hostnames, set criteria to match against. Friday, August 23, 13
  16. 16. puppetconf.com #puppetconf Why orchestrate? Friday, August 23, 13
  17. 17. puppetconf.com #puppetconf • Controlling config management Friday, August 23, 13
  18. 18. puppetconf.com #puppetconf • Controlling config management • Gathering information Friday, August 23, 13
  19. 19. puppetconf.com #puppetconf • Controlling config management • Gathering information • Application deployment Friday, August 23, 13
  20. 20. puppetconf.com #puppetconf • Controlling config management • Gathering information • Application deployment • Routine or emergency maintenance Friday, August 23, 13
  21. 21. puppetconf.com #puppetconf • Controlling config management • Gathering information • Application deployment • Routine or emergency maintenance • Any of your day-to-day work that must happen interactively Friday, August 23, 13
  22. 22. puppetconf.com #puppetconf Basically: What tasks do you want to Run Better on Lots of Nodes? Friday, August 23, 13
  23. 23. puppetconf.com #puppetconf How do you use orchestration? Friday, August 23, 13
  24. 24. puppetconf.com #puppetconf (We wrote this down.) http://docs.puppetlabs.com/pe/ latest/ orchestration_invoke_cli.html Friday, August 23, 13
  25. 25. puppetconf.com #puppetconf Two ways to invoke actions • In the PE console • On the command line Friday, August 23, 13
  26. 26. puppetconf.com #puppetconf Two ways to invoke actions • In the PE console • On the command line (focusing here for today!) Friday, August 23, 13
  27. 27. puppetconf.com #puppetconf 1. Go to the command line • SSH to puppet master server • Switch user to “peadmin” Friday, August 23, 13
  28. 28. puppetconf.com #puppetconf 2. Decide on three things • What action? • What inputs/arguments? • On which kinds of nodes? Friday, August 23, 13
  29. 29. puppetconf.com #puppetconf 3. Run your command • mco <SUBCOMMAND> <ARGUMENTS> <OPTIONS> <FILTER> Friday, August 23, 13
  30. 30. puppetconf.com #puppetconf Finding actions/ inputs: http://docs.puppetlabs.com/pe/ latest/ orchestration_actions.html Friday, August 23, 13
  31. 31. puppetconf.com #puppetconf Finding filter information http://docs.puppetlabs.com/pe/ latest/ orchestration_invoke_cli.html# filtering-actions Friday, August 23, 13
  32. 32. puppetconf.com #puppetconf Demo time! Friday, August 23, 13
  33. 33. puppetconf.com #puppetconf What did we just see? Friday, August 23, 13
  34. 34. puppetconf.com #puppetconf The mco command • The mco command controls the orchestration engine. • It has a bunch of subcommands, whose syntax can vary. Friday, August 23, 13
  35. 35. puppetconf.com #puppetconf The subcommands • mco rpc is the generic subcommand. It can do basically anything. • All the other subcommands are simpler ways to do things you could probably do with mco rpc. Friday, August 23, 13
  36. 36. puppetconf.com #puppetconf Specialized subcommands • mco ping is exactly what it sounds like. • mco find is a fast way to test filters. • mco service mimics the familiar service command. • mco package mimics apt and yum commands. Friday, August 23, 13
  37. 37. puppetconf.com #puppetconf Specialized subcommands • And mco puppet is for controlling Puppet. Friday, August 23, 13
  38. 38. puppetconf.com #puppetconf How about those new features? Friday, August 23, 13
  39. 39. puppetconf.com #puppetconf Batching / progressive deployment • --batch <SIZE> • --batch-sleep <SECONDS> Friday, August 23, 13
  40. 40. puppetconf.com #puppetconf Batching / progressive deployment • Good for rolling out new Puppet modules! Friday, August 23, 13
  41. 41. puppetconf.com #puppetconf (demo) Friday, August 23, 13
  42. 42. puppetconf.com #puppetconf Data plugins / dynamic discovery • $ mco rpc puppet status -S "puppet().enabled=false" Friday, August 23, 13
  43. 43. puppetconf.com #puppetconf Data plugins / dynamic discovery • Advanced filtering • Ad-hoc monitoring and reporting Friday, August 23, 13
  44. 44. puppetconf.com #puppetconf (demo) Friday, August 23, 13
  45. 45. puppetconf.com #puppetconf Sampling/limiting • --1 • --limit <COUNT> Friday, August 23, 13
  46. 46. puppetconf.com #puppetconf What next? Friday, August 23, 13
  47. 47. puppetconf.com #puppetconf The built-in actions are useful,but orchestration really shines when you roll your own. Friday, August 23, 13
  48. 48. puppetconf.com #puppetconf For example: Friday, August 23, 13
  49. 49. puppetconf.com #puppetconf (That’s it,that’s all the code.) Friday, August 23, 13
  50. 50. puppetconf.com #puppetconf Info about writing actions http://docs.puppetlabs.com/pe/ latest/ orchestration_adding_actions.ht ml#writing-mcollective-agent- plugins Friday, August 23, 13
  51. 51. puppetconf.com #puppetconf Say hi later,and I can show you more! Friday, August 23, 13
  52. 52. Thank You Nick Fagerlund Technical Writer | Puppet Labs @nfagerlund Collaborate. Automate. Ship. Friday, August 23, 13
  53. 53. Follow us on Twitter @puppetlabs youtube.com/puppetlabsinc slideshare.net/puppetlabs Collaborate. Automate. Ship. Friday, August 23, 13

×