I'm using directory environments, and I think I've done a good job of putting all of my generic stuff in modules: $confdir/$environment/modules/* however, I like all of my personal and node-specific configuration to be in $confdir/$environment/manifests/nodes.pp $confdir/$environment/manifests/profiles.pp $confdir/$environment/files/ $confdir/$environment/templates/ So when using a puppetmaster (at work), in puppet.conf I need: templatedir = $environmentpath/$environment/templates and in fileserver.conf I need entries for each environment (which kind of lessens the allure of automatic envs tied to git branches): [myenv] path /etc/puppet/environments/myenv/files And when using puppet apply (at home) I had to rig up facter to expos environmental variables and: $files = "${env['PUPPET_CONFDIR']}/files" *I don't get this. What's with all of the opposition to having stuff not in a module?* $environment/files and $environment/templates should be easy to access both in a master setup and when using apply.