SlideShare a Scribd company logo
1 of 71
@ryanycoleman - Product Owner - Puppet Forge
Data Bindings in Puppet 3 + Puppet Forge
Tuesday, May 21, 13
About Me
#PuppetCamp
Tuesday, May 21, 13
Ryan was a RedHat sysadmin for Penn State before joining Puppet Labs
as a professional services engineer. Now is product owner for the Forge.
About Me
#PuppetCamp
Tuesday, May 21, 13
Ryan was a RedHat sysadmin for Penn State before joining Puppet Labs
as a professional services engineer. Now is product owner for the Forge.
About Me
#PuppetCamp
Tuesday, May 21, 13
Ryan was a RedHat sysadmin for Penn State before joining Puppet Labs
as a professional services engineer. Now is product owner for the Forge.
Best Good Practices
#PuppetCamp
Tuesday, May 21, 13
PL Style Guide
#PuppetCamp
Tuesday, May 21, 13
#PuppetCamp
Tuesday, May 21, 13
#PuppetCamp
Tuesday, May 21, 13
#PuppetCamp
Tuesday, May 21, 13
#PuppetCamp
Tuesday, May 21, 13
Code VS Data
#PuppetCamp
Tuesday, May 21, 13
As you get further along with your Puppet Deployments, separating your code (puppet
resources) from the data (what package, what version) becomes increasingly important.
Tuesday, May 21, 13
Imagine that you’re doing a research project in the library.
Tuesday, May 21, 13
You’ve got some books that help accomplish your goal.
Separate
Code
From
Data
Tuesday, May 21, 13
But you don’t write in those books. You keep your notes -- your data -- separate.
Tuesday, May 21, 13
Tuesday, May 21, 13
So where do you express your data and how does Puppet find it?
Automatic Data Lookup
Built into Puppet 3
Tuesday, May 21, 13
Tuesday, May 21, 13
The answer, use Hiera!
Seriously, these docs rock. Read them. http://docs.puppetlabs.com/hiera/1/index.html
It’s MAGIC
But also, it’s not...
#PuppetCamp
Tuesday, May 21, 13
But first, let’s take a closer look at a Puppet run.
Tuesday, May 21, 13
Tuesday, May 21, 13
Hello! I’m James_Bond
running the RedHat
license to kill downtime.
Tuesday, May 21, 13
Good to know!
Hmm, what does
James_Bond need to
enforce?.
Tuesday, May 21, 13
James_Bond?
External Node
Classifier
Class is
Forge
Modules
OK, what do I
need for Forge?
Modules
Modules Modules
Tuesday, May 21, 13
forge::package?
Data
Bindings
Hiera
YAMLJSON
MySQL Redis
Backends
$clientcert
$operatingsystem
common
Hiearchy
Tuesday, May 21, 13
The 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)
It’s screen!
forge::package?
Data
Bindings
Hiera
YAMLJSON
MySQL Redis
Backends
$clientcert
$operatingsystem
common
Hiearchy
Tuesday, May 21, 13
The 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)
? $forge::package
$clientcert
$operatingsystem
common
Hiearchy
$james_bond
$RedHat
common
Tuesday, May 21, 13
Hiera will examine the lookup order of its data backends and its lookup hierarchy. If you
specified a variable lookup in your hierarchy, Hiera will use available facts when choosing the
backend file to lookup.
Configuring Hiera - Backends & Hierarchy
Tuesday, May 21, 13
Hiera 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.
Ok, so how do I use it
with my Puppet
classes?
#PuppetCamp
Tuesday, May 21, 13
Thankfully, Puppet 3 has made implementing Hiera really simple.
In the early days...
Tuesday, May 21, 13
Please don’t use the hiera() function. Consider it legacy.
In the early days...
Tuesday, May 21, 13
This is better, as the user can override this default parameter value.
With this, you’re locked into hiera.
Here’s the magic!
Tuesday, May 21, 13
But really, just get yourself onto Puppet 3 and take advantage of automatic Hiera!
Data Lookup Order
• Use explicit class declaration
values
• Query Data Binding
• Use the default value from
class.
• Fail compilation with an error if
no value can be found.
Tuesday, May 21, 13
This slide could be more visual vs text-based
Data Bindings
we abstract all the things
#PuppetCamp
Tuesday, May 21, 13
Additionally, protect yourself from a potential loss of Hiera.
Built into Puppet 3
Tuesday, May 21, 13
data_bindings were implemented to be an abstraction for data lookup, defaulting to hiera for
now
Tuesday, May 21, 13
There’s already an alternative out there, for consulting foreman as your data backend
Tuesday, May 21, 13
But really, just get yourself onto Puppet 3 and take advantage of automatic Hiera!
Tuesday, May 21, 13
Hiera backends are pluggable too. Here are two examples.
Tuesday, May 21, 13
Best Practices
• Confirm to the Style Guide
• Use Parameterized Classes
• Don’t use hiera() directly
#PuppetCamp
Tuesday, May 21, 13
Re-cap.
#PuppetCamp
Tuesday, May 21, 13
The Puppet Forge is a community driven web service for contributing and finding Puppet
modules.
#PuppetCamp
Tuesday, May 21, 13
The following are examples of what you will find on the Forge.
#PuppetCamp
Tuesday, May 21, 13
Tuesday, May 21, 13
Tuesday, May 21, 13
Tuesday, May 21, 13
Tuesday, May 21, 13
Tuesday, May 21, 13
Tuesday, May 21, 13
Tuesday, May 21, 13
Tuesday, May 21, 13
#PuppetCamp
Tuesday, May 21, 13
#PuppetCamp
Tuesday, May 21, 13
#PuppetCamp
Tuesday, May 21, 13
The
Team
Tuesday, May 21, 13
A Full & Public API
What’s Next?
Tuesday, May 21, 13
Also coming soon, an actual API for doing all sorts of things with the Forge.
GitHub-based Module Publish
ryan@puppetlabs.com
Tuesday, May 21, 13
Edit your Modulefile, push your commit and we’ll do the publishing! Coming soon to a
repository near you.
What’s Next?
Tuesday, May 21, 13
Just an experimental mock-up of search results. Actual feature will absolutely look and
behave differently.
0
1000
2000
3000
4000
End Q3 End Q4 ~End Q1 ~End Q2 ~End Q3 ~End Q4
Forge Module Count
#PuppetCamp
Tuesday, May 21, 13
On-Premise Forge?
Tuesday, May 21, 13
Private 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
On-Premise Forge?
Tuesday, May 21, 13
Private 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
On-Premise Forge?
Tuesday, May 21, 13
Private 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
On-Premise Forge?
Tuesday, May 21, 13
Private 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
On-Premise Forge?
Tuesday, May 21, 13
Private 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
On-Premise Forge?
Tuesday, May 21, 13
Private 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
PulpProject.org
Tuesday, May 21, 13
RedHat’s Pulp Project is repository management software that recently added support for
Puppet Modules.
• Manage Modules on-premise
• Mirror Public Forge
• BUT, please work with me on this
• Email me or comment on #5033
• ryan@puppetlabs.com
Tuesday, May 21, 13
If 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 you
need.
Want to help?
#PuppetCamp
Tuesday, May 21, 13
If you want to add your influence to our products, join the Puppet Labs Test Pilots program!
https://puppetlabs.com/community/puppet-test-pilots-program/
• Sharpen your skills
• Get Certified
• Online learning on the way
• puppetlabs.com/education
#PuppetCamp
Tuesday, May 21, 13
Our education courses are carefully crafted and delivered by our fabulous education team
and professional services team.
Advanced course coming to LA 3/19
Browse upcoming events at http://puppetlabs.eventbrite.com/
Tuesday, May 21, 13
Thank You!
Feel free to email or tweet anytime RE: Forge!
ryan@puppetlabs.com - @ryanycoleman
puppetlabs.com/jobs
forge.puppetlabs.com
#PuppetCamp
Tuesday, May 21, 13
Seriously, join our team. It’ll be awesome.

More Related Content

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

Cloud east shutl_talk
Cloud east shutl_talkCloud east shutl_talk
Cloud east shutl_talk
Volker Pacher
 
Phpday - Automated acceptance testing with Behat and Mink
Phpday - Automated acceptance testing with Behat and MinkPhpday - Automated acceptance testing with Behat and Mink
Phpday - Automated acceptance testing with Behat and Mink
Richard Tuin
 
Word press customiztion and plugins feb 2012
Word press customiztion and plugins feb 2012Word press customiztion and plugins feb 2012
Word press customiztion and plugins feb 2012
Jon Brown
 
Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...
NETWAYS
 

Similar to Writing & Sharing Great Modules on the Puppet Forge - Puppet Camp Raleigh (20)

Drupalcon PDX Swagger
Drupalcon PDX SwaggerDrupalcon PDX Swagger
Drupalcon PDX Swagger
 
Dapper Drupal - Custom Tailored Drupal Themes
Dapper Drupal - Custom Tailored Drupal ThemesDapper Drupal - Custom Tailored Drupal Themes
Dapper Drupal - Custom Tailored Drupal Themes
 
Faster mobile sites
Faster mobile sitesFaster mobile sites
Faster mobile sites
 
Cloud east shutl_talk
Cloud east shutl_talkCloud east shutl_talk
Cloud east shutl_talk
 
How to build an ecosystem for developers by David Bonilla
How to build an ecosystem for developers by David BonillaHow to build an ecosystem for developers by David Bonilla
How to build an ecosystem for developers by David Bonilla
 
State of Puppet - Puppet Camp Barcelona 2013
State of Puppet - Puppet Camp Barcelona 2013State of Puppet - Puppet Camp Barcelona 2013
State of Puppet - Puppet Camp Barcelona 2013
 
Making the Switch, Part 1: Top 5 Things to Consider When Evaluating Drupal
Making the Switch, Part 1: Top 5 Things to Consider When Evaluating DrupalMaking the Switch, Part 1: Top 5 Things to Consider When Evaluating Drupal
Making the Switch, Part 1: Top 5 Things to Consider When Evaluating Drupal
 
2013 jsdc webworker
2013 jsdc webworker2013 jsdc webworker
2013 jsdc webworker
 
Front end performance improvements
Front end performance improvementsFront end performance improvements
Front end performance improvements
 
Drupal: Internet Lego - What is Drupal?
Drupal: Internet Lego - What is Drupal?Drupal: Internet Lego - What is Drupal?
Drupal: Internet Lego - What is Drupal?
 
Phpday - Automated acceptance testing with Behat and Mink
Phpday - Automated acceptance testing with Behat and MinkPhpday - Automated acceptance testing with Behat and Mink
Phpday - Automated acceptance testing with Behat and Mink
 
Angular js, Yeomon & Grunt
Angular js, Yeomon & GruntAngular js, Yeomon & Grunt
Angular js, Yeomon & Grunt
 
SOLVING BIG DATA APP DEVELOPERS BIGGEST PAINS from Structure:Data 2013
SOLVING BIG DATA APP DEVELOPERS BIGGEST PAINS from Structure:Data 2013SOLVING BIG DATA APP DEVELOPERS BIGGEST PAINS from Structure:Data 2013
SOLVING BIG DATA APP DEVELOPERS BIGGEST PAINS from Structure:Data 2013
 
Word press customiztion and plugins feb 2012
Word press customiztion and plugins feb 2012Word press customiztion and plugins feb 2012
Word press customiztion and plugins feb 2012
 
The Future is Responsive
The Future is ResponsiveThe Future is Responsive
The Future is Responsive
 
RailsConf 2013: RubyMotion
RailsConf 2013: RubyMotionRailsConf 2013: RubyMotion
RailsConf 2013: RubyMotion
 
Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...
 
How, When, and Why to Patch a Module
How, When, and Why to Patch a Module How, When, and Why to Patch a Module
How, When, and Why to Patch a Module
 
Data Breaking Bad at Berlin Buzzwords
Data Breaking Bad at Berlin BuzzwordsData Breaking Bad at Berlin Buzzwords
Data Breaking Bad at Berlin Buzzwords
 
Drupal for enterprise
Drupal for enterpriseDrupal for enterprise
Drupal for enterprise
 

More from Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
Puppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
Puppet
 

More from Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

Recently uploaded

What is paper chromatography, principal, procedure,types, diagram, advantages...
What is paper chromatography, principal, procedure,types, diagram, advantages...What is paper chromatography, principal, procedure,types, diagram, advantages...
What is paper chromatography, principal, procedure,types, diagram, advantages...
srcw2322l101
 
RATINGS OF EACH VIDEO FOR UNI PROJECT IWDSFODF
RATINGS OF EACH VIDEO FOR UNI PROJECT IWDSFODFRATINGS OF EACH VIDEO FOR UNI PROJECT IWDSFODF
RATINGS OF EACH VIDEO FOR UNI PROJECT IWDSFODF
CaitlinCummins3
 
Powerpoint showing results from tik tok metrics
Powerpoint showing results from tik tok metricsPowerpoint showing results from tik tok metrics
Powerpoint showing results from tik tok metrics
CaitlinCummins3
 
Constitution of Company Article of Association
Constitution of Company Article of AssociationConstitution of Company Article of Association
Constitution of Company Article of Association
seri bangash
 

Recently uploaded (20)

A Brief Introduction About Jacob Badgett
A Brief Introduction About Jacob BadgettA Brief Introduction About Jacob Badgett
A Brief Introduction About Jacob Badgett
 
Special Purpose Vehicle (Purpose, Formation & examples)
Special Purpose Vehicle (Purpose, Formation & examples)Special Purpose Vehicle (Purpose, Formation & examples)
Special Purpose Vehicle (Purpose, Formation & examples)
 
Your Work Matters to God RestorationChurch.pptx
Your Work Matters to God RestorationChurch.pptxYour Work Matters to God RestorationChurch.pptx
Your Work Matters to God RestorationChurch.pptx
 
How to Maintain Healthy Life style.pptx
How to Maintain  Healthy Life style.pptxHow to Maintain  Healthy Life style.pptx
How to Maintain Healthy Life style.pptx
 
Innomantra Viewpoint - Building Moonshots : May-Jun 2024.pdf
Innomantra Viewpoint - Building Moonshots : May-Jun 2024.pdfInnomantra Viewpoint - Building Moonshots : May-Jun 2024.pdf
Innomantra Viewpoint - Building Moonshots : May-Jun 2024.pdf
 
What is paper chromatography, principal, procedure,types, diagram, advantages...
What is paper chromatography, principal, procedure,types, diagram, advantages...What is paper chromatography, principal, procedure,types, diagram, advantages...
What is paper chromatography, principal, procedure,types, diagram, advantages...
 
RATINGS OF EACH VIDEO FOR UNI PROJECT IWDSFODF
RATINGS OF EACH VIDEO FOR UNI PROJECT IWDSFODFRATINGS OF EACH VIDEO FOR UNI PROJECT IWDSFODF
RATINGS OF EACH VIDEO FOR UNI PROJECT IWDSFODF
 
NFS- Operations Presentation - Recurrent
NFS- Operations Presentation - RecurrentNFS- Operations Presentation - Recurrent
NFS- Operations Presentation - Recurrent
 
Falcon Invoice Discounting Setup for Small Businesses
Falcon Invoice Discounting Setup for Small BusinessesFalcon Invoice Discounting Setup for Small Businesses
Falcon Invoice Discounting Setup for Small Businesses
 
The Truth About Dinesh Bafna's Situation.pdf
The Truth About Dinesh Bafna's Situation.pdfThe Truth About Dinesh Bafna's Situation.pdf
The Truth About Dinesh Bafna's Situation.pdf
 
WAM Corporate Presentation May 2024_w.pdf
WAM Corporate Presentation May 2024_w.pdfWAM Corporate Presentation May 2024_w.pdf
WAM Corporate Presentation May 2024_w.pdf
 
Sedex Members Ethical Trade Audit (SMETA) Measurement Criteria
Sedex Members Ethical Trade Audit (SMETA) Measurement CriteriaSedex Members Ethical Trade Audit (SMETA) Measurement Criteria
Sedex Members Ethical Trade Audit (SMETA) Measurement Criteria
 
Powerpoint showing results from tik tok metrics
Powerpoint showing results from tik tok metricsPowerpoint showing results from tik tok metrics
Powerpoint showing results from tik tok metrics
 
Raising Seed Capital by Steve Schlafman at RRE Ventures
Raising Seed Capital by Steve Schlafman at RRE VenturesRaising Seed Capital by Steve Schlafman at RRE Ventures
Raising Seed Capital by Steve Schlafman at RRE Ventures
 
Toyota Kata Coaching for Agile Teams & Transformations
Toyota Kata Coaching for Agile Teams & TransformationsToyota Kata Coaching for Agile Teams & Transformations
Toyota Kata Coaching for Agile Teams & Transformations
 
Guide to Networking Essentials 8th Edition by Greg Tomsho solution manual.doc
Guide to Networking Essentials 8th Edition by Greg Tomsho solution manual.docGuide to Networking Essentials 8th Edition by Greg Tomsho solution manual.doc
Guide to Networking Essentials 8th Edition by Greg Tomsho solution manual.doc
 
Constitution of Company Article of Association
Constitution of Company Article of AssociationConstitution of Company Article of Association
Constitution of Company Article of Association
 
hyundai capital 2023 consolidated financial statements
hyundai capital 2023 consolidated financial statementshyundai capital 2023 consolidated financial statements
hyundai capital 2023 consolidated financial statements
 
Aptar Closures segment - Corporate Overview-India.pdf
Aptar Closures segment - Corporate Overview-India.pdfAptar Closures segment - Corporate Overview-India.pdf
Aptar Closures segment - Corporate Overview-India.pdf
 
Daftar Rumpun, Pohon, dan Cabang Ilmu (2024).pdf
Daftar Rumpun, Pohon, dan Cabang Ilmu (2024).pdfDaftar Rumpun, Pohon, dan Cabang Ilmu (2024).pdf
Daftar Rumpun, Pohon, dan Cabang Ilmu (2024).pdf
 

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