Summary
In this chapter, we've looked at a range of different ways of organizing your Puppet code. We've covered classes in detail, explaining how to use the class
keyword to define a new class, use the include
keyword to declare the class without parameters, and use the class
keyword with a different syntax to declare the class with parameters.
Declaring parameters involves specifying the allowable data types for parameters, and we've had a brief overview of Puppet's data types, including scalars, collections, content types, range parameters, abstract types, and flexible types. We've seen how to separate your code from your configuration data by supplying module parameters in Hiera and using Puppet's automatic parameter lookup mechanism.
We've introduced the defined resource type, and explained the difference between defined resource types and classes, and when you would use one or the other.
We've looked at how to use node definitions to apply only certain resources to particular nodes, and...