Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
As we saw in the ntp example,
classes are great for organizing our configurations, but they can also
enhance the reusability of our code. Classes in Puppet, unlike define
types, are not like their instanceable namesake in other object-oriented
programming languages. They will take parameters and can even inherit
structure from other classes, but only one class of a particular name can
exist on each node.
We can build a base class that installs our Apache2 package and sets up a service to manage it. We can then inherit from the base and add a couple of special-purpose classes for an Apache with SSL and Apache with PHP. This helps to reduce duplication in our code and makes future changes less onerous: