octocatalog-diff/doc/configuration-puppet.md

2.4 KiB

Configuring octocatalog-diff to use Puppet

The most common use of octocatalog-diff is to use puppet locally to compile catalogs.

In order to successfully use Puppet to compile catalogs:

  1. 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'
  1. 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 of puppetdb-terminus. The procedure for this is beyond the scope of this documentation.