What directory and file structure to use for Puppet?

Solution 1:

Yes, please see my comments at: How can the little guys effectively learn and use Puppet?

I followed the examples and guidelines in this book. But part of my initial frustration was a lack of a standard or "best-practice" way of doing things with Puppet when, as a sysadmin, I expect some direction there.

You can basically create your own structure. Whatever makes sense... But I'd follow one of the examples for consistency. I ended up restructuring several times in a month as things started to make more and more sense to me.

The rest will depend heavily on your server infrastructure. If you have a large number of systems on ONE location, your manifest/module directory structure will look different than running servers in 20 co-location facilities... so the logical arrangement may be function-based or location-based. It'll really need to be tailored to your particular setup.

Then, there's the approach of decentralized PuppetMasters or distributing manifests by Git or rsync... The book I linked above covers some of the scalability issues.