SlideShare ist ein Scribd-Unternehmen logo
1 von 75
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Mehr von 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
 

Mehr von 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...
 

Kürzlich hochgeladen

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Kürzlich hochgeladen (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

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.