summaryrefslogtreecommitdiff
path: root/puppet/modules/site_nagios/manifests
diff options
context:
space:
mode:
authorvarac <varacanero@zeromail.org>2013-01-27 14:42:04 +0100
committervarac <varacanero@zeromail.org>2013-01-27 14:42:48 +0100
commit51369107eefffca0c50784b2ad2b51bf56c53512 (patch)
tree45f66a51a2fe656c7f2ca751fff4b0632700b33d /puppet/modules/site_nagios/manifests
parent078bc9674c247cc2c3ad715eec57903138e481e1 (diff)
site_nagios: add hosts + services
Diffstat (limited to 'puppet/modules/site_nagios/manifests')
-rw-r--r--puppet/modules/site_nagios/manifests/add_host.pp30
-rw-r--r--puppet/modules/site_nagios/manifests/add_service.pp22
-rw-r--r--puppet/modules/site_nagios/manifests/server.pp17
3 files changed, 66 insertions, 3 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..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)
}