Puppet Report Processors Made Easy

This week I wanted to show people how easy it is to write Puppet report processors that do more that just store reports or log output. With that in mind I have written nine new report processors that I’ll be showing over this next week. We’re going to start with two new report processors - Puppet IRC and Puppet Ganglia!

Puppet IRC 🔗︎

The first, the Puppet IRC report processor, notifies an IRC channel of failed Puppet runs with the name of the host that failed and the date. It requires the shout-bot gem to be installed on your Puppet master:

$ sudo gem install shout-bot

You can then install puppet-irc as a module in your Puppet master’s modulepath. Now update the irc_server and irc_channel variables in the /etc/puppet/irc.yaml file with your IRC connection details. An example file is included. Then enable pluginsync and reports on your master and clients in puppet.conf including specifying the irc report processor.

[master]
report = true
reports = irc
pluginsync = true
[agent]
report = true
pluginsync = true

Finally, run the Puppet client and sync the report as a plugin and hey presto you’re logging failures to the IRC channel of your choice!

Puppet Ganglia 🔗︎

Our second report processor is called Puppet Ganglia and sends metrics to a Ganglia server via gmetric (so you need a running Ganglia server!). Firstly, we install the gmetric gem:

$ sudo gem install gmetric

Then install puppet-ganglia as a module in your Puppet master’s module path. Next, update the ganglia_server and ganglia_port variables in the ganglia.yaml file with your Ganglia server IP and port and copy the file to /etc/puppet/. An example file is included in the repository. Lastly, enable pluginsync and reports on your master and clients in puppet.conf

        [master]
        report = true
        reports = ganglia
        pluginsync = true
        [agent]
        report = true
        pluginsync = true

Now when you run the Puppet client metrics will be sent from Puppet straight to Ganglia including metrics like:

  • Config retrieval time
  • File time
  • Filebucket time
  • Total time
  • Changed resources
  • Out of sync resources
  • Skipped resources
  • Total resources
  • Successful events
  • Total events
  • Total changes
comments powered by Disqus