Up till this point, you have built quite a respectable basis of theoretic knowledge about the Puppet system. You now understand the nature of resources with their properties and parameters. You learned how the agent relates to the master and how Facter cooperates with them. The toolchain of types and providers has been explained, and you can even extend Puppet through your own custom plugins. Designing and structuring manifests through classes, defined types, and modules is becoming natural to you, and you have some more advanced language tools at your disposal as well.
It is now time to look from a more practical angle. Let's take a look at designs that are useful in common real-world scenarios. With the general trend of cloud computing, we will focus on some techniques that cater especially to the use of Puppet in cloud environments. This will not be limited to the manifest and module design; you will also learn some generally useful...