After working through the first six chapters, you now have quite a solid grasp on the principles of Puppet manifests. You have used the basic structural elements in numerous examples and contexts. There has even been a quick demonstration of the more advanced language features.
For all their expressive power, manifests do have some limitations. A manifest that is designed by the principles taught up to this point mixes logic with data. Logic is not only evident in control structures such as
else, but it also just emerges from the network of classes and defines that include and instantiate one another.
However, you cannot configure a machine by just including some generic classes. Many properties ...