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
Metadata JSON Lint A linter for your metadata.json file.
Puppet Explorer Puppet Explorer is a web application for PuppetDB that lets you explore your Puppet data.
Ghostbuster Dead code detector for Puppet.
Hiera A simple pluggable Hierarchical Database.
Beaker Accceptance testing harness.
Puppet Catalog Diff Tool to diff Puppet catalogs.
Puppet Strings The next generation puppet documentation extraction and presentation tool.
Puppet Check A streamlined comprehensive set of checks for your entire Puppet code and data.
Jerakia A policy-based pluggable and extendable data lookup system. A drop-in replacement for Hiera.
Puppetboard A web interface to PuppetDB aiming to replace the reporting functionality of Puppet Dashboard.
puppet-debugger A interactive live debugger repl for the puppet language
RSpec Puppet RSpec tests for your Puppet manifests.
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.
PuppetLabs Spec Helper Rake tasks and a standard spec_helper for running spec tests on puppet modules.
Puppet Lint Check that your manifests conform to the style guide.
ModuleSync Keep a set of modules synced to a common base template.

Editor and IDE

Editor and IDE support for Puppet.

Plugin Link Description
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.
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 Description
hiera-aws AWS Backend.
hiera-cloudformation AWS CloudFormation backend.
hiera-consul Consul backend.
hiera-etcd Etcd distributed configuration store backend.
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 A Redis backend.
hiera-rest Backend that allows one to look up parameters via calls to a REST endpoint.
hiera-vault Backend to retrieve secrets from Hashicorp's Vault.

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.

Puppet Catalog Diff

Tool to diff Puppet catalogs.

Plugin Link Description
puppet-catalog-diff-viewer A viewer for the puppet-catalog-diff tool.

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.

R10k

Puppet environment and module deployment.

Plugin Link Description
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.

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.
empty_string Check for variables assigned to the empty string.
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.
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.
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.

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.

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