The most common use of octocatalog-diff
is to use puppet
locally to compile catalogs.
In order to successfully use Puppet to compile catalogs:
-
Puppet must be installed on the system.
It is the goal of
octocatalog-diff
to support Puppet version 3.8 and higher, installed via any means supported by Puppet. This includes the All-In-One agent package or installed as a Ruby gem.By default,
octocatalog-diff
will look for the Puppet binary in several common system locations.For maximum reliability, you can specify the full path to the Puppet binary in the configuration file. For example:
############################################################################################## # puppet_binary # This is the full path to the puppet binary on your system. If you don't specify this, # the tool will just run 'puppet' and hope to find it in your path. ############################################################################################## # settings[:puppet_binary] = '/usr/bin/puppet' settings[:puppet_binary] = '/opt/puppetlabs/puppet/bin/puppet'
-
Applies if you are using exported resources from PuppetDB (i.e., the octocatalog-diff
--storeconfigs
option enabled):Your Puppet installation must have the
puppetdb-termini
feature available. This feature may not be included by default with the Puppet agent package.Consult the Connecting Puppet masters to PuppetDB documentation for instructions on installing the
puppetdb-termini
gem.⚠️ Attention Mac OS users: the documentation states:While the puppet-agent package is the only component of a Puppet Collection available on OS X, you can still use Puppet Collections to ensure the version of package-agent you install is compatible with the Puppet Collection powering your infrastructure.
Unfortunately this means that you won't be able to enable
--storeconfigs
with the All-In-One Puppet Agent on Mac OS X, unless you manually install a gem-packaged version ofpuppetdb-terminus
. The procedure for this is beyond the scope of this documentation.