In this chapter, we have reviewed Puppet modules by exploring various aspects.
We have seen the evolution and layout of modules: how the evolution of Puppet language has influenced the design of modules, in particular, how parameters are exposed and managed, from class parameterization to data in modules. We have also seen common approaches such as the params and anchor patterns.
We have faced the parameters' dilemma; we have analyzed the different kinds of parameters a module can expose and where they can be placed. We have also covered the
stdmod naming convention initiative.
Finally, we have reviewed the most important reusability patterns. We have studied some of the reusability options we can add to modules to manage configuration files, ...