Chapter 5. Puppetry with Friends
The necessary development environment for testing Puppet manifests can be difficult to maintain even when you’re working alone. What happens when you have a whole archive of classes with dependencies and multiple uses? Some of those classes are bound to be running on production equipment, and several engineers will need to work on features and fixes simultaneously. The need for a lifecycle with development, staging, and production environments quickly becomes urgent.
Environments
Puppet allows you to create environments with different manifest files for modules, nodes, and templates. In order to start using this feature, you’ll need to create a new set of modules, manifests, and templates directories in a subdirectory of /etc/puppet on the Puppet Master and then specify their location in a new stanza in your puppet.conf as follows:
[development] modulepath = $confdir/environments/development/modules manifest = $confdir/environments/development/manifests/site.pp templatedir = $confdir/environments/development/templates
Once you’ve put some usable code in these directories, you can
specify the new development for use on an agent node by either passing
--environment development
to
puppetd
on invocation, or by placing a new parameter in
the agent’s puppet.conf [agent]
stanza:
[agent] environment = development
Now we can tinker to our heart’s content without risk of breaking production configurations. If you have taken to the practice of keeping your configurations ...
Get Managing Infrastructure with Puppet now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.