Linux – What directory and file structure to use for Puppet

centoslinuxpuppetUbuntu

The Puppet tutorials I have read so far haven't mentioned how to structure the puppet .pp.

Can anyone share some experiences of what works and scales well?

Best Answer

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.