From 440ca230359e28195ba44c452b462c5e69efff65 Mon Sep 17 00:00:00 2001 From: varac Date: Sat, 26 Jan 2013 18:52:31 +0100 Subject: beginning of puppet/modules/site_nagios --- puppet/modules/site_nagios/manifests/server.pp | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 puppet/modules/site_nagios/manifests/server.pp (limited to 'puppet/modules/site_nagios/manifests') diff --git a/puppet/modules/site_nagios/manifests/server.pp b/puppet/modules/site_nagios/manifests/server.pp new file mode 100644 index 00000000..e11ffd48 --- /dev/null +++ b/puppet/modules/site_nagios/manifests/server.pp @@ -0,0 +1,7 @@ +class site_nagios::server { + class {'nagios': + allow_external_cmd => true + } + #include nagios::defaults + +} -- cgit v1.2.3 From 51369107eefffca0c50784b2ad2b51bf56c53512 Mon Sep 17 00:00:00 2001 From: varac Date: Sun, 27 Jan 2013 14:42:04 +0100 Subject: site_nagios: add hosts + services --- puppet/modules/site_nagios/manifests/add_host.pp | 30 ++++++++++++++++++++++ .../modules/site_nagios/manifests/add_service.pp | 22 ++++++++++++++++ puppet/modules/site_nagios/manifests/server.pp | 17 +++++++++--- 3 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 puppet/modules/site_nagios/manifests/add_host.pp create mode 100644 puppet/modules/site_nagios/manifests/add_service.pp (limited to 'puppet/modules/site_nagios/manifests') diff --git a/puppet/modules/site_nagios/manifests/add_host.pp b/puppet/modules/site_nagios/manifests/add_host.pp new file mode 100644 index 00000000..5148048d --- /dev/null +++ b/puppet/modules/site_nagios/manifests/add_host.pp @@ -0,0 +1,30 @@ +define site_nagios::add_host ($ip, $services='' ) { + + $nagios_hostname = $name + + #notice ("$nagios_hostname $ip $services") + + nagios_host { $nagios_hostname: + address => $ip, + use => 'generic-host', + } + + # turn serice array into hash + # https://github.com/ashak/puppet-resource-looping + $nagios_service_hashpart = { + 'host' => $nagios_hostname, + 'ip' => $ip, + } + $dynamic_parameters = { + 'service' => '%s' + } + + #$nagios_services = ['one', 'two'] + $nagios_servicename = "${nagios_hostname}_%s" + + $nagios_service_hash = create_resources_hash_from($nagios_servicename, $services, $nagios_service_hashpart, $dynamic_parameters) + #notice ($created_resource_hash) + + + create_resources ( site_nagios::add_service, $nagios_service_hash ) +} diff --git a/puppet/modules/site_nagios/manifests/add_service.pp b/puppet/modules/site_nagios/manifests/add_service.pp new file mode 100644 index 00000000..5a5b344f --- /dev/null +++ b/puppet/modules/site_nagios/manifests/add_service.pp @@ -0,0 +1,22 @@ +define site_nagios::add_service ($host, $ip, $service) { + + notice ('$name $host $ip $service') + + case $service { + 'openvpn': { + $check_command = 'check_openvpn!...' + $service_description = 'Openvpn' + } + 'webapp': { + $check_command = 'check_http!...' + $service_description = 'Website' + } + default: { fail ('unknown service') } + } + + nagios_service { $name: + use => 'generic-service', + check_command => $check_command, + service_description => $service_description, + host_name => $host } +} diff --git a/puppet/modules/site_nagios/manifests/server.pp b/puppet/modules/site_nagios/manifests/server.pp index e11ffd48..df3e00cd 100644 --- a/puppet/modules/site_nagios/manifests/server.pp +++ b/puppet/modules/site_nagios/manifests/server.pp @@ -1,7 +1,18 @@ class site_nagios::server { - class {'nagios': - allow_external_cmd => true + + $nagios_hiera=hiera('nagios') + $nagiosadmin_pw = $nagios_hiera['nagiosadmin_pw'] + $hosts = $nagios_hiera['hosts'] + + include nagios::defaults + include nagios::base + #Class ['nagios'] -> Class ['nagios::defaults'] + class {'nagios::apache': + allow_external_cmd => true, + stored_config => false, + #before => Class ['nagios::defaults'] } - #include nagios::defaults + + create_resources ( site_nagios::add_host, $hosts) } -- cgit v1.2.3 From ab0792667b57bb034fe23ae24064fad56f3c8163 Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 28 Jan 2013 15:03:10 +0100 Subject: adapted new hiera config, see #1546 --- puppet/modules/site_nagios/manifests/add_host.pp | 29 +++++++++++----------- .../modules/site_nagios/manifests/add_service.pp | 22 ++++++++-------- puppet/modules/site_nagios/manifests/server.pp | 3 +-- 3 files changed, 26 insertions(+), 28 deletions(-) (limited to 'puppet/modules/site_nagios/manifests') diff --git a/puppet/modules/site_nagios/manifests/add_host.pp b/puppet/modules/site_nagios/manifests/add_host.pp index 5148048d..d5aac67c 100644 --- a/puppet/modules/site_nagios/manifests/add_host.pp +++ b/puppet/modules/site_nagios/manifests/add_host.pp @@ -1,30 +1,29 @@ -define site_nagios::add_host ($ip, $services='' ) { - - $nagios_hostname = $name - - #notice ("$nagios_hostname $ip $services") +define site_nagios::add_host { + $nagios_host = $name + $nagios_hostname = $name['domain_full'] + $nagios_ip = $name['ip_address'] + $nagios_services = $name['services'] + # Add Nagios host nagios_host { $nagios_hostname: - address => $ip, + address => $nagios_ip, use => 'generic-host', } - # turn serice array into hash - # https://github.com/ashak/puppet-resource-looping + # Add Nagios service + + # First, we need to turn the serice array into hash, using a "hash template" + # see https://github.com/ashak/puppet-resource-looping $nagios_service_hashpart = { - 'host' => $nagios_hostname, - 'ip' => $ip, + 'hostname' => $nagios_hostname, + 'ip_address' => $nagios_ip, } $dynamic_parameters = { 'service' => '%s' } - - #$nagios_services = ['one', 'two'] $nagios_servicename = "${nagios_hostname}_%s" - $nagios_service_hash = create_resources_hash_from($nagios_servicename, $services, $nagios_service_hashpart, $dynamic_parameters) - #notice ($created_resource_hash) - + $nagios_service_hash = create_resources_hash_from($nagios_servicename, $nagios_services, $nagios_service_hashpart, $dynamic_parameters) create_resources ( site_nagios::add_service, $nagios_service_hash ) } diff --git a/puppet/modules/site_nagios/manifests/add_service.pp b/puppet/modules/site_nagios/manifests/add_service.pp index 5a5b344f..1a69e068 100644 --- a/puppet/modules/site_nagios/manifests/add_service.pp +++ b/puppet/modules/site_nagios/manifests/add_service.pp @@ -1,22 +1,22 @@ -define site_nagios::add_service ($host, $ip, $service) { - - notice ('$name $host $ip $service') +define site_nagios::add_service ($hostname, $ip_address, $service) { case $service { 'openvpn': { - $check_command = 'check_openvpn!...' + $check_command = 'check_openvpn' $service_description = 'Openvpn' } 'webapp': { - $check_command = 'check_http!...' + $check_command = 'check_http' $service_description = 'Website' } - default: { fail ('unknown service') } + default: { notice ("No Nagios service check for service \"$service\"") } } - nagios_service { $name: - use => 'generic-service', - check_command => $check_command, - service_description => $service_description, - host_name => $host } + if ( $check_command != '' ) { + nagios_service { $name: + use => 'generic-service', + check_command => $check_command, + service_description => $service_description, + host_name => $hostname } + } } diff --git a/puppet/modules/site_nagios/manifests/server.pp b/puppet/modules/site_nagios/manifests/server.pp index df3e00cd..a8ebeaf4 100644 --- a/puppet/modules/site_nagios/manifests/server.pp +++ b/puppet/modules/site_nagios/manifests/server.pp @@ -13,6 +13,5 @@ class site_nagios::server { #before => Class ['nagios::defaults'] } - create_resources ( site_nagios::add_host, $hosts) - + site_nagios::add_host {$hosts:} } -- cgit v1.2.3 From f8e3cf9aa8362c5ec36d3b0d33477898a2fd5c0c Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 28 Jan 2013 16:14:26 +0100 Subject: deploy openvpn check --- puppet/modules/site_nagios/manifests/add_service.pp | 2 +- puppet/modules/site_nagios/manifests/server.pp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'puppet/modules/site_nagios/manifests') diff --git a/puppet/modules/site_nagios/manifests/add_service.pp b/puppet/modules/site_nagios/manifests/add_service.pp index 1a69e068..a1f99cc9 100644 --- a/puppet/modules/site_nagios/manifests/add_service.pp +++ b/puppet/modules/site_nagios/manifests/add_service.pp @@ -2,7 +2,7 @@ define site_nagios::add_service ($hostname, $ip_address, $service) { case $service { 'openvpn': { - $check_command = 'check_openvpn' + $check_command = "check_openvpn_server_ip_port!$ip_address!1194" $service_description = 'Openvpn' } 'webapp': { diff --git a/puppet/modules/site_nagios/manifests/server.pp b/puppet/modules/site_nagios/manifests/server.pp index a8ebeaf4..fe3ab542 100644 --- a/puppet/modules/site_nagios/manifests/server.pp +++ b/puppet/modules/site_nagios/manifests/server.pp @@ -13,5 +13,13 @@ class site_nagios::server { #before => Class ['nagios::defaults'] } + # deploy serverside plugins + file { '/usr/lib/nagios/plugins/check_openvpn_server.pl': + source => 'puppet:///modules/nagios/plugins/check_openvpn_server.pl', + mode => '0755', + owner => 'nagios', + group => 'nagios', + } + site_nagios::add_host {$hosts:} } -- cgit v1.2.3 From 8164205e06ecd9e1c68b788425cb4f71129b1061 Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 28 Jan 2013 16:15:33 +0100 Subject: don't deploy openvpn check until we fix #1546 --- puppet/modules/site_nagios/manifests/add_service.pp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'puppet/modules/site_nagios/manifests') diff --git a/puppet/modules/site_nagios/manifests/add_service.pp b/puppet/modules/site_nagios/manifests/add_service.pp index a1f99cc9..d8293b42 100644 --- a/puppet/modules/site_nagios/manifests/add_service.pp +++ b/puppet/modules/site_nagios/manifests/add_service.pp @@ -1,10 +1,10 @@ define site_nagios::add_service ($hostname, $ip_address, $service) { case $service { - 'openvpn': { - $check_command = "check_openvpn_server_ip_port!$ip_address!1194" - $service_description = 'Openvpn' - } + #'openvpn': { + # $check_command = "check_openvpn_server_ip_port!$ip_address!1194" + # $service_description = 'Openvpn' + #} 'webapp': { $check_command = 'check_http' $service_description = 'Website' -- cgit v1.2.3 From f34cecba90941f3e4acbe88cab6ce0b5a76b8ce2 Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 28 Jan 2013 16:21:11 +0100 Subject: use check_https for website --- puppet/modules/site_nagios/manifests/add_service.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'puppet/modules/site_nagios/manifests') diff --git a/puppet/modules/site_nagios/manifests/add_service.pp b/puppet/modules/site_nagios/manifests/add_service.pp index d8293b42..5b282ac4 100644 --- a/puppet/modules/site_nagios/manifests/add_service.pp +++ b/puppet/modules/site_nagios/manifests/add_service.pp @@ -6,7 +6,7 @@ define site_nagios::add_service ($hostname, $ip_address, $service) { # $service_description = 'Openvpn' #} 'webapp': { - $check_command = 'check_http' + $check_command = 'check_https' $service_description = 'Website' } default: { notice ("No Nagios service check for service \"$service\"") } -- cgit v1.2.3