Your SlideShare is downloading. ×
0
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh

1,134

Published on

Ryan Coleman's talk on "Writing & Sharing Great Modules on the Puppet Forge" at Puppet Camp Raleigh, 2013. Video: http://bit.ly/11dZmNV

Ryan Coleman's talk on "Writing & Sharing Great Modules on the Puppet Forge" at Puppet Camp Raleigh, 2013. Video: http://bit.ly/11dZmNV

Published in: Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,134
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. @ryanycoleman - Product Owner - Puppet ForgeData Bindings in Puppet 3 + Puppet ForgeTuesday, May 21, 13
  • 2. About Me#PuppetCampTuesday, May 21, 13Ryan was a RedHat sysadmin for Penn State before joining Puppet Labsas a professional services engineer. Now is product owner for the Forge.
  • 3. About Me#PuppetCampTuesday, May 21, 13Ryan was a RedHat sysadmin for Penn State before joining Puppet Labsas a professional services engineer. Now is product owner for the Forge.
  • 4. About Me#PuppetCampTuesday, May 21, 13Ryan was a RedHat sysadmin for Penn State before joining Puppet Labsas a professional services engineer. Now is product owner for the Forge.
  • 5. Best Good Practices#PuppetCampTuesday, May 21, 13
  • 6. PL Style Guide#PuppetCampTuesday, May 21, 13
  • 7. #PuppetCampTuesday, May 21, 13
  • 8. #PuppetCampTuesday, May 21, 13
  • 9. #PuppetCampTuesday, May 21, 13
  • 10. #PuppetCampTuesday, May 21, 13
  • 11. Code VS Data#PuppetCampTuesday, May 21, 13As you get further along with your Puppet Deployments, separating your code (puppetresources) from the data (what package, what version) becomes increasingly important.
  • 12. Tuesday, May 21, 13Imagine that you’re doing a research project in the library.
  • 13. Tuesday, May 21, 13You’ve got some books that help accomplish your goal.
  • 14. SeparateCodeFromDataTuesday, May 21, 13But you don’t write in those books. You keep your notes -- your data -- separate.
  • 15. Tuesday, May 21, 13
  • 16. Tuesday, May 21, 13So where do you express your data and how does Puppet find it?
  • 17. Automatic Data LookupBuilt into Puppet 3Tuesday, May 21, 13
  • 18. Tuesday, May 21, 13The answer, use Hiera!Seriously, these docs rock. Read them. http://docs.puppetlabs.com/hiera/1/index.html
  • 19. It’s MAGICBut also, it’s not...#PuppetCampTuesday, May 21, 13But first, let’s take a closer look at a Puppet run.
  • 20. Tuesday, May 21, 13
  • 21. Tuesday, May 21, 13
  • 22. Hello! I’m James_Bondrunning the RedHatlicense to kill downtime.Tuesday, May 21, 13
  • 23. Good to know!Hmm, what doesJames_Bond need toenforce?.Tuesday, May 21, 13
  • 24. James_Bond?External NodeClassifierClass isForgeModulesOK, what do Ineed for Forge?ModulesModules ModulesTuesday, May 21, 13
  • 25. forge::package?DataBindingsHieraYAMLJSONMySQL RedisBackends$clientcert$operatingsystemcommonHiearchyTuesday, May 21, 13The Puppet Master needs forge::package. To get this data...- It consults its data bindings terminus (abstraction for looking up data)- Default lookup to Hiera (key/value store for data)- Hiera consults its back-end data stores (defaults to yaml)- Hiera returns result of lookup to master (key/value or could not find)
  • 26. It’s screen!forge::package?DataBindingsHieraYAMLJSONMySQL RedisBackends$clientcert$operatingsystemcommonHiearchyTuesday, May 21, 13The Puppet Master needs forge::package. To get this data...- It consults its data bindings terminus (abstraction for looking up data)- Default lookup to Hiera (key/value store for data)- Hiera consults its back-end data stores (defaults to yaml)- Hiera returns result of lookup to master (key/value or could not find)
  • 27. ? $forge::package$clientcert$operatingsystemcommonHiearchy$james_bond$RedHatcommonTuesday, May 21, 13Hiera will examine the lookup order of its data backends and its lookup hierarchy. If youspecified a variable lookup in your hierarchy, Hiera will use available facts when choosing thebackend file to lookup.
  • 28. Configuring Hiera - Backends & HierarchyTuesday, May 21, 13Hiera lets you express data in some structured format (which is pluggable).You then establish a hierarchy of lookup, however you like, usually based on facts.
  • 29. Ok, so how do I use itwith my Puppetclasses?#PuppetCampTuesday, May 21, 13Thankfully, Puppet 3 has made implementing Hiera really simple.
  • 30. In the early days...Tuesday, May 21, 13Please don’t use the hiera() function. Consider it legacy.
  • 31. In the early days...Tuesday, May 21, 13This is better, as the user can override this default parameter value.With this, you’re locked into hiera.
  • 32. Here’s the magic!Tuesday, May 21, 13But really, just get yourself onto Puppet 3 and take advantage of automatic Hiera!
  • 33. Data Lookup Order• Use explicit class declarationvalues• Query Data Binding• Use the default value fromclass.• Fail compilation with an error ifno value can be found.Tuesday, May 21, 13This slide could be more visual vs text-based
  • 34. Data Bindingswe abstract all the things#PuppetCampTuesday, May 21, 13Additionally, protect yourself from a potential loss of Hiera.
  • 35. Built into Puppet 3Tuesday, May 21, 13data_bindings were implemented to be an abstraction for data lookup, defaulting to hiera fornow
  • 36. Tuesday, May 21, 13There’s already an alternative out there, for consulting foreman as your data backend
  • 37. Tuesday, May 21, 13But really, just get yourself onto Puppet 3 and take advantage of automatic Hiera!
  • 38. Tuesday, May 21, 13Hiera backends are pluggable too. Here are two examples.
  • 39. Tuesday, May 21, 13
  • 40. Best Practices• Confirm to the Style Guide• Use Parameterized Classes• Don’t use hiera() directly#PuppetCampTuesday, May 21, 13Re-cap.
  • 41. #PuppetCampTuesday, May 21, 13The Puppet Forge is a community driven web service for contributing and finding Puppetmodules.
  • 42. #PuppetCampTuesday, May 21, 13The following are examples of what you will find on the Forge.
  • 43. #PuppetCampTuesday, May 21, 13
  • 44. Tuesday, May 21, 13
  • 45. Tuesday, May 21, 13
  • 46. Tuesday, May 21, 13
  • 47. Tuesday, May 21, 13
  • 48. Tuesday, May 21, 13
  • 49. Tuesday, May 21, 13
  • 50. Tuesday, May 21, 13
  • 51. Tuesday, May 21, 13
  • 52. #PuppetCampTuesday, May 21, 13
  • 53. #PuppetCampTuesday, May 21, 13
  • 54. #PuppetCampTuesday, May 21, 13
  • 55. TheTeamTuesday, May 21, 13
  • 56. A Full & Public APIWhat’s Next?Tuesday, May 21, 13Also coming soon, an actual API for doing all sorts of things with the Forge.
  • 57. GitHub-based Module Publishryan@puppetlabs.comTuesday, May 21, 13Edit your Modulefile, push your commit and we’ll do the publishing! Coming soon to arepository near you.
  • 58. What’s Next?Tuesday, May 21, 13Just an experimental mock-up of search results. Actual feature will absolutely look andbehave differently.
  • 59. 01000200030004000End Q3 End Q4 ~End Q1 ~End Q2 ~End Q3 ~End Q4Forge Module Count#PuppetCampTuesday, May 21, 13
  • 60. On-Premise Forge?Tuesday, May 21, 13Private Forge has been a common request. The requests I get are two-fold.A) How can I install public Forge content on a master that can’t reach the outside.B) How can I contribute company-specific content to a Forge-like thing inside my firewall
  • 61. On-Premise Forge?Tuesday, May 21, 13Private Forge has been a common request. The requests I get are two-fold.A) How can I install public Forge content on a master that can’t reach the outside.B) How can I contribute company-specific content to a Forge-like thing inside my firewall
  • 62. On-Premise Forge?Tuesday, May 21, 13Private Forge has been a common request. The requests I get are two-fold.A) How can I install public Forge content on a master that can’t reach the outside.B) How can I contribute company-specific content to a Forge-like thing inside my firewall
  • 63. On-Premise Forge?Tuesday, May 21, 13Private Forge has been a common request. The requests I get are two-fold.A) How can I install public Forge content on a master that can’t reach the outside.B) How can I contribute company-specific content to a Forge-like thing inside my firewall
  • 64. On-Premise Forge?Tuesday, May 21, 13Private Forge has been a common request. The requests I get are two-fold.A) How can I install public Forge content on a master that can’t reach the outside.B) How can I contribute company-specific content to a Forge-like thing inside my firewall
  • 65. On-Premise Forge?Tuesday, May 21, 13Private Forge has been a common request. The requests I get are two-fold.A) How can I install public Forge content on a master that can’t reach the outside.B) How can I contribute company-specific content to a Forge-like thing inside my firewall
  • 66. PulpProject.orgTuesday, May 21, 13RedHat’s Pulp Project is repository management software that recently added support forPuppet Modules.
  • 67. • Manage Modules on-premise• Mirror Public Forge• BUT, please work with me on this• Email me or comment on #5033• ryan@puppetlabs.comTuesday, May 21, 13If you’re interested in this, email ryan@puppetlabs.com or add your thoughts to https://projects.puppetlabs.com/issues/5033.We’re going to do something in this space, but want to hear more from you on what youneed.
  • 68. Want to help?#PuppetCampTuesday, May 21, 13If you want to add your influence to our products, join the Puppet Labs Test Pilots program!https://puppetlabs.com/community/puppet-test-pilots-program/
  • 69. • Sharpen your skills• Get Certified• Online learning on the way• puppetlabs.com/education#PuppetCampTuesday, May 21, 13Our education courses are carefully crafted and delivered by our fabulous education teamand professional services team.Advanced course coming to LA 3/19Browse upcoming events at http://puppetlabs.eventbrite.com/
  • 70. Tuesday, May 21, 13
  • 71. Thank You!Feel free to email or tweet anytime RE: Forge!ryan@puppetlabs.com - @ryanycolemanpuppetlabs.com/jobsforge.puppetlabs.com#PuppetCampTuesday, May 21, 13Seriously, join our team. It’ll be awesome.

×