Puppet doesn't organize things in modules exclusively. There is a higher-level unit called environment that groups and contains the modules. An environment mainly consists of:
- One or more site manifest files
- A modules directory with your modules inside
- An optional environment.conf configuration file
When the master compiles the manifest for a node, it uses exactly one environment for this task. As described in Chapter 2, Puppet Server and Agents, it always starts in manifests/*.pp, which form the environment's site manifest. Before we take a look at how this works in practice, let's look at an example environment directory:
/opt/puppetlabs/code/environments/
\- production/
|- environment.conf
|- manifests/
| |- site.pp
| \- nodes.pp
\- modules/
|- my_app/
\- ntp/
The...