In Chapter 3, Managing your Puppet code with Git, we saw how to set up your Puppet repo on multiple nodes and auto-apply the manifest using a cron job and the run-puppet
script. The run-puppet
script runs the following commands:
cd /etc/puppetlabs/code/environments/production && git pull/opt/puppetlabs/bin/puppet apply manifests/
You can see that everything in the manifests/
directory will be applied on every node. Clearly, Puppet is much more useful when we can apply different manifests on each node; some nodes will be web servers, others database servers, and so on. In fact, we would like to include some classes on all nodes, for general administration, such as managing user accounts, and other classes only on specific nodes. So how do we do that?