In this chapter, we have broadened our skills in writing Puppet modules to encompass the roles and profiles pattern, with reference to two special cases which provide a reliable way to build reusable, configurable, and refactorable site-wide configuration code.
Next, we stay in the development frame of mind, but look at how we can cover some of those possible edge cases where we may need to extend Puppet beyond its regular usage scenarios.