SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Publishing A Module On The
Puppet Forge
An introduction to packaging your module and
sharing it with the community
Bill Fraser
February 25, 2014
Agenda
•
•
•
•
•
•
•

2

Introduction
Why you should publish your module
What is a module, anyway?
Managing configuration with style!
Continuous integration
Next steps
Q&A

© 2014 Pythian
Introduction

3

© 2014 Pythian
Why Publish A Module?
•
•
•
•
•
•
•

4

Major strength of Puppet
Over 2000 modules
Integration via Puppet Module Tool
Metadata (version, release date, downloads)
Searchable
Documentation (requirements, parameters, usage)
Giving back to the community

© 2014 Pythian
Truth In Advertising
•
•
•
•
•

5

Documentation exists
Adheres to best practice
Dependency resolution
Semantic versioning
Automated test and build

© 2014 Pythian
What Is A Module?
1.
2.
3.
4.

6

Identify Problem
Solve Problem
???
Profit!

© 2014 Pythian
What Is A Module?
/etc/puppet/modules/widget/manifests/init.pp

7

© 2014 Pythian
What Is A Module?
• widget – Top-level matches the name of the module
– manifests/ – All of the manifests for the module
• init.pp – Main class definition for the module
• doodad.pp – Class named widget::doodad
– files/ – Location for static files

– lib/ – Contains plugins, custom facts / resources
– templates/ – Contains templates
– tests/ – Examples of how to declare classes / types
– spec/ – Contains spec tests

8

© 2014 Pythian
puppet module generate
•

Modulefile
– Module metadata
– Dependency information

•
•

9

README
spec_helper.rb

© 2014 Pythian
Managing Configuration With Style!
• “Just because you can, doesn’t mean you should”
• By Conforming to the style guide, you ensure that
–
–
–
–

You follow best practice in module design and style
Your module is readable and therefore easier to maintain
Your module will work with an ENC without requiring one
You do not inherit or declare other classes unless you need to

• puppet-lint is your friend!

10

© 2014 Pythian
puppet-lint
• Install puppet-lint

• Run puppet-lint

• But wait, let’s make it more awesome!

11

© 2014 Pythian
puppet-lint
• Gemfile

• Rakefile

12

© 2014 Pythian
Continuous Integration
• Automatic testing against multiple Ruby and / or
Puppet versions
• Travis CI and GitHub
– Sign in through GitHub OAuth and grant read and
write access to GitHub
– Activate GitHub service hooks
– Add .travis.yml to your module repository
– Validate your .travis.yml file with travis-lint
– Trigger a build

13

© 2014 Pythian
Continuous Integration
Add .travis.yml to your module repository

14

© 2014 Pythian
Continuous Integration

15

© 2014 Pythian
Next Steps
• Test Driven Development (TDD)
• Behaviour Driven Development (BDD)
• rspec-puppet
• rspec-system

16

© 2014 Pythian
References
•
•
•
•
•
•
•

17

Puppet Forge: http://forge.puppetlabs.com/
Style Guide: http://docs.puppetlabs.com/guides/style_guide.html
Publishing Modules on the Puppet Forge:
http://docs.puppetlabs.com/puppet/latest/reference/modules_publishing.html
puppet-lint: http://puppet-lint.com/
Travis CI: https://travis-ci.org/
Pro Puppet, Second Edition: http://www.apress.com/9781430260400
GDash Module
– Puppet Forge: http://forge.puppetlabs.com/bfraser/gdash
– GitHub: https://github.com/bfraser/puppet-gdash

© 2014 Pythian
Questions?
Thank you!

Bill Fraser
fraser@pythian.com

18

© 2014 Pythian

Weitere ähnliche Inhalte

Was ist angesagt?

From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...CloudBees
 
Provisioning environments. A simplistic approach
Provisioning  environments. A simplistic approachProvisioning  environments. A simplistic approach
Provisioning environments. A simplistic approachEder Roger Souza
 
DevOps para Open Source com Azure DevOps
DevOps para Open Source com Azure DevOpsDevOps para Open Source com Azure DevOps
DevOps para Open Source com Azure DevOpsEmmanuel Gomes Brandão
 
Getting started with Octopus Deploy
Getting started with Octopus DeployGetting started with Octopus Deploy
Getting started with Octopus DeployKaroline Klever
 
10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco projectSymphony Software Foundation
 
Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014adriantwright
 
Jenkins introduction
Jenkins introductionJenkins introduction
Jenkins introductionGourav Varma
 
ASP.NET Core 1.0: Understanding ASP.NET Core 1.0 (ASP.NET 5)
ASP.NET Core 1.0: Understanding ASP.NET Core 1.0 (ASP.NET 5) ASP.NET Core 1.0: Understanding ASP.NET Core 1.0 (ASP.NET 5)
ASP.NET Core 1.0: Understanding ASP.NET Core 1.0 (ASP.NET 5) WinWire Technologies Inc
 
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...Edureka!
 
Drone presentation
Drone presentationDrone presentation
Drone presentationLance Smith
 
OpenStack: Upstream First
OpenStack: Upstream FirstOpenStack: Upstream First
OpenStack: Upstream FirstTesora
 
Ratpack Web Framework
Ratpack Web FrameworkRatpack Web Framework
Ratpack Web FrameworkDaniel Woods
 
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...Stefan Teixeira
 
Build Tools & Maven
Build Tools & MavenBuild Tools & Maven
Build Tools & MavenDavid Simons
 
Boston open stack meetup hyper v in openstack
Boston open stack meetup   hyper v in openstackBoston open stack meetup   hyper v in openstack
Boston open stack meetup hyper v in openstackKamesh Pemmaraju
 
Deployment taken seriously with Octopus Deploy and TeamCity
Deployment taken seriously with Octopus Deploy and TeamCityDeployment taken seriously with Octopus Deploy and TeamCity
Deployment taken seriously with Octopus Deploy and TeamCityTomas Jansson
 

Was ist angesagt? (20)

From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
 
Provisioning environments. A simplistic approach
Provisioning  environments. A simplistic approachProvisioning  environments. A simplistic approach
Provisioning environments. A simplistic approach
 
DevOps para Open Source com Azure DevOps
DevOps para Open Source com Azure DevOpsDevOps para Open Source com Azure DevOps
DevOps para Open Source com Azure DevOps
 
Getting started with Octopus Deploy
Getting started with Octopus DeployGetting started with Octopus Deploy
Getting started with Octopus Deploy
 
10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project
 
Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014
 
Webinar: "Continuous Delivery with Jenkins"
Webinar: "Continuous Delivery with Jenkins"Webinar: "Continuous Delivery with Jenkins"
Webinar: "Continuous Delivery with Jenkins"
 
Jenkins introduction
Jenkins introductionJenkins introduction
Jenkins introduction
 
ASP.NET Core 1.0: Understanding ASP.NET Core 1.0 (ASP.NET 5)
ASP.NET Core 1.0: Understanding ASP.NET Core 1.0 (ASP.NET 5) ASP.NET Core 1.0: Understanding ASP.NET Core 1.0 (ASP.NET 5)
ASP.NET Core 1.0: Understanding ASP.NET Core 1.0 (ASP.NET 5)
 
Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
 
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...
 
Drone presentation
Drone presentationDrone presentation
Drone presentation
 
OpenStack: Upstream First
OpenStack: Upstream FirstOpenStack: Upstream First
OpenStack: Upstream First
 
CI is dead, long live CI
CI is dead, long live CICI is dead, long live CI
CI is dead, long live CI
 
Ratpack Web Framework
Ratpack Web FrameworkRatpack Web Framework
Ratpack Web Framework
 
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
 
Build Tools & Maven
Build Tools & MavenBuild Tools & Maven
Build Tools & Maven
 
Boston open stack meetup hyper v in openstack
Boston open stack meetup   hyper v in openstackBoston open stack meetup   hyper v in openstack
Boston open stack meetup hyper v in openstack
 
Devops For Drupal
Devops  For DrupalDevops  For Drupal
Devops For Drupal
 
Deployment taken seriously with Octopus Deploy and TeamCity
Deployment taken seriously with Octopus Deploy and TeamCityDeployment taken seriously with Octopus Deploy and TeamCity
Deployment taken seriously with Octopus Deploy and TeamCity
 

Ähnlich wie Publishing a Module on the Puppet Forge

Ottawa Puppet User Group - Publishing a Module on the Puppet Forge
Ottawa Puppet User Group - Publishing a Module on the Puppet ForgeOttawa Puppet User Group - Publishing a Module on the Puppet Forge
Ottawa Puppet User Group - Publishing a Module on the Puppet ForgeBill Fraser
 
DEVASC_Module_1.pdf
DEVASC_Module_1.pdfDEVASC_Module_1.pdf
DEVASC_Module_1.pdfMorooCoffee
 
Portable infrastructure with puppet
Portable infrastructure with puppetPortable infrastructure with puppet
Portable infrastructure with puppetlkanies
 
Warsaw MuleSoft Meetup #6 - CI/CD
Warsaw MuleSoft Meetup  #6 - CI/CDWarsaw MuleSoft Meetup  #6 - CI/CD
Warsaw MuleSoft Meetup #6 - CI/CDPatryk Bandurski
 
DevOps open house #cpdof (17th september 2020)
DevOps open house #cpdof   (17th september 2020)DevOps open house #cpdof   (17th september 2020)
DevOps open house #cpdof (17th september 2020)Agile Testing Alliance
 
Experience in teaching devops
Experience in teaching devopsExperience in teaching devops
Experience in teaching devopsLen Bass
 
Devops Engineer E-Degree In Just 3 Months
Devops Engineer E-Degree In Just 3 MonthsDevops Engineer E-Degree In Just 3 Months
Devops Engineer E-Degree In Just 3 MonthsJohn Alex
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemBruno Borges
 
Easily adapt Puppet Modules with PDK Convert 02/22/2018
Easily adapt Puppet Modules with PDK Convert 02/22/2018Easily adapt Puppet Modules with PDK Convert 02/22/2018
Easily adapt Puppet Modules with PDK Convert 02/22/2018Claire Priester Papas
 
520_DevOps Engineer Master Program Curriculum.pdf
520_DevOps Engineer Master Program Curriculum.pdf520_DevOps Engineer Master Program Curriculum.pdf
520_DevOps Engineer Master Program Curriculum.pdfAniruddhNain1
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...Evans Ye
 
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...Puppet
 
Subsystems in the Wild - G Charters
Subsystems in the Wild - G ChartersSubsystems in the Wild - G Charters
Subsystems in the Wild - G Chartersmfrancis
 
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CloudBees
 
Mastering azure devOps - Dot Net Tricks
Mastering azure devOps - Dot Net TricksMastering azure devOps - Dot Net Tricks
Mastering azure devOps - Dot Net TricksGaurav Singh
 
Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Eugenio Minardi
 
Getting Started with Test-Driven Development at PHPtek 2023
Getting Started with Test-Driven Development at PHPtek 2023Getting Started with Test-Driven Development at PHPtek 2023
Getting Started with Test-Driven Development at PHPtek 2023Scott Keck-Warren
 
Using Grunt with Drupal
Using Grunt with DrupalUsing Grunt with Drupal
Using Grunt with Drupalarithmetric
 

Ähnlich wie Publishing a Module on the Puppet Forge (20)

Ottawa Puppet User Group - Publishing a Module on the Puppet Forge
Ottawa Puppet User Group - Publishing a Module on the Puppet ForgeOttawa Puppet User Group - Publishing a Module on the Puppet Forge
Ottawa Puppet User Group - Publishing a Module on the Puppet Forge
 
DEVASC_Module_1.pdf
DEVASC_Module_1.pdfDEVASC_Module_1.pdf
DEVASC_Module_1.pdf
 
Portable infrastructure with puppet
Portable infrastructure with puppetPortable infrastructure with puppet
Portable infrastructure with puppet
 
Warsaw MuleSoft Meetup #6 - CI/CD
Warsaw MuleSoft Meetup  #6 - CI/CDWarsaw MuleSoft Meetup  #6 - CI/CD
Warsaw MuleSoft Meetup #6 - CI/CD
 
DevOps open house #cpdof (17th september 2020)
DevOps open house #cpdof   (17th september 2020)DevOps open house #cpdof   (17th september 2020)
DevOps open house #cpdof (17th september 2020)
 
Experience in teaching devops
Experience in teaching devopsExperience in teaching devops
Experience in teaching devops
 
Devops Engineer E-Degree In Just 3 Months
Devops Engineer E-Degree In Just 3 MonthsDevops Engineer E-Degree In Just 3 Months
Devops Engineer E-Degree In Just 3 Months
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
 
Easily adapt Puppet Modules with PDK Convert 02/22/2018
Easily adapt Puppet Modules with PDK Convert 02/22/2018Easily adapt Puppet Modules with PDK Convert 02/22/2018
Easily adapt Puppet Modules with PDK Convert 02/22/2018
 
520_DevOps Engineer Master Program Curriculum.pdf
520_DevOps Engineer Master Program Curriculum.pdf520_DevOps Engineer Master Program Curriculum.pdf
520_DevOps Engineer Master Program Curriculum.pdf
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 
DevOps Hand On Workshop
DevOps Hand On WorkshopDevOps Hand On Workshop
DevOps Hand On Workshop
 
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
 
Subsystems in the Wild - G Charters
Subsystems in the Wild - G ChartersSubsystems in the Wild - G Charters
Subsystems in the Wild - G Charters
 
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
 
devops
devops devops
devops
 
Mastering azure devOps - Dot Net Tricks
Mastering azure devOps - Dot Net TricksMastering azure devOps - Dot Net Tricks
Mastering azure devOps - Dot Net Tricks
 
Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)
 
Getting Started with Test-Driven Development at PHPtek 2023
Getting Started with Test-Driven Development at PHPtek 2023Getting Started with Test-Driven Development at PHPtek 2023
Getting Started with Test-Driven Development at PHPtek 2023
 
Using Grunt with Drupal
Using Grunt with DrupalUsing Grunt with Drupal
Using Grunt with Drupal
 

Mehr von Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyamlPuppet
 
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
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscodePuppet
 
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
 

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

Kürzlich hochgeladen

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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
 
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
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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
 
[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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Kürzlich hochgeladen (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
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
 
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...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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...
 
[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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Publishing a Module on the Puppet Forge

  • 1. Publishing A Module On The Puppet Forge An introduction to packaging your module and sharing it with the community Bill Fraser February 25, 2014
  • 2. Agenda • • • • • • • 2 Introduction Why you should publish your module What is a module, anyway? Managing configuration with style! Continuous integration Next steps Q&A © 2014 Pythian
  • 4. Why Publish A Module? • • • • • • • 4 Major strength of Puppet Over 2000 modules Integration via Puppet Module Tool Metadata (version, release date, downloads) Searchable Documentation (requirements, parameters, usage) Giving back to the community © 2014 Pythian
  • 5. Truth In Advertising • • • • • 5 Documentation exists Adheres to best practice Dependency resolution Semantic versioning Automated test and build © 2014 Pythian
  • 6. What Is A Module? 1. 2. 3. 4. 6 Identify Problem Solve Problem ??? Profit! © 2014 Pythian
  • 7. What Is A Module? /etc/puppet/modules/widget/manifests/init.pp 7 © 2014 Pythian
  • 8. What Is A Module? • widget – Top-level matches the name of the module – manifests/ – All of the manifests for the module • init.pp – Main class definition for the module • doodad.pp – Class named widget::doodad – files/ – Location for static files – lib/ – Contains plugins, custom facts / resources – templates/ – Contains templates – tests/ – Examples of how to declare classes / types – spec/ – Contains spec tests 8 © 2014 Pythian
  • 9. puppet module generate • Modulefile – Module metadata – Dependency information • • 9 README spec_helper.rb © 2014 Pythian
  • 10. Managing Configuration With Style! • “Just because you can, doesn’t mean you should” • By Conforming to the style guide, you ensure that – – – – You follow best practice in module design and style Your module is readable and therefore easier to maintain Your module will work with an ENC without requiring one You do not inherit or declare other classes unless you need to • puppet-lint is your friend! 10 © 2014 Pythian
  • 11. puppet-lint • Install puppet-lint • Run puppet-lint • But wait, let’s make it more awesome! 11 © 2014 Pythian
  • 13. Continuous Integration • Automatic testing against multiple Ruby and / or Puppet versions • Travis CI and GitHub – Sign in through GitHub OAuth and grant read and write access to GitHub – Activate GitHub service hooks – Add .travis.yml to your module repository – Validate your .travis.yml file with travis-lint – Trigger a build 13 © 2014 Pythian
  • 14. Continuous Integration Add .travis.yml to your module repository 14 © 2014 Pythian
  • 16. Next Steps • Test Driven Development (TDD) • Behaviour Driven Development (BDD) • rspec-puppet • rspec-system 16 © 2014 Pythian
  • 17. References • • • • • • • 17 Puppet Forge: http://forge.puppetlabs.com/ Style Guide: http://docs.puppetlabs.com/guides/style_guide.html Publishing Modules on the Puppet Forge: http://docs.puppetlabs.com/puppet/latest/reference/modules_publishing.html puppet-lint: http://puppet-lint.com/ Travis CI: https://travis-ci.org/ Pro Puppet, Second Edition: http://www.apress.com/9781430260400 GDash Module – Puppet Forge: http://forge.puppetlabs.com/bfraser/gdash – GitHub: https://github.com/bfraser/puppet-gdash © 2014 Pythian