From e031bdc42d97a0cfd9b1ed054f99d15a452f53dd Mon Sep 17 00:00:00 2001 From: mh Date: Fri, 7 Nov 2008 20:07:18 +0000 Subject: removed modules dir - we don't need it factored out classes and defines in their own files --- manifests/defines.pp | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 manifests/defines.pp (limited to 'manifests/defines.pp') diff --git a/manifests/defines.pp b/manifests/defines.pp new file mode 100644 index 0000000..a41dd86 --- /dev/null +++ b/manifests/defines.pp @@ -0,0 +1,122 @@ +# manifests/defines.pp + +define nagios::host( + $ip = $fqdn, + $nagios_alias = $hostname, + $check_command = 'check-host-alive', + $max_check_attempts = 4, + $notification_interval = 120, + $notification_period = '24x7', + $notification_options = 'd,r', + $use = 'generic-host', + $nagios_contact_groups_in = $nagios_contact_groups, + $parents = 'localhost' ) +{ + $real_nagios_contact_groups = $nagios_contact_groups_in ? { + '' => 'admins', + default => $nagios_contact_groups_in + } + $real_nagios_parents = $parents ? { + '' => 'localhost', + default => $parents + } + + @@nagios_host { $name: + ensure => present, + address => $ip, + alias => $nagios_alias, + check_command => $check_command, + max_check_attempts => $max_check_attempts, + notification_interval => $notification_interval, + notification_period => $notification_period, + notification_options => $notification_options, + parents => $real_nagios_parents, + contact_groups => $real_nagios_contact_groups, + use => $use, + notify => Service[nagios], + } +} + +# this will define a host which isn't managed by puppet. +# a ping serivce is automatically added +define nagios::extra_host($ip, $nagios_alias, $use = 'generic-host', $parents = 'localhost' ) { + nagios::host{$name: + ip => $ip, + nagios_alias => $nagios_alias, + use => $use, + parents => $parents + } + + nagios::service { "check_ping_${name}": + host_name => $name, + check_command => 'check_ping!100.0,20%!500.0,60%', + host_name => $name, + service_description => "check_ping_${nagios_alias}", + } +} + +# just a wrapper to make the notify more easy +define nagios::command( $command_line ){ + nagios_command{$name: + command_line => $command_line, + notify => Service[nagios], + } +} + +define nagios::service( + $check_command, + $host_name = $fqdn, + $use = 'generic-service', + $notification_period = "24x7", + $max_check_attempts = 4, + $retry_check_interval = 1, + $notification_interval = 960, + $normal_check_interval = 5, + $check_period = "24x7", + $nagios_contact_groups_in = $nagios_contact_groups, + $service_description = ''){ + + # this ensures nagios internal check, that every + # service has it's host + # temporary disabled. + # include nagios::target::host + + $real_nagios_contact_groups = $nagios_contact_groups_in ? { + '' => 'admins', + default => $nagios_contact_groups_in + } + @@nagios_service {$name: + check_command => $check_command, + use => $use, + host_name => $host_name, + notification_period => $notification_period, + max_check_attempts => $max_check_attempts, + retry_check_interval => $retry_check_interval, + notification_interval => $notification_interval, + normal_check_interval => $normal_check_interval, + contact_groups => $real_nagios_contact_groups, + check_period => $check_period, + notify => Service[nagios], + } + # if no service_description is set it is a namevar + case $service_description { + '': {} + default: { + Nagios_service[$name]{ + service_description => $service_description, + } + } + } +} + +define nagios::service::ping(){ + $real_nagios_ping_rate = $nagios_ping_rate ? { + '' => '!100.0,20%!500.0,60%', + default => $nagios_ping_rate + } + + nagios::service{ "check_ping_${hostname}": + check_command => "check_ping${real_nagios_ping_rate}", + } +} + -- cgit v1.2.3