Catalog failures
When the client requests a catalog, it is compiled on the master and sent down to the client. If the catalog fails to compile, the error is printed and can, most likely, be corrected easily. For example, the following base
class has an obvious error:
class base { file {'one': path => '/tmp/one', ensure => 'directory', } file {'one': path => '/tmp/one', ensure => 'file', } }
The file resource is defined twice with the same name. The error appears when we run Puppet, as shown in the following screenshot:
Fixing this type of duplicate declaration is very straightforward; the line numbers of each declaration are printed in the error message. Simply locate the two files and remove one of the entries.
A more perplexing issue is when the catalog compiles cleanly but fails to apply on the node. The catalog is stored in the agent's client_data
directory (current versions use JSON...