Inevitably, you will run into problems with your Puppet runs but having a good reporting mechanism is the key to knowing when failures occur. The IRC report mechanism we discussed in Chapter 7, Reporting and Orchestration, is useful to detect errors quickly, when most of your Puppet runs are error-free.
Note
If you have more than the occasional error, then the IRC report will just become a noise that you'll learn to ignore. If you are having multiple failures in your code, you should start looking at the acceptance testing procedures. Puppet Labs provides a testing framework known as Puppet beaker. More information on Puppet beaker is available at https://github.com/puppetlabs/beaker. A simpler option is rspec-puppet. More information on rspec-puppet is available at http://rspec-puppet.com/tutorial/.
Most of the Puppet failures I've come across end up in two buckets. These buckets are, as follows:
Connectivity to Puppet and certificates
Catalog failure
We'll examine...