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', }