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:
Writing with Geppetto and Vim
Managing with Git
Reviewing with Gerrit
Testing modules with rspec-puppet
Testing Puppet runs with rspec-system-puppet and Beaker, using Vagrant
Deploying with
librarian-puppet
orr10k
Automating with Travis or Jenkins