summaryrefslogtreecommitdiff
path: root/manifests/service/gpgkey.pp
diff options
context:
space:
mode:
authorMicah <micah@riseup.net>2015-12-09 19:32:51 +0000
committerMicah <micah@riseup.net>2015-12-09 19:32:51 +0000
commitd1321c39001ebd445b37fd551fbfd324b6ab6ae0 (patch)
tree6c3a56aac66bf1cdce128d89550151a11cdb21c2 /manifests/service/gpgkey.pp
parent993b624bd14dc5ef88847b11abc06d2b708c23b6 (diff)
parent6cd3270ccfd806bcc8097be4f6982c6dccc6a4aa (diff)
Merge branch 'immerda_changes' into 'master'
Merge in immerda changes - purging of resources and lots of nice additional checks Sorry for the big amount of changes, but I think I merged everything nicely with what we have been working. Ok, so what do you get here: * Purging of unmanaged resources, for that I had to move everything to the default paths of the puppet types, BUT now as soon as a node won't export anymore a resource it will get purged from nagios. No more cleaning up of decomissioned nodes, just remove them from puppet (puppet node clean oldnode.example.com) and they will also disappear from nagios. * slight changes to the http checks. ** naming the checks consistently, so it's easier to change what they are looking for. ** Also accept 301 & 302 as a good value per default. ** make it possible to define accepted return codes per http & https * add gpgkey checks, so you won't miss any expiring gpg keys anymore * add imap login checks, so you can check whether ppl can actually login to your mailserver * add horde login checks, so you can check whether login to horde still works * linting wherever I touched something. See merge request !15
Diffstat (limited to 'manifests/service/gpgkey.pp')
-rw-r--r--manifests/service/gpgkey.pp49
1 files changed, 49 insertions, 0 deletions
diff --git a/manifests/service/gpgkey.pp b/manifests/service/gpgkey.pp
new file mode 100644
index 0000000..df13ca8
--- /dev/null
+++ b/manifests/service/gpgkey.pp
@@ -0,0 +1,49 @@
+# define a gpgkey to be watched
+define nagios::service::gpgkey(
+ $ensure = 'present',
+ $warning = '14',
+ $key_info = undef,
+ $check_interval = 60,
+){
+ validate_slength($name,40,40)
+ require ::nagios::plugins::gpg
+ $gpg_home = $nagios::plugins::gpg::gpg_home
+ $gpg_cmd = "gpg --homedir ${gpg_home}"
+
+ exec{"manage_key_${name}":
+ user => nagios,
+ group => nagios,
+ }
+ nagios::service{
+ "check_gpg_${name}":
+ ensure => $ensure;
+ }
+
+ if $ensure == 'present' {
+ Exec["manage_key_${name}"]{
+ command => "${gpg_cmd} --keyserver hkps://hkps.pool.sks-keyservers.net --keyserver-options ca-cert-file=${gpg_home}/sks-keyservers.netCA.pem --recv-keys ${name}",
+ unless => "${gpg_cmd} --list-keys ${name}",
+ before => Nagios::Service["check_gpg_${name}"],
+ }
+
+ Nagios::Service["check_gpg_${name}"]{
+ check_command => "check_gpg!${warning}!${name}",
+ check_interval => $check_interval,
+ }
+ if $key_info {
+ Nagios::Service["check_gpg_${name}"]{
+ service_description => "Keyfingerprint: ${name} - Info: ${key_info}",
+ }
+ } else {
+ Nagios::Service["check_gpg_${name}"]{
+ service_description => "Keyfingerprint: ${name}",
+ }
+ }
+ } else {
+ Exec["manage_key_${name}"]{
+ command => "${gpg_cmd} --batch --delete-key ${name}",
+ onlyif => "${gpg_cmd} --list-keys ${name}",
+ require => Nagios::Service["check_gpg_${name}"],
+ }
+ }
+}