Node and class imports are DANGEROUS. Best way to mitigate?
We store our Puppet server configuration (the classes, node definitions, and modules) in a Subversion repository on our Puppet master, and use a Subversion post-commit hook to update the Puppet master configuration whenever anyone commits a change.
Because Subversion has per-directory ACLs, this is tremendously convenient for delegating access to the classes, node definitions, and modules. For example, by granting the owner of a host read/write access to the directory of his host's node definition in the Subversion repository, he can exactly control the Puppet configuration of his host, without any intervention from us.
However, we recently realized ... (more)