These are the building blocks (e.g., puppetlabs-apache ). They handle the "how" but shouldn't contain business-specific data.
A good module follows the : it should do one thing and do it well. Puppet Best Practices - The Swiss Bay Puppet Best Practices: Design Patterns for Main...
3. Coding Practices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Swiss Bay These are the building blocks (e
Use Hiera to provide defaults and overrides based on facts like environment or OS. Puppet Best Practices - The Swiss Bay 3
Puppet Best Practices: Design Patterns for Maintainable Code
This is the "gold standard" for Puppet abstraction. It separates your technology-specific code from your business logic, making your codebase modular and readable.
Writing Puppet code is easy; maintaining it as your infrastructure grows from five nodes to five thousand is the real challenge. To avoid "spaghetti manifests" and technical debt, you need to move beyond simple scripting and embrace declarative design patterns. 1. The Roles and Profiles Pattern