Code and data directory (codedir)
The codedir is the main directory for Puppet code and data. It is used by the primary Puppet server and Puppet apply, but not by Puppet agent. It contains environments (which contain your manifests and modules) and a global modules directory for all environments.
Location
-
*nix:
/etc/puppetlabs/code -
*nix non-root users:
~/.puppetlabs/etc/code -
Windows:
%PROGRAMDATA%\PuppetLabs\code(usuallyC:\ProgramData\PuppetLabs\code)
When Puppet is running as root, as a Windows user with administrator privileges, or as the puppet user, it uses a system-wide codedir. When running as a non-root user, it uses a codedir in that user's home directory.
When running Puppet commands and services as root or puppet, use the system codedir. To use the same codedir as the Puppet agent, or the primary server, run admin commands such as puppet module with sudo.
codedir setting in your puppet.conf file, such as: codedir = /etc/puppetlabs/code puppet.conf, and instead uses the jruby-puppet.master-code-dir setting in puppetserver.conf . When using a non-default codedir, you must change both settings.Interpolation of $codedir
puppet.conf settings by using the $codedir variable in the value. For example, the $codedir variable is used as part of the value for the environmentpath setting: [server] environmentpath = $codedir/override_environments:$codedir/environments This allows you to avoid absolute paths in your settings and keep your Puppet-related files together.
Contents
The codedir contains environments, including manifests and modules, and a global modules directory for all environments.
-
environments: Contains alternate versions of themodulesandmanifestsdirectories, to enable code changes to be tested on smaller sets of nodes before entering production. -
modules: The main directory for modules.