Cache directory (vardir)
As part of its normal operations, Puppet generates data which is stored in a cache directory called vardir. You can mine the data in vardir for analysis, or use it to integrate other tools with Puppet.
Location
The cache directory for Puppet Server defaults to /opt/puppetlabs/server/data/puppetserver
.
-
*nix systems:
/opt/puppetlabs/puppet/cache
. -
Non-root users:
~/.puppetlabs/opt/puppet/cache
. -
Windows:
%PROGRAMDATA%\PuppetLabs\puppet\cache
(usuallyC:\Program Data\PuppetLabs\puppet\cache
).
When Puppet is running as 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 the user’s home directory.
Since you will usually run Puppet’s commands and services as root
or puppet
, the
system cache directory is what you usually want to use.
puppet cert
, must run with sudo
.config.ru
file must explicitly set --vardir
to the system cache directory.
The example config.ru
file provided with the Puppet source does this.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 use the default cache directory location.
To configure the Puppet Server
cache directory, use the jruby-puppet.master-var-dir
setting in puppetserver.conf
.
Interpolation of $vardir
The value of the vardir is discovered before other settings, so you
can reference it using the $vardir
variable in the value of any other setting in puppet.conf
or on the command
line.
[main]
ssldir = $vardir/ssl
If you need to set nonstandard values for some settings, using the
$vardir
variable
allows you to avoid absolute paths and keep your Puppet-related files together.
Contents
The vardir contains several subdirectories. Most of these subdirectories contain a variable amount of generated data, some contain notable individual files, and some directories are used only by agent or master processes.
puppet.conf
.
For more information about each item below, see the Configuration
reference. Directory name | Config setting | Notes |
---|---|---|
bucket
|
bucketdir
|
|
client_data
|
client_datadir
|
|
clientbucket
|
clientbucketdir
|
|
client_yaml
|
clientyamldir
|
|
devices
|
devicedir
|
|
lib/facter
|
factpath
|
|
facts
|
factpath
|
|
facts.d
|
pluginfactdest
|
|
lib
|
libdir , plugindest
|
Puppet uses this as a cache for plugins (custom facts, types and providers, functions) synced from a Puppet master. Do not change its contents. If you delete it, the plugins are restored on the next Puppet run. |
puppet-module
|
module_working_dir
|
|
puppet-module/skeleton
|
module_skeleton_dir
|
|
reports
|
reportdir
|
When the option to store reports is enabled, a master stores reports received from agents as YAML files in this directory. You can mine these reports for analysis. |
server_data
|
serverdatadir
|
|
state
|
statedir
|
See table below for more details about the
state
directory contents. |
yaml
|
yamldir
|
state
directory contains the following files and directories: File or directory name | Config setting | Notes |
---|---|---|
agent_catalog_run.lock
|
agent_catalog_run_lockfile
|
|
agent_disabled.lock
|
agent_disabled_lockfile
|
|
classes.txt
|
classfile
|
This file is useful for external integration. It lists all of the classes assigned to this agent node. |
graphs directory |
graphdir
|
When graphing is enabled, agent nodes write a
set of .dot graph files to this directory. Use these graphs to
diagnose problems with the catalog application, or visualizing the
configuration catalog. |
last_run_summary.yaml
|
lastrunfile
|
|
last_run_report.yaml
|
lastrunreport
|
|
resources.txt
|
resourcefile
|
|
state.yaml
|
statefile
|