Directories: The cache directory (vardir)

This version of Puppet is not included in Puppet Enterprise. The latest version of PE includes Puppet 4.10. A newer version is available; see the version menu above for details.

Puppet’s cache directory, sometimes called vardir, contains dynamic or growing data that Puppet creates in the course of its normal operations. Some of this data can be mined for interesting analysis, or to integrate other tools with Puppet. Other parts are just infrastructure and can be ignored.

Location of the vardir directory

Puppet Server’s cache directory defaults to /opt/puppetlabs/server/data/puppetserver.

The cache directory for Puppet agent and Puppet apply can be found at one of the following locations:

  • *nix Systems: /var/opt/puppetlabs/puppet/cache
  • non-root users: ~/.puppetlabs/opt/puppet/cache
  • Windows: %PROGRAMDATA%\PuppetLabs\puppet\cache (usually C:\Program Data\PuppetLabs\puppet\cache)

When Puppet is running as either root, a Windows user with administrator privileges, or the puppet user, it will use a system-wide cache directory. When running as a non-root user, it will use a cache directory in that user’s home directory.

The system cache directory is what you usually want to use, since you will usually run Puppet’s commands and services as root or puppet. (Note that admin commands like puppet cert must be run with sudo to use the same directories as Puppet agent or Puppet master.)

Note: When Puppet master is running as a Rack application, the config.ru file must explicitly set --vardir to the system cache directory. The example config.ru file provided with the Puppet source does this.

Configuring the location of the cache directory

You can specify Puppet’s cache directory on the command line by using the --vardir option, but you can’t set it in puppet.conf. If --vardir isn’t specified when a Puppet application is started, it will always use the default cache directory location.

Puppet Server uses the jruby-puppet.master-var-dir setting in puppetserver.conf to configure its cache directory.

Interpolation of $vardir

Because the value of the vardir is discovered before other settings, you can reference it with the $vardir variable in the value of any other setting in puppet.conf or on the command line.

For example:

[main]
  ssldir = $vardir/ssl

If you need to set nonstandard values for some settings, this allows you to avoid absolute paths and keep your Puppet-related files together.

Contents of the cache directory

The vardir directory contains several subdirectories. Most of these subdirectories contain a variable amount of automatically generated data. Some of them contain notable individual files. Some directories are used only by agent or master processes.

The vardir directory has the following default structure. Most of the files and directories can have their locations changed with settings in puppet.conf. The link for each item goes to its description in the configuration reference.

↑ Back to top