Deploying Puppet code
Deployment of Puppet code is, most of the times, a matter of updating modules, manifests, and Hiera data on relevant directories of the Puppet Master.
We deal with two different kinds of code which involve different management patterns:
Our modules, manifests, and data
The public modules we are using
We can manage them in the following ways:
Using Git—eventually using Git submodules for each Puppet module
Using the
puppet
module, for the public modules published on the ForgeUsing tools such as
librarian-puppet
andr10k
Using other tools or custom procedures we might write specifically for our needs
Using librarian-puppet for deployments
Librarian-puppet (http://librarian-puppet.com) has been developed to manage the installation of a set of modules from the Puppet Forge or any Git repository. It is based on Puppetfile
where the modules and the versions to be installed are defined:
forge "http://forge.puppetlabs.com" # Install a module from the Forge mod 'puppetlabs/concat' ...