Skip to content

Latest commit

 

History

History
45 lines (26 loc) · 2.36 KB

environments_assigning.markdown

File metadata and controls

45 lines (26 loc) · 2.36 KB
layout title
default
Assigning Nodes to Environments

By default, all nodes are assigned to a default environment named production.

There are two ways to assign nodes to a different environment:

Note: If you have Puppet Enterprise (PE), you can use the PE console to set the environment for each node group.

The value from the ENC is authoritative, if it exists. If the ENC doesn't specify an environment, the node's config value is used.

Assigning Environments Via an ENC

The interface to set the environment for a node will be different for each ENC. Some ENCs cannot manage environments.

When writing an ENC, simply ensure that the environment: key is set in the YAML output that the ENC returns. See the documentation on writing ENCs for details.

If the environment key isn't set in the ENC's YAML output, the Puppet master will just use the environment requested by the agent.

Assigning Environments Via the Agent's Config File

In puppet.conf on each agent node, you can set the environment setting in either the agent or main config section. When that node requests a catalog from the Puppet master, it will request that environment.

If you are using an ENC and it specifies an environment for that node, it will override whatever is in the config file.

Non-Existent Environments

With directory environments, nodes can't be assigned to unconfigured environments. If a node is assigned to an environment which doesn't exist --- that is, there is no directory of that name in any of the environmentpath directories --- the Puppet master will fail compilation of its catalog.

The one exception is if the default production environment doesn't exist. In this case, the agent will successfully retrieve an empty catalog.

With config file environments, nodes can be assigned to environments that are not configured. This will cause them to fall back to global values for modulepath and manifest.