Summary
In this chapter, we discussed how Puppet environments can be used to manage specific versions of modules, classification, and data to apply to groups of Puppet clients. The directory structure and variables to configure this was reviewed.
The options to classify servers into environments and to assign classes and parameters were reviewed, looking at node definitions in manifest files, using Hiera in the node definitions to create more complex data-driven calculations, and then ENC scripts that can access sources such as PuppetDB and return YAML output of classes, environment, and parameters for classification. PE was then shown to build on the ENC approach with its own ENC script used in conjunction with node groups to store data on how to classify servers into environments and assign classes.
It was highlighted that the various methods could be used together but the recommended approach was to keep it simple; for open source Puppet, just use a default node definition...