Classification and Release Management
The focus of this chapter will be on how Puppet deploys code and classifies this code to servers. Environments will be examined first, showing how this creates isolated groups of servers with particular versions of modules. We will discuss how this can provide both static and temporary environments. We will show how modern Puppet uses directory-based environments to have environment code in a specific location that Puppet Server can automatically discover. The methods a primary server can use to classify nodes will be discussed, at the most basic level using node definitions in the site.pp
main manifest file or a collection of manifests, using Hiera lookups within these node definitions or with an External Node Classifier (ENC) script run by the primary server. The implementation of the classification service for Puppet Enterprise will be discussed, showing how it builds on top of these solutions using its own ENC script and the additional feature...