Understanding the demo repo
Now it's time to see how all the ideas from the previous chapters fit together. It should be helpful for you to see how a complete Puppet infrastructure works, and you can also use this repo as a basis for your own projects. We'll see how you can do that later in the chapter, but first, a word or two about the overall structure of the repo.
The control repo
A control repo is a Puppet code base that contains no modules, or only site-specific modules, and it's a good way to organize your Puppet code base.
In Chapter 7, Mastering modules, we learned about using the r10k
tool to manage modules with a Puppetfile. The Puppetfile specifies the modules we use, with their exact versions and their sources (usually Puppet Forge, but they can also come from remote Git repos).
Therefore, our Puppet repo needs to contain only a Puppetfile, along with our node definitions, resource defaults, Hiera data, and the role
and profile
modules.
Module management
Because r10k
expects to manage...