An (opinionated) awesome list of resources about Puppet, a configuration management software.
It has been inspired by rnelson0's list and its forks, but it is not a fork of that list due to the lack of a license.
Disclaimer: Puppet is a trademark of Puppet, Inc., Perforce Software, Inc. or an affiliate (link). This project is not representing these companies, nor is in any way endorsed by them. All other trademarks mentioned in this project are property of their respective owners.
- Puppet 8 for DevOps Engineers - Probably the most up-to-date book about Puppet, focusing on the use of Puppet 8.
- Puppet Best Practices - Written for Puppet 6, it's still a valid resource for Puppet 7/8 due to the focus on best practices and changes between these majors being mostly behind the scenes.
- RubyMine and other JetBrains IDEs
- Puppet Plugin for JetBrains IDEs - Provides formatting, highlighting, assistance and more for Puppet >= 3.x.
- Vim
- vim-puppet - Adds automatic alignment, formatting and highlighting for Puppet.
- Visual Studio Code\Codium and Theia IDE
- Puppet VSCode extension - Available in Visual Studio Marketplace and Open VSX Registry. Provides formatting, Intellisense, linting and more.
- Hiera
- hiera-eyaml
- Hiera-Eyaml: How to Use It - Puppet Blog - Quick introduction to hiera-eyaml.
- HOWTO Set Up and Utilize hiera-eyaml - SIMP docs - Step-by-step introduction to hiera-eyaml.
- hiera-eyaml
- Puppet Cookbook - Cookbook of example solutions in Puppet for different tasks.
- PuppetModule.info - Community-maintained module documentation website.
- Source - Available on GitHub.
- r10k
- Fattening the workflow, part 2: r10k - Puppeteers blog - Quickstart on r10k.
- Managing code with r10k - Puppet Enterprise docs - PE docs, but r10k can be used with Open Source Puppet.
- Vox Pupuli - Open Source community for Puppet modules, tools and docs authors.
- Plugins list - Plugins, tools and resources for Puppet, practically an awesome list.
- puppet-collections - Iterator written in Puppet.
- puppet-example - Example repository for Puppet modules automation and development.
- puppet-extlib - Extension of the Standard Library.
- puppet-healthcheck - Healthcheck resources.
- puppet-puppet_certificate - Provider and resource for Puppet certificates.
- puppetlabs-puppet_status_check - Status checks for the Puppet infrastructure.
- metadata-json-lint - Validator/linter for Puppet modules' metadata.json.
- puppet-ghostbuster - Helps to find unused code in Puppet.
- Puppet Development Kit - Collection of tools to develop, validate and test Puppet modules.
- g10k - A r10k fork in Go.
- Jens - Python toolkit to generate Puppet environments dynamically based on control repositories.
- librarian-puppet - Bundler to manage Puppet modules through a Puppetfile, with support for dependencies defined in Modulefile or metadata.json.
- ModuleSync - Ruby gem to synchronize meta-files (Gemfile, .gitignore etc) between Puppet modules of an organization.
- Pdksync - Tool synchronize settings between multiple Puppet modules through PDK.
- puppet-blacksmith - Ruby gem with Rake tasks to manage a module on the Puppet Forge.
- r10k - Tool to manage git/SVN-based environments and modules defined in a Puppetfile, but without dependency resolving.
- puppet-r10k - Puppet module to manage r10k.
- ra10ke - Rake tasks for r10k and Puppetfiles.
- Beaker - Tool to run acceptance acceptance tests using VMs.
- beaker-hiera - Allows to use Hiera data in Beaker tests.
- Hiera Data Manager - Web interface to visualize/search Hiera data.
- puppet-hdm - Puppet module to install/manage Hiera Data Manager.
- hiera-eyaml - Hiera backend that allows to encrypt values in Hiera YAML files.
- hiera-eyaml-gpg - Allows to use GPG encryption with hiera-eyaml.
- Puppetboard - Web interface for PuppetDB that aims to be the equivalent of Puppet Enterprise console for Open Source Puppet.
- puppet-puppetboard - Puppet module to install Puppetboard.
- Puppet Bolt - Agent-less orchestration tool, to run tasks/scripts/commands on remote nodes through SSH or WinRM.
- puppet-bolt - Puppet module to install/manage Bolt.
- Puppet Catalog Diff - Tool to compare Puppet catalogs.
- Puppet Summary - Web interface written in Go.
- puppet-puppet_summary - Puppet module to install/manage Puppet Summary.
- pypuppetdb - Python library to interact with the PuppetDB API.
- onceover - Run tests against a Puppet control repository (for example used with r10k).
- puppet-syntax - Syntax checks for manifests, templates and Hiera YAML.
- puppet-lint - Test code against the Puppet style guide.
- rspec-puppet - RSpec tests for Puppet manifests.
Contributions are welcome! Guidelines are here.