All the Puppet manifests, public shared modules, site modules, and (Hiera) data are the code and data we create and use. We need tools and workflows to manage them.
In this chapter, we will review the existing tools and techniques to manage Puppet's code workflow from when it is written to when it is deployed to production.
Most people in the Puppet world use Git to version their code, so we will refer mostly to it. However, similar processes can be followed if we manage our code with Subversion, Mercurial, or any other source code-management tool.
In this chapter, we give an overview of the tools that can help us with our Puppet code. We will cover the following topics: