Puppet: System Administration Automated

Support

This concept occurred to me during discussions on the mailing list, and I'd like to implement it. The vast majority of sites have more than one type of server -- development, production, etc. It makes sense for Puppet to formally support this concept, such that every node is in one environment or another.

This would need to interact with Modules in some way, because some modules would likely be in all releases while others would be release specific, but this can likely be solved by having a per-environment module path.

This functionality will almost definitely require ExternalNodeClassification, and it should be done concurrently with ConfigurationVersion.

I think it makes the most sense to have each master run one interpreter per environment, since it's technically very easy, and if we don't do it then most people will tend not to run multiple environments. This is why the ExternalNodeClassification needs to be done first -- otherwise, we won't know which environment a given node is in.