SlideShare a Scribd company logo
© Perforce Software, Inc.
Puppet Evolution
Key Changes and
Modernization Tips
David Sandilands
Puppet Community and
Developer Relationship Lead
February 2025
© Perforce Software, Inc.
• Puppet Development Kit (PDK)
• Puppet VS Code extension
Use the Right Tools
• Dev tools and approaches from Vox Pupuli
• AI like GitHub CoPilot (responsibly)
© Perforce Software, Inc.
Packages
• In 0.x versions of Puppet, some users
found having too many package
resources slowed everything down.
• So they created repos where a profile
could install a single package and pull
all dependencies down.
© Perforce Software, Inc.
Stages
DON’T
Just DON’T
Typical early setups, replicating the flow of scripts.
Makes maintenance and expansion hard.
© Perforce Software, Inc.
site.pp and Module Defaults
• Do not use style defaults outside of site.pp
• Legacy style defaults "should occur only at the top scope in your site manifest … because
resource defaults propagate through dynamic scope, which can have unpredictable effects
far away from where the default was declared."
• site.pp can create confusion
© Perforce Software, Inc.
Data Types
• Introduced during Puppet 4 2015, default to strict in Puppet 8 2023
• Validation and security
• AI can be pretty good at putting in data types
• Don’t forget an APL returning undef will error on Puppet 8
© Perforce Software, Inc.
Overuse of
Templates and
Content
• file_line was introduced in stdlib 2.1
in 2014 around about Puppet 3
• Before that, people used
content/templates — or you battled
with Augeas
• A lot of things were just left
hardcoded or unmanaged
© Perforce Software, Inc.
params.pp
• Before we got to Hiera 5 in 2016
with Puppet 5
• With hiera, we can simplify:
• No inherit from another class
• No need to use = operator
• No case/ifs
© Perforce Software, Inc.
Facts
• Legacy facts were introduced in 2014 with the inclusion of Facter 2 in Puppet 3.2
• Finally removed (by default) in Puppet 8
• Use the facts['networking']['hostname’] instead of top scoped variables
© Perforce Software, Inc.
Use the Full Features of
Custom Facts
• Most people right as simple script and leave it
• Timeouts
• Weighted resolutions
• Confine and features
• Rescue blocks
© Perforce Software, Inc.
• augeas
• cron
• host
• mount
• scheduled_task
• selboolean
• selmodule
Core Types Removed
In Puppet 6 (2018), a number of core types were moved to
modules. Make sure you add to Puppetfile and fixtures
• ssh_authorized_key
• sshkey
• yumrepo
• zfs
• zone
• zpool
© Perforce Software, Inc.
Roles and Profiles
• Way back in 2014, Gary Larizza first
talked about roles and profiles
• Gary always highlighted the idea that
patterns weren’t supposed to be
followed religiously
© Perforce Software, Inc.
Move from ERB to ERP Templates
• EPP v ERB
• EPP is faster (due to only scoping facts needed)
• EPP provides greater security as it has a limited scope and validates all data
• ERB does not validate and drops non-existent variables
• EPP comes with render and validate tools
• EPP can process Sensitive without unwrapping
• Watch out for voxpupuli/erb2epp
© Perforce Software, Inc.
Sensitive Data
• Keep your data secure throughout
• EPP Use hiera-eyaml at rest in hiera
• Use Sensitive data in the catalog
• Use node_encrypt for transport
© Perforce Software, Inc.
Sensitive Templates and Deferred Functions
• Puppet 6.20 and later can evaluate Sensitive instead of having to unwrap in the template
• As of Puppet 7.17 / 8, deferred functions are lazily evaluated
© Perforce Software, Inc.
Trusted Facts and Commands
• Introduced in Puppet 6.11 (2021) to
access external data or make hiera
and classification flexible
• Check out
puppetlabs/puppet-data-service on G
itHub
• Puppet Docs:
Integration with External Data Provid
ers
© Perforce Software, Inc.
Lambdas
• Inline templates or defined types
were common before Puppet 4
• 17 functions create confusion
• Just look at the most common
• each 2799
• map 425
• filter 233
• reduce 141
• unique 168
© Perforce Software, Inc.
Outdated Modules
• Use the Forge Compatibility Report
to check for outdated modules
• Subscribe to individual modules to
get notified when there's an update
© Perforce Software, Inc.
Get Rid of Unused Code and Modules
• voxpupuli/puppet-ghostbuster on GitHub
© Perforce Software, Inc.
Testing and Debugging
• At least add a compile test, PDK --add-tests
• Enforce coverage completion
• Use Onceover
• Use AI responsibly

More Related Content

PPTX
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
PPTX
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
PPTX
Puppetizing Your Organization
PDF
Strategies for Puppet code upgrade and refactoring
PDF
Modules of the twenties
PDF
From SaltStack to Puppet and beyond...
KEY
Portable infrastructure with puppet
PDF
PuppetConf 2017: No Server Left Behind - Miguel Di Ciurcio Filho, Instruct
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
Puppetizing Your Organization
Strategies for Puppet code upgrade and refactoring
Modules of the twenties
From SaltStack to Puppet and beyond...
Portable infrastructure with puppet
PuppetConf 2017: No Server Left Behind - Miguel Di Ciurcio Filho, Instruct

Similar to The Evolution of Puppet: Key Changes and Modernization Tips (20)

PPTX
Accelerate your Journey to Pervasive Automation 05.03.2018
PPTX
Bolt Dynamic Inventory: Making Puppet Easier
PDF
PuppetConf track overview: Puppet Applied
PDF
Puppet Camp Sydney 2015: The (Im)perfect Puppet Module
PDF
Improving Operations Efficiency with Puppet
PDF
Puppet: From 0 to 100 in 30 minutes
PDF
Puppet - The IT automation software
PDF
[Celix] Scaling DevOps with Puppet and Perforce
PDF
Puppet getting started by Dirk Götz
PDF
PuppetConf track overview: Inside Puppet
PDF
Puppet overview
PDF
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
PDF
Workflow story: Theory versus practice in Large Enterprises
PPTX
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
PDF
Puppet Camp Berlin 2015: Nigel Kersten | Puppet Keynote
PDF
Puppet Camp Berlin 2015: Puppet Keynote
PPTX
Introduction to Puppet Enterprise 2016.5
PDF
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PPTX
Puppet camp amsterdam
ODP
Puppet slides for intelligrape
Accelerate your Journey to Pervasive Automation 05.03.2018
Bolt Dynamic Inventory: Making Puppet Easier
PuppetConf track overview: Puppet Applied
Puppet Camp Sydney 2015: The (Im)perfect Puppet Module
Improving Operations Efficiency with Puppet
Puppet: From 0 to 100 in 30 minutes
Puppet - The IT automation software
[Celix] Scaling DevOps with Puppet and Perforce
Puppet getting started by Dirk Götz
PuppetConf track overview: Inside Puppet
Puppet overview
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus practice in Large Enterprises
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Puppet Camp Berlin 2015: Nigel Kersten | Puppet Keynote
Puppet Camp Berlin 2015: Puppet Keynote
Introduction to Puppet Enterprise 2016.5
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
Puppet camp amsterdam
Puppet slides for intelligrape
Ad

More from Puppet (20)

PPTX
Puppet Community Day: Planning the Future Together
PPTX
Customizing Reporting with the Puppet Report Processor
PPTX
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
PPTX
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
PDF
Puppet camp2021 testing modules and controlrepo
PPTX
Puppetcamp r10kyaml
PDF
2021 04-15 operational verification (with notes)
PPTX
Puppet camp vscode
PDF
Applying Roles and Profiles method to compliance code
PPTX
KGI compliance as-code approach
PDF
Enforce compliance policy with model-driven automation
PDF
Keynote: Puppet camp compliance
PPTX
Automating it management with Puppet + ServiceNow
PPTX
Puppet: The best way to harden Windows
PPTX
Simplified Patch Management with Puppet - Oct. 2020
PPTX
Accelerating azure adoption with puppet
PDF
Puppet catalog Diff; Raphael Pinson
PPTX
ServiceNow and Puppet- better together, Kevin Reeuwijk
PDF
Take control of your dev ops dumping ground
PDF
100% Puppet Cloud Deployment of Legacy Software
Puppet Community Day: Planning the Future Together
Customizing Reporting with the Puppet Report Processor
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Puppet camp2021 testing modules and controlrepo
Puppetcamp r10kyaml
2021 04-15 operational verification (with notes)
Puppet camp vscode
Applying Roles and Profiles method to compliance code
KGI compliance as-code approach
Enforce compliance policy with model-driven automation
Keynote: Puppet camp compliance
Automating it management with Puppet + ServiceNow
Puppet: The best way to harden Windows
Simplified Patch Management with Puppet - Oct. 2020
Accelerating azure adoption with puppet
Puppet catalog Diff; Raphael Pinson
ServiceNow and Puppet- better together, Kevin Reeuwijk
Take control of your dev ops dumping ground
100% Puppet Cloud Deployment of Legacy Software
Ad

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Cloud computing and distributed systems.
PDF
Modernizing your data center with Dell and AMD
PDF
Machine learning based COVID-19 study performance prediction
PPT
Teaching material agriculture food technology
PDF
GamePlan Trading System Review: Professional Trader's Honest Take
DOCX
The AUB Centre for AI in Media Proposal.docx
Empathic Computing: Creating Shared Understanding
Network Security Unit 5.pdf for BCA BBA.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Reach Out and Touch Someone: Haptics and Empathic Computing
Understanding_Digital_Forensics_Presentation.pptx
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
NewMind AI Monthly Chronicles - July 2025
Chapter 3 Spatial Domain Image Processing.pdf
cuic standard and advanced reporting.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Spectral efficient network and resource selection model in 5G networks
Advanced methodologies resolving dimensionality complications for autism neur...
Cloud computing and distributed systems.
Modernizing your data center with Dell and AMD
Machine learning based COVID-19 study performance prediction
Teaching material agriculture food technology
GamePlan Trading System Review: Professional Trader's Honest Take
The AUB Centre for AI in Media Proposal.docx

The Evolution of Puppet: Key Changes and Modernization Tips

  • 1. © Perforce Software, Inc. Puppet Evolution Key Changes and Modernization Tips David Sandilands Puppet Community and Developer Relationship Lead February 2025
  • 2. © Perforce Software, Inc. • Puppet Development Kit (PDK) • Puppet VS Code extension Use the Right Tools • Dev tools and approaches from Vox Pupuli • AI like GitHub CoPilot (responsibly)
  • 3. © Perforce Software, Inc. Packages • In 0.x versions of Puppet, some users found having too many package resources slowed everything down. • So they created repos where a profile could install a single package and pull all dependencies down.
  • 4. © Perforce Software, Inc. Stages DON’T Just DON’T Typical early setups, replicating the flow of scripts. Makes maintenance and expansion hard.
  • 5. © Perforce Software, Inc. site.pp and Module Defaults • Do not use style defaults outside of site.pp • Legacy style defaults "should occur only at the top scope in your site manifest … because resource defaults propagate through dynamic scope, which can have unpredictable effects far away from where the default was declared." • site.pp can create confusion
  • 6. © Perforce Software, Inc. Data Types • Introduced during Puppet 4 2015, default to strict in Puppet 8 2023 • Validation and security • AI can be pretty good at putting in data types • Don’t forget an APL returning undef will error on Puppet 8
  • 7. © Perforce Software, Inc. Overuse of Templates and Content • file_line was introduced in stdlib 2.1 in 2014 around about Puppet 3 • Before that, people used content/templates — or you battled with Augeas • A lot of things were just left hardcoded or unmanaged
  • 8. © Perforce Software, Inc. params.pp • Before we got to Hiera 5 in 2016 with Puppet 5 • With hiera, we can simplify: • No inherit from another class • No need to use = operator • No case/ifs
  • 9. © Perforce Software, Inc. Facts • Legacy facts were introduced in 2014 with the inclusion of Facter 2 in Puppet 3.2 • Finally removed (by default) in Puppet 8 • Use the facts['networking']['hostname’] instead of top scoped variables
  • 10. © Perforce Software, Inc. Use the Full Features of Custom Facts • Most people right as simple script and leave it • Timeouts • Weighted resolutions • Confine and features • Rescue blocks
  • 11. © Perforce Software, Inc. • augeas • cron • host • mount • scheduled_task • selboolean • selmodule Core Types Removed In Puppet 6 (2018), a number of core types were moved to modules. Make sure you add to Puppetfile and fixtures • ssh_authorized_key • sshkey • yumrepo • zfs • zone • zpool
  • 12. © Perforce Software, Inc. Roles and Profiles • Way back in 2014, Gary Larizza first talked about roles and profiles • Gary always highlighted the idea that patterns weren’t supposed to be followed religiously
  • 13. © Perforce Software, Inc. Move from ERB to ERP Templates • EPP v ERB • EPP is faster (due to only scoping facts needed) • EPP provides greater security as it has a limited scope and validates all data • ERB does not validate and drops non-existent variables • EPP comes with render and validate tools • EPP can process Sensitive without unwrapping • Watch out for voxpupuli/erb2epp
  • 14. © Perforce Software, Inc. Sensitive Data • Keep your data secure throughout • EPP Use hiera-eyaml at rest in hiera • Use Sensitive data in the catalog • Use node_encrypt for transport
  • 15. © Perforce Software, Inc. Sensitive Templates and Deferred Functions • Puppet 6.20 and later can evaluate Sensitive instead of having to unwrap in the template • As of Puppet 7.17 / 8, deferred functions are lazily evaluated
  • 16. © Perforce Software, Inc. Trusted Facts and Commands • Introduced in Puppet 6.11 (2021) to access external data or make hiera and classification flexible • Check out puppetlabs/puppet-data-service on G itHub • Puppet Docs: Integration with External Data Provid ers
  • 17. © Perforce Software, Inc. Lambdas • Inline templates or defined types were common before Puppet 4 • 17 functions create confusion • Just look at the most common • each 2799 • map 425 • filter 233 • reduce 141 • unique 168
  • 18. © Perforce Software, Inc. Outdated Modules • Use the Forge Compatibility Report to check for outdated modules • Subscribe to individual modules to get notified when there's an update
  • 19. © Perforce Software, Inc. Get Rid of Unused Code and Modules • voxpupuli/puppet-ghostbuster on GitHub
  • 20. © Perforce Software, Inc. Testing and Debugging • At least add a compile test, PDK --add-tests • Enforce coverage completion • Use Onceover • Use AI responsibly