Testing the Puppet code
It has been clear for years that there is a strong need to be able to test how changes to our Puppet code can affect our infrastructure.
The topic is quite large and, to be honest, not completely solved, but there are tools and methods than can help us to work safely with Puppet in a production environment.
We can test our code with the following tools:
The command
puppet parser validate
to check the syntax of our manifestsThe command
puppet-lint
to check the style of our codeThe tool rspec-puppet to test the catalog and the logic of our modules
The tool rspec-system-puppet 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:
Use the
--noop
option to verify what the changes before applying them would beUse Puppet environments to try our code on test systems before pushing it into production
Have canary nodes where Puppet is run and changes are verified
Have a gradual and clustered deployment...