Testing Puppet code
It has been clear for years that there is the strong need to be able to test how changes to our Puppet code can affect our infrastructure.
The topic is quite large, complex, and, to be honest, not completely solved, but there are tools and methods than can help us in safely working with Puppet in a production environment.
We can test our code with these tools:
The command
puppet parser validate
, to check the syntax of our manifestspuppet-lint (http://puppet-lint.com/) to check that the style of our code conforms with the recommended style guide
rspec-puppet to test the catalog and the logic of our modules
rspec-puppet-system and Beaker, to test what happens when our catalog is applied to a real system
We can also follow some procedures and techniques, such as:
Using the
--noop
option to verify what would be the changes before applying themUsing Puppet environments to try our code on test systems before pushing it into production
Having canary nodes where Puppet is run and...