Inevitably, you will run into problems with your Puppet runs. Having good reporting is the key to knowing when failures occur. When most of your Puppet runs are error free, the IRC report mechanism we showed in Chapter 7, Reporting and Orchestration, is useful to detect errors quickly.
Tip
If you have more than the occasional error, then the IRC report will just become 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 provided by Puppet beaker. More information on Puppet beaker is available at https://github.com/puppetlabs/beaker.
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 these separately and provide some methods to diagnose issues. We will also be covering debugging, in detail.