Puppet and AppFirst
I’ve been playing with AppFirst which is a new monitoring solution that describes itself as the “DevOps Dashboard”. Collectors are used on each host to gather data and you can also enable NRPE-style checks. As part of playing with the solution I’ve written a module that installs the required collector on Red Hat, Debian and Ubuntu platforms. The module also includes a type and provider to manage installing and maintaining the NRPE-style checks.
The code for the module is also on GitHub.
To use the module you’ll need:
- Puppet 2.6.5 or later
- An AppFirst account
For installation:
- Install puppet-appfirst as a module in your Puppet master’s module path.
To install the AppFirst collector declare the appfirst
class.
class { 'appfirst': appfirst_id => '123456',}
To use the type and provider:
-
To use the
appfirst_check
type enable pluginsync on your master and clients inpuppet.conf
[master]pluginsync = true[agent]pluginsync = true -
Run the Puppet client and sync the type and provider as a plugin
-
You can then use the type and provider through the provided
appfirst::check
defined type like so:appfirst::check { "nameofcheck":command => 'thecommandtobeexecuted',warning => '10',critical => '20',options => 'optionalflags',}The script specified in the title of the defined type, here
nameofcheck
, should be placed in thefiles
directory of theappfirst
module.Or you can use it via the type and provider itself:
appfirst_check { 'check_name':ensure => present,command => 'yourcommand',options => 'optionalflags',warning => '10',critical => '20',}