File sync terms

Understanding these terms is helpful for understanding file sync.

Control repository

Used for storing your Puppet code and maintaining separate code for different environments (such as production, development, or testing). Each environment is represented by a branch of the control repo. For more information, refer to Managing environments with a control repository.

Each environment branch has a Puppetfile specifying exactly which modules to install in each environment. You can learn more About Environments in the Puppet documentation.

Live code directory

This directory contains all your Puppet manifests and modules for each environment (Code Manager creates directory environments based on the branches you've set up in your control repo). Puppet Server uses this directory for catalog compilation. This directory is present on your primary server and all compilers.

The directory's location is specified in the Puppet Servermaster-code-dir setting and the Puppet$codedir setting. The default value is /etc/puppetlabs/code, which is also the default location for the live code directory.

In file sync configuration settings, the live code directory is sometimes abbreviated as live-dir.

Staging code directory

Code Manager detects code changes that you make in your control repository, and then Code Manager stages the updated code in the staging code directory. From there, file sync moves the updated code to the live code directories.

While the primary server and all compilers have their own live code directories, the staging code directory is only present on the primary server. The default location is /etc/puppetlabs/code-staging.