SlideShare a Scribd company logo
1 of 75
Download to read offline
Writing and Sharing Great Modules
                              with the Puppet Forge


     @ryanycoleman - Product Owner - Puppet Forge


Tuesday, April 9, 13
About Me




#PuppetCamp
Tuesday, April 9, 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.
#PuppetCamp
Tuesday, April 9, 13

The Puppet Forge is a community driven web service for contributing and finding Puppet
modules.
#PuppetCamp
Tuesday, April 9, 13

The following are examples of what you will find on the Forge.
#PuppetCamp
Tuesday, April 9, 13
Tuesday, April 9, 13
Tuesday, April 9, 13
Tuesday, April 9, 13
Tuesday, April 9, 13
Tuesday, April 9, 13
Tuesday, April 9, 13
Tuesday, April 9, 13
Tuesday, April 9, 13
Tuesday, April 9, 13
Tuesday, April 9, 13
Forge Module Count

     4000


     3000


     2000


      1000


              0
                       End Q3   End Q4   ~End Q1   ~End Q2   ~End Q3   ~End Q4




#PuppetCamp
Tuesday, April 9, 13
#PuppetCamp
Tuesday, April 9, 13
#PuppetCamp
Tuesday, April 9, 13
#PuppetCamp
Tuesday, April 9, 13
Best Good Practices



#PuppetCamp
Tuesday, April 9, 13
PL Style Guide
#PuppetCamp
Tuesday, April 9, 13
#PuppetCamp
Tuesday, April 9, 13
#PuppetCamp
Tuesday, April 9, 13
#PuppetCamp
Tuesday, April 9, 13
#PuppetCamp
Tuesday, April 9, 13
Code VS Data



#PuppetCamp
Tuesday, April 9, 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, April 9, 13

Imagine that you’re doing a research project in the library.
Tuesday, April 9, 13

You’ve got some books that help accomplish your goal.
Separate
                        Code
                        From
                        Data



Tuesday, April 9, 13

But you don’t write in those books. You keep your notes -- your data -- separate.
Tuesday, April 9, 13
Tuesday, April 9, 13

So where do you express your data and how does Puppet find it?
Automatic Data Lookup
                        Built into Puppet 3




Tuesday, April 9, 13
Tuesday, April 9, 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, April 9, 13

But first, let’s take a closer look at a Puppet run.
Tuesday, April 9, 13
Tuesday, April 9, 13
Hello! I’m James_Bond
                          running the RedHat
                       license to kill downtime.



Tuesday, April 9, 13
Good to know!


                         Hmm, what does
                       James_Bond need to
                            enforce?.




Tuesday, April 9, 13
James_Bond?



                                   Enforce    External Node
                                    Forge       Classifier

                  OK, what do I
                 need for Forge?

                 Modules Modules
                 Modules Modules



Tuesday, April 9, 13
forge::package?

                                                                         Data
                                                                       Bindings

                                                   Hiera


                            Hiearchy
                                                                   Backends
                         $clientcert

                       $operatingsystem
                                                         JSON           YAML
                                                        MySQL Foreman
                           common


Tuesday, April 9, 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?

                                                                         Data
                                                                       Bindings
                                          It’s screen!

                                                   Hiera


                            Hiearchy
                                                                   Backends
                         $clientcert

                       $operatingsystem
                                                         JSON           YAML
                                                        MySQL            Redis
                           common


Tuesday, April 9, 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
                 Hiearchy
             $clientcert                                            $james_bond

      $operatingsystem                                                   $RedHat

                   common                                                common




Tuesday, April 9, 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.
Expressing the configuration of hiera
                       data backends and lookup hierarchy




Tuesday, April 9, 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, April 9, 13

Thankfully, Puppet 3 has made implementing Hiera really simple.
In the early days...




Tuesday, April 9, 13

Please don’t use the hiera() function. Consider it legacy.
In the early days...




Tuesday, April 9, 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, April 9, 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, April 9, 13

This slide could be more visual vs text-based
Data Bindings
                                 don’t lock yourself in




#PuppetCamp
Tuesday, April 9, 13

Additionally, protect yourself from a potential loss of Hiera.
Built into Puppet 3




Tuesday, April 9, 13

data_bindings were implemented to be an abstraction for data lookup, defaulting to hiera for
now
Tuesday, April 9, 13

There’s already an alternative out there, for consulting foreman as your data backend
Tuesday, April 9, 13

But really, just get yourself onto Puppet 3 and take advantage of automatic Hiera!
Tuesday, April 9, 13

Hiera backends are pluggable too. Here are two examples.
Tuesday, April 9, 13
Best Practices


                       • Confirm to the Style Guide
                       • Use Parameterized Classes
                       • Don’t use hiera() directly

#PuppetCamp
Tuesday, April 9, 13

Re-cap.
The
                       Team


Tuesday, April 9, 13
What have we been
                        up to?


                       • Re-launch and Re-design



Tuesday, April 9, 13

Though we’re small, we’ve been really busy!
Tuesday, April 9, 13
Tuesday, April 9, 13

Lots of little features add up to a substantially nicer to use Forge.
Tuesday, April 9, 13

Download counts, now in your search results!
GitHub-based Module Publish




          ryan@puppetlabs.com
Tuesday, April 9, 13

Edit your Modulefile, push your commit and we’ll do the publishing! Coming soon to a
repository near you.
What’s Next?




          A Full & Public API
Tuesday, April 9, 13

Also coming soon, an actual API for doing all sorts of things with the Forge.
What’s Next?




Tuesday, April 9, 13

Just an experimental mock-up of search results. Actual feature will absolutely look and
behave differently.
On-Premise Forge?




Tuesday, April 9, 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, April 9, 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, April 9, 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, April 9, 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, April 9, 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, April 9, 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, April 9, 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, April 9, 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, April 9, 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, April 9, 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, April 9, 13
Thank You!

              Please email (or tweet) feedback and questions

                       ryan@puppetlabs.com - @ryanycoleman

                              forge.puppetlabs.com
                                puppetlabs.com/jobs




#PuppetCamp
Tuesday, April 9, 13

Seriously, join our team. It’ll be awesome.

More Related Content

More from Puppet

Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twentiesPuppet
 
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 codePuppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approachPuppet
 
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 automationPuppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliancePuppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowPuppet
 
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 WindowsPuppet
 
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. 2020Puppet
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppetPuppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet
 
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 ReeuwijkPuppet
 
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 groundPuppet
 
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 SoftwarePuppet
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User GroupPuppet
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsPuppet
 
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 MaludyPuppet
 
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 ReeuwijkPuppet
 
Puppet in k8s, Miroslav Hadzhiev
Puppet in k8s, Miroslav HadzhievPuppet in k8s, Miroslav Hadzhiev
Puppet in k8s, Miroslav HadzhievPuppet
 
Bolt on Windows - James Pogran
Bolt on Windows - James PogranBolt on Windows - James Pogran
Bolt on Windows - James PogranPuppet
 
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...Puppet
 

More from Puppet (20)

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
 
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
 
Puppet in k8s, Miroslav Hadzhiev
Puppet in k8s, Miroslav HadzhievPuppet in k8s, Miroslav Hadzhiev
Puppet in k8s, Miroslav Hadzhiev
 
Bolt on Windows - James Pogran
Bolt on Windows - James PogranBolt on Windows - James Pogran
Bolt on Windows - James Pogran
 
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
The Business Value of Modernizing your Windows Infrastructure and Bringing Li...
 

Recently uploaded

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Writing and Sharing Great Modules on the Puppet Forge

  • 1. Writing and Sharing Great Modules with the Puppet Forge @ryanycoleman - Product Owner - Puppet Forge Tuesday, April 9, 13
  • 2. About Me #PuppetCamp Tuesday, April 9, 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.
  • 3. #PuppetCamp Tuesday, April 9, 13 The Puppet Forge is a community driven web service for contributing and finding Puppet modules.
  • 4. #PuppetCamp Tuesday, April 9, 13 The following are examples of what you will find on the Forge.
  • 16. Forge Module Count 4000 3000 2000 1000 0 End Q3 End Q4 ~End Q1 ~End Q2 ~End Q3 ~End Q4 #PuppetCamp Tuesday, April 9, 13
  • 26. Code VS Data #PuppetCamp Tuesday, April 9, 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.
  • 27. Tuesday, April 9, 13 Imagine that you’re doing a research project in the library.
  • 28. Tuesday, April 9, 13 You’ve got some books that help accomplish your goal.
  • 29. Separate Code From Data Tuesday, April 9, 13 But you don’t write in those books. You keep your notes -- your data -- separate.
  • 31. Tuesday, April 9, 13 So where do you express your data and how does Puppet find it?
  • 32. Automatic Data Lookup Built into Puppet 3 Tuesday, April 9, 13
  • 33. Tuesday, April 9, 13 The answer, use Hiera! Seriously, these docs rock. Read them. http://docs.puppetlabs.com/hiera/1/index.html
  • 34. It’s MAGIC But also, it’s not... #PuppetCamp Tuesday, April 9, 13 But first, let’s take a closer look at a Puppet run.
  • 37. Hello! I’m James_Bond running the RedHat license to kill downtime. Tuesday, April 9, 13
  • 38. Good to know! Hmm, what does James_Bond need to enforce?. Tuesday, April 9, 13
  • 39. James_Bond? Enforce External Node Forge Classifier OK, what do I need for Forge? Modules Modules Modules Modules Tuesday, April 9, 13
  • 40. forge::package? Data Bindings Hiera Hiearchy Backends $clientcert $operatingsystem JSON YAML MySQL Foreman common Tuesday, April 9, 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)
  • 41. forge::package? Data Bindings It’s screen! Hiera Hiearchy Backends $clientcert $operatingsystem JSON YAML MySQL Redis common Tuesday, April 9, 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)
  • 42. ? $forge::package Hiearchy $clientcert $james_bond $operatingsystem $RedHat common common Tuesday, April 9, 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.
  • 43. Expressing the configuration of hiera data backends and lookup hierarchy Tuesday, April 9, 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.
  • 44. Ok, so how do I use it with my Puppet classes? #PuppetCamp Tuesday, April 9, 13 Thankfully, Puppet 3 has made implementing Hiera really simple.
  • 45. In the early days... Tuesday, April 9, 13 Please don’t use the hiera() function. Consider it legacy.
  • 46. In the early days... Tuesday, April 9, 13 This is better, as the user can override this default parameter value. With this, you’re locked into hiera.
  • 47. Here’s the magic! Tuesday, April 9, 13 But really, just get yourself onto Puppet 3 and take advantage of automatic Hiera!
  • 48. 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, April 9, 13 This slide could be more visual vs text-based
  • 49. Data Bindings don’t lock yourself in #PuppetCamp Tuesday, April 9, 13 Additionally, protect yourself from a potential loss of Hiera.
  • 50. Built into Puppet 3 Tuesday, April 9, 13 data_bindings were implemented to be an abstraction for data lookup, defaulting to hiera for now
  • 51. Tuesday, April 9, 13 There’s already an alternative out there, for consulting foreman as your data backend
  • 52. Tuesday, April 9, 13 But really, just get yourself onto Puppet 3 and take advantage of automatic Hiera!
  • 53. Tuesday, April 9, 13 Hiera backends are pluggable too. Here are two examples.
  • 55. Best Practices • Confirm to the Style Guide • Use Parameterized Classes • Don’t use hiera() directly #PuppetCamp Tuesday, April 9, 13 Re-cap.
  • 56. The Team Tuesday, April 9, 13
  • 57. What have we been up to? • Re-launch and Re-design Tuesday, April 9, 13 Though we’re small, we’ve been really busy!
  • 59. Tuesday, April 9, 13 Lots of little features add up to a substantially nicer to use Forge.
  • 60. Tuesday, April 9, 13 Download counts, now in your search results!
  • 61. GitHub-based Module Publish ryan@puppetlabs.com Tuesday, April 9, 13 Edit your Modulefile, push your commit and we’ll do the publishing! Coming soon to a repository near you.
  • 62. What’s Next? A Full & Public API Tuesday, April 9, 13 Also coming soon, an actual API for doing all sorts of things with the Forge.
  • 63. What’s Next? Tuesday, April 9, 13 Just an experimental mock-up of search results. Actual feature will absolutely look and behave differently.
  • 64. On-Premise Forge? Tuesday, April 9, 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
  • 65. On-Premise Forge? Tuesday, April 9, 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
  • 66. On-Premise Forge? Tuesday, April 9, 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
  • 67. On-Premise Forge? Tuesday, April 9, 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
  • 68. On-Premise Forge? Tuesday, April 9, 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
  • 69. On-Premise Forge? Tuesday, April 9, 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
  • 70. PulpProject.org Tuesday, April 9, 13 RedHat’s Pulp Project is repository management software that recently added support for Puppet Modules.
  • 71. • Manage Modules on-premise • Mirror Public Forge • BUT, please work with me on this • Email me or comment on #5033 • ryan@puppetlabs.com Tuesday, April 9, 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.
  • 72. Want to help? #PuppetCamp Tuesday, April 9, 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/
  • 73. • Sharpen your skills • Get Certified • Online learning on the way • puppetlabs.com/education #PuppetCamp Tuesday, April 9, 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/
  • 75. Thank You! Please email (or tweet) feedback and questions ryan@puppetlabs.com - @ryanycoleman forge.puppetlabs.com puppetlabs.com/jobs #PuppetCamp Tuesday, April 9, 13 Seriously, join our team. It’ll be awesome.