Last year in PE, we changed the locations of several important configuration files and directories. We also changed Puppet’s packaging to install different things in different places.
This page is a summary to quickly orient users arriving to PE 2016.4 from PE 3.8.
In addition, refer to the PE migration notes for other notable changes.
On *nix platforms, the main executables moved to
/opt/puppetlabs/bin. This means Puppet and related tools aren’t included in your PATH by default. You’ll need to either:
/opt/puppetlabs/binto your PATH.
/opt/puppetlabs/bin/puppet apply) when running Puppet commands.
On Windows, executables stayed in the same location, and the MSI package still adds Puppet’s tools to your PATH.
The executables in
/opt/puppetlabs/bin are just the “public” applications that make up Puppet. Private supporting commands like
gem are in
/opt/puppetlabs/puppet/bin to keep them from accidentally overriding system tools if you add the public bin directory to your PATH.
confdir (used by
root and the
puppet user) is now
/etc/puppetlabs/puppet. Open source Puppet now uses the same
confdir as Puppet Enterprise.
confdir directory contains config files such as
auth.conf, as well as the SSL directory.
confdir stayed the same. On modern Windows versions (Windows 7 and newer or Windows Server 2008 and newer), it’s still in the
COMMON_APPDATA folder, defaulting to
We’re also moving other related configs into the
/etc/puppetlabs directory. Puppet Server now uses
/etc/puppetlabs/puppetserver, and MCollective uses
/etc/puppetlabs/mcollective. In addition, in
/etc/puppetlabs, you’ll find the
codedirholds all modules/manifests/data
All of the content used to configure nodes has moved into a new directory, named
codedir. (This stuff used to be in the
Note: On upgrades we do not move any of your code configurations to this new directory. It’ll stay configured as you had it in the previous version of PE.
codedir location is:
<USER DIRECTORY>/.puppetlabs/etc/codeif you’re running as a non-root user.
The main contents of
Directory environments are always enabled now.
$codedir/environments. On a fresh install, we create a directory for the default
This means that if you’re starting from scratch, you should:
You can still put global modules in
$codedir/modules and configure a global main manifest with the
hiera.yamlhas moved to
The default Hiera datadir (which is used if you specify no other datadir) has moved. The following are the new paths:
common.yamland the nodes directory.
If you are upgrading to PE 2016.4 and have an unmodified
hiera.yaml file, it is moved to the new location. If you’ve modified your
hiera.yaml, you should move it to the new location, or future upgrades will fail.
hiera.yaml is automatically configured for use after upgrading.
puppet agenthas moved, and is now separate from Puppet Server’s
rundir, where the service PID files go, has moved:
/var/run/puppetlabs. (Puppet Server has a
puppetserverdirectory in this directory.)
C:\ProgramData\PuppetLabs\puppet\var\run— this is the same as before, but it’s now outside the main