summaryrefslogtreecommitdiff
path: root/puppet/modules/site_nagios/manifests
diff options
context:
space:
mode:
Diffstat (limited to 'puppet/modules/site_nagios/manifests')
-rw-r--r--puppet/modules/site_nagios/manifests/add_host.pp31
-rw-r--r--puppet/modules/site_nagios/manifests/add_service.pp21
-rw-r--r--puppet/modules/site_nagios/manifests/init.pp4
-rw-r--r--puppet/modules/site_nagios/manifests/server.pp38
-rw-r--r--puppet/modules/site_nagios/manifests/server/purge.pp7
5 files changed, 101 insertions, 0 deletions
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..498552b5
--- /dev/null
+++ b/puppet/modules/site_nagios/manifests/add_host.pp
@@ -0,0 +1,31 @@
+define site_nagios::add_host {
+ $nagios_host = $name
+ $nagios_hostname = $name['domain_internal']
+ $nagios_ip = $name['ip_address']
+ $nagios_services = $name['services']
+ $nagios_openvpn_gw = $name['openvpn_gateway_address']
+
+ # Add Nagios host
+ nagios_host { $nagios_hostname:
+ address => $nagios_ip,
+ use => 'generic-host',
+ }
+
+ # 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 = {
+ 'hostname' => $nagios_hostname,
+ 'ip_address' => $nagios_ip,
+ 'openvpn_gw' => $nagios_openvpn_gw,
+ }
+ $dynamic_parameters = {
+ 'service' => '%s'
+ }
+ $nagios_servicename = "${nagios_hostname}_%s"
+
+ $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
new file mode 100644
index 00000000..6ef3cbf5
--- /dev/null
+++ b/puppet/modules/site_nagios/manifests/add_service.pp
@@ -0,0 +1,21 @@
+define site_nagios::add_service (
+ $hostname, $ip_address, $openvpn_gw = '', $service) {
+
+ case $service {
+ 'webapp': {
+ $check_command = 'check_https_cert'
+ $service_description = 'Website Certificate'
+ }
+ default: {
+ #notice ("No Nagios service check for service \"$service\"")
+ }
+ }
+
+ 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/init.pp b/puppet/modules/site_nagios/manifests/init.pp
new file mode 100644
index 00000000..cab32905
--- /dev/null
+++ b/puppet/modules/site_nagios/manifests/init.pp
@@ -0,0 +1,4 @@
+class site_nagios {
+ tag 'leap_service'
+ include site_nagios::server
+}
diff --git a/puppet/modules/site_nagios/manifests/server.pp b/puppet/modules/site_nagios/manifests/server.pp
new file mode 100644
index 00000000..c98a8a1f
--- /dev/null
+++ b/puppet/modules/site_nagios/manifests/server.pp
@@ -0,0 +1,38 @@
+class site_nagios::server inherits nagios::base {
+
+ # First, purge old nagios config (see #1467)
+ class { 'site_nagios::server::purge':
+ stage => initial
+ }
+
+ $nagios_hiera=hiera('nagios')
+ $nagiosadmin_pw = htpasswd_sha1($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']
+ }
+
+ File ['nagios_htpasswd'] {
+ source => undef,
+ content => "nagiosadmin:$nagiosadmin_pw",
+ mode => '0640',
+ }
+
+
+ # 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:}
+ include site_shorewall::monitor
+}
diff --git a/puppet/modules/site_nagios/manifests/server/purge.pp b/puppet/modules/site_nagios/manifests/server/purge.pp
new file mode 100644
index 00000000..39735cd3
--- /dev/null
+++ b/puppet/modules/site_nagios/manifests/server/purge.pp
@@ -0,0 +1,7 @@
+class site_nagios::server::purge {
+ exec {'purge_conf.d':
+ command => '/bin/rm -rf /etc/nagios3/conf.d/*',
+ onlyif => 'test -e /etc/nagios3/conf.d'
+ }
+
+}