Plugins Edit
This is a community curated list of plugins and tools for Puppet.
Tools and plugins are defined in the _data/tools
directory of the community
website repository
Tools without plugins are going to be listed in the table under the Tools
header. Tools with plugins will have their own header and table listing the
plugins defined for that tool.
Tools
Useful tools when writing Puppet.
Tool Link | Description |
---|---|
Beaker | Accceptance testing harness. |
Hiera Data Manager | Web interface for Hiera data |
Hiera | A simple pluggable Hierarchical Database. |
Jerakia | A policy-based pluggable and extendable data lookup system. A drop-in replacement for Hiera. |
Metadata JSON Lint | A linter for your metadata.json file. |
ModuleSync | Keep a set of modules synced to a common base template. |
puppet-debugger | A interactive live debugger repl for the puppet language |
Ghostbuster | Dead code detector for Puppet. |
Puppet Lint | Check that your manifests conform to the style guide. |
Retrospec | A tool that retrofits your module with all the necessary files and unit tests you forgot to create. Retrospec can also be used to easily generate some of the more advance puppet files like facts, functions, types, providers, and reports. |
Puppet Strings | The next generation puppet documentation extraction and presentation tool. |
Puppet Summary | Another web interface for Puppet reports |
Puppet Catalog Diff | Tool to diff Puppet catalogs. |
Puppet Check | A streamlined comprehensive set of checks for your entire Puppet code and data. |
Puppetboard | A web interface to PuppetDB aiming to replace the reporting functionality of Puppet Dashboard. |
Puppet Explorer | Puppet Explorer is a web application for PuppetDB that lets you explore your Puppet data. |
PuppetLabs Spec Helper | Rake tasks and a standard spec_helper for running spec tests on puppet modules. |
RSpec Puppet | RSpec tests for your Puppet manifests. |
Beaker
Accceptance testing harness.
Plugin Link | Description |
---|---|
beaker-answers | For use for the Beaker acceptance testing tool. |
beaker-digitalocean | Adds DigitalOcean as a hypervisor for Beaker. |
beaker-hiera | Beaker DSL Extension Helpers! |
beaker-librarian | Helpers to allow beaker-based tests to use librarian-puppet for module installation on VM hosts. |
beaker-libvirt | Beaker hypervisor for libvirt/virsh. |
beaker-puppet_install_helper | A beaker helper for installing PE, Foss/Gem puppet, or puppet-agent all in one beaker method. |
beaker-rspec | Bridge between beaker and rspec. |
beaker_spec_helper | A set of shared spec helpers specific for Beaker. |
simp-beaker-helpers | Beaker helper methods to help scaffold SIMP acceptance tests. |
Editor and IDE
Editor and IDE support for Puppet.
Plugin Link | Description |
---|---|
Atom plugin for Puppet | An Atom plugin for Puppet based on the Puppet Language Server |
Intellij Puppet Support | This plugin provides Puppet language support for Intellij. |
Spacemacs | A community-driven Emacs distribution. Comes with a Puppet layer that sets up flycheck and puppet-mode. |
Visual Studio Code Extension for Puppet | This extension provides full Puppet Language support for Visual Studio Code, including syntax highlighting, inline linting, autocomplete, PDK integration and compile debugging |
flycheck | On the fly Puppet syntax checking for GNU Emacs using puppet parser and puppet-lint. |
puppet-mode | Edit Puppet 3 manifests with GNU Emacs 24. |
vim-puppet | Plugin to make Vim more Puppet friendly. |
Hiera
A simple pluggable Hierarchical Database.
Plugin Link v. 3 | Plugin Link v. 5 | Description |
---|---|---|
hiera-aws | AWS Backend. | |
hiera-cloudformation | AWS CloudFormation backend. | |
hiera-consul | Consul backend. | |
hiera-etcd | Etcd distributed configuration store backend. | |
hiera-eyaml | hiera-eyaml | Backend that provides per-value asymmetric encryption of sensitive data. |
hiera-eyaml-gpg | GPG encryption backend for the hiera-eyaml module. | |
hiera-file | File backend. | |
hiera-foreman | Backend that queries the Foreman for data. | |
hiera-gpg | GPG Backend. | |
hiera-http | HTTP Backend. | |
hiera-json | JSON Backend. | |
hiera-ldap | LDAP Backend. | |
hiera-mysql | MySQL Backend. | |
hiera-psql | PostgreSQL backend. | |
hiera-redis | hiera_redis | A Redis backend. |
hiera-vault | hiera_vault | Backend to retrieve secrets from Hashicorp's Vault. |
Jerakia
A policy-based pluggable and extendable data lookup system. A drop-in replacement for Hiera.
Plugin Link | Description |
---|---|
puppet-jerakia | A Puppet module for managing Jerakia. |
Miscellaneous
Plugins/libraries for tools that don’t fit anywhere else.
Plugin Link | Description |
---|---|
guard-puppet-lint | As Puppet manifest files change, run puppet-lint on them. |
node-puppetdbquery | A JavaScript version of the puppetdbquery module for puppet. |
puppet-ghostbuster | Dead code detector for Puppet. |
pypuppetdb | Python library for working with the PuppetDB API |
ModuleSync
Keep a set of modules synced to a common base template.
Plugin Link | Description |
---|---|
Community configs | The templates used by the voxpupuli modules |
OpenStack configs | The templates used by the OpenStack Puppet Modules. |
PuppetLabs' configs | The templates used by most of PuppetLabs' supported modules. |
Puppet Lint
Check that your manifests conform to the style guide.
Plugin Link | Description |
---|---|
absolute_classname | Check for relative class name inclusions. |
absolute_template | Check if paths to the template() function are relative. |
alias | Check for alias parameters in resources. |
appends | Check that the appends operator (+=) is not used (removed in Puppet 4.0.0). |
classes_and_types_beginning_with_digits | Check for types and class names that begin with digits. |
duplicate_class_parameters | Check that class parameter names are unique. |
empty_string | Check for variables assigned to the empty string (deprecated, see params_empty_string). |
empty_trailing_lines | Check for trailing empty lines. |
file_ensure | Check the ensure attribute on file resources. |
file_source_rights | Check file rights when providing a source. |
fileserver | Check if puppet:/// is used instead of file(). |
global_resource | Check that your manifests have no global resources. |
leading_zero | Check for unquoted numbers with leading zero. |
legacy_facts | Check for legacy facts that have been replaced with new structured facts. |
numeric_variable | Check that your variables are not numeric. |
package_ensure | Check the ensure attribute on package resources. |
param_docs | Check that validates all parameters are documented. |
params_empty_string | Check for class parameters with string datatype assigned to the empty string. |
resource_outside_class | Check if resources exist outside of a class or defined type. |
resource_reference_outside_class | Check for references which are declared outside of the class where the reference is used. |
resource_reference_syntax | Checks that the reference syntax follows Puppet 4 style. |
roles_and_profiles | Check that a node definition declares only a role, a role class does not have any param and only declares profiles, and a profiles class can declare anything but a role. |
security | Checks puppet manifests for security related problems. |
spaceship_operator_without_tag | Check that spaceship operator is called with a tag. |
strict_indent | Check that your manifests follow a strict indentation pattern. |
template_file_extension | Check that all template and epp functions filenames end correctly. |
top_scope_facts | Check for top scope facts that should use the facts hash instead. |
trailing_comma | Check for missing trailing commas. |
trailing_newline | Check that your manifest files end with newlines. |
undef_in_function | Check for undef in function calls. |
unquoted_string | Check that selectors and case statements cases are quoted. |
usascii_format | Check that manifest files contain only US ASCII. |
variable_contains_upcase | Check that your variables are all lower case. |
version_comparison | Check for versions compared as numbers. |
vim_modeline | Check for vim comment (modeline) as the last line in a manifest. |
world_writable_files | Check that file resources are not world writable. |
Puppet Catalog Diff
Tool to diff Puppet catalogs.
Plugin Link | Description |
---|---|
puppet-catalog-diff-viewer | A viewer for the puppet-catalog-diff tool. |
R10k
Puppet environment and module deployment.
Plugin Link | Description |
---|---|
G10k | r10k fork in Go. |
Generate Puppetfile | Convert dependencies into a Puppetfile. |
Puppetfile updater | Keep your Puppetfile up-to-date. |
R10k dashboard | R10k's friendly companion. |
R10k diff | See differences in your Puppetfile between different environments. |
Ra10ke | Rake tasks related to R10K and Puppetfile |
Reaktor | Reaktor is a modular post-receive hook designed to work with r10k |
RSpec Puppet
RSpec tests for your Puppet manifests.
Plugin Link | Description |
---|---|
rspec-hiera-puppet | Hiera fixtures for puppet-rspec tests. |
rspec-puppet-augeas | RSpec tests for Augeas resources inside Puppet manifests. |
rspec-puppet-facts | Simplify your unit tests by looping on every supported Operating System and populating facts. |
rspec-puppet-utils | Helper classes for mock/stub functions, templates and hierdata. |
simp-rspec-puppet-facts | Shim that injects SIMP-related facts into rspec-puppet-facts. |