diff options
author | Micah <micah@riseup.net> | 2015-12-09 19:32:51 +0000 |
---|---|---|
committer | Micah <micah@riseup.net> | 2015-12-09 19:32:51 +0000 |
commit | d1321c39001ebd445b37fd551fbfd324b6ab6ae0 (patch) | |
tree | 6c3a56aac66bf1cdce128d89550151a11cdb21c2 /manifests/service.pp | |
parent | 993b624bd14dc5ef88847b11abc06d2b708c23b6 (diff) | |
parent | 6cd3270ccfd806bcc8097be4f6982c6dccc6a4aa (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.pp')
-rw-r--r-- | manifests/service.pp | 117 |
1 files changed, 60 insertions, 57 deletions
diff --git a/manifests/service.pp b/manifests/service.pp index 3e8f6c8..e2c08e9 100644 --- a/manifests/service.pp +++ b/manifests/service.pp @@ -1,87 +1,90 @@ +# a wrapper around nagios_service to make it more convenient and +# also automatically an exported resource. define nagios::service ( - $ensure = present, - $host_name = $::fqdn, - $check_command = 'absent', - $check_period = '', - $normal_check_interval = '', - $retry_check_interval = '', - $max_check_attempts = '', - $notification_interval = '', - $notification_period = '', - $notification_options = '', - $contact_groups = '', - $use = 'generic-service', - $service_description = 'absent', - $use_nrpe = '', - $nrpe_args = '', - $nrpe_timeout = 10 + $ensure = present, + $host_name = $::fqdn, + $check_command = 'absent', + $check_period = undef, + $check_interval = undef, + $retry_check_interval = undef, + $max_check_attempts = undef, + $notification_interval = undef, + $notification_period = undef, + $notification_options = undef, + $contact_groups = undef, + $use = 'generic-service', + $service_description = 'absent', + $use_nrpe = undef, + $nrpe_args = undef, + $nrpe_timeout = 10, ) { # TODO: this resource should normally accept all nagios_host parameters $real_name = "${::hostname}_${name}" - @@nagios_service { "${real_name}": + @@nagios_service {$real_name: ensure => $ensure, - notify => Service[nagios]; + notify => Service['nagios']; } if $ensure != 'absent' { if $check_command == 'absent' { fail("Must pass a check_command to ${name} if it should be present") } - if ($use_nrpe == true) { - include nagios::command::nrpe_timeout + if str2bool($use_nrpe) { + include ::nagios::command::nrpe_timeout - if ($nrpe_args != '') { - $real_check_command = "check_nrpe_timeout!$nrpe_timeout!$check_command!\"$nrpe_args\"" - } else { - $real_check_command = "check_nrpe_1arg_timeout!$nrpe_timeout!$check_command" - } + if $nrpe_args { + $real_check_command = "check_nrpe_timeout!${nrpe_timeout}!${check_command}!\"${nrpe_args}\"" + } else { + $real_check_command = "check_nrpe_1arg_timeout!${nrpe_timeout}!${check_command}" + } } else { - $real_check_command = "$check_command" + $real_check_command = $check_command } - Nagios_service["${real_name}"] { - check_command => $check_command, - host_name => $host_name, - use => $use, - service_description => $service_description ?{ - 'absent' => $name, - default => $service_description - } + $real_service_description = $service_description ? { + 'absent' => $name, + default => $service_description + } + Nagios_service[$real_name] { + check_command => $check_command, + host_name => $host_name, + use => $use, + service_description => $real_service_description, } - if ($check_period != '') { - Nagios_service["${real_name}"] { check_period => $check_period } + if $check_period { + Nagios_service[$real_name] { check_period => $check_period } } - - if ($normal_check_interval != '') { - Nagios_service["${real_name}"] { normal_check_interval => $normal_check_interval } + + if $check_interval { + Nagios_service[$real_name] { check_interval => $check_interval } } - - if ($retry_check_interval != '') { - Nagios_service["${real_name}"] { retry_check_interval => $retry_check_interval } + + if $retry_check_interval { + Nagios_service[$real_name] { retry_check_interval => $retry_check_interval } } - - if ($max_check_attempts != '') { - Nagios_service["${real_name}"] { max_check_attempts => $max_check_attempts } + + if $max_check_attempts { + Nagios_service[$real_name] { max_check_attempts => $max_check_attempts } } - - if ($notification_interval != '') { - Nagios_service["${real_name}"] { notification_interval => $notification_interval } + + if $notification_interval { + Nagios_service[$real_name] { notification_interval => $notification_interval } } - - if ($notification_period != '') { - Nagios_service["${real_name}"] { notification_period => $notification_period } + + if $notification_period { + Nagios_service[$real_name] { notification_period => $notification_period } } - - if ($notification_options != '') { - Nagios_service["${real_name}"] { notification_options => $notification_options } + + if $notification_options { + Nagios_service[$real_name] { notification_options => $notification_options } } - - if ($contact_groups != '') { - Nagios_service["${real_name}"] { contact_groups => $contact_groups } + + if $contact_groups { + Nagios_service[$real_name] { contact_groups => $contact_groups } } } } |