Maintaining environments

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
  • 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, The Master and Its 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 see an example environment directory:

/opt/puppetlabs/code/environments
  production
    environment.conf
    manifests
      site.pp
      nodes.pp
    modules
      my_app
      ntp

The environment.conf

Get Puppet: Mastering Infrastructure Automation now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.