summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Filion <gabster@lelutin.ca>2016-01-31 18:19:57 -0500
committerGabriel Filion <gabster@lelutin.ca>2016-01-31 18:19:57 -0500
commita534036c8d036275aa802f86470d67e4ee46db96 (patch)
tree495c77f0fe994745a21b7ce14dc45a126637ae39
parentd1321c39001ebd445b37fd551fbfd324b6ab6ae0 (diff)
parametrize nagios::nrpe
the current code for configuring NRPE is still relying on global variables. This is not working at all with puppet 3.x and forward, so in order to make this code functional, we need to parametrize values that are used.
-rw-r--r--manifests/nrpe.pp24
-rw-r--r--manifests/nrpe/base.pp15
-rw-r--r--manifests/nrpe/command.pp10
-rw-r--r--templates/nrpe/nrpe.cfg14
4 files changed, 37 insertions, 26 deletions
diff --git a/manifests/nrpe.pp b/manifests/nrpe.pp
index ad7dbbb..eb68189 100644
--- a/manifests/nrpe.pp
+++ b/manifests/nrpe.pp
@@ -1,22 +1,30 @@
# setup nrpe stuff
-class nagios::nrpe {
+class nagios::nrpe (
+ $cfg_dir = '',
+ $pid_file = '',
+ $plugin_dir = '',
+ $server_address = '',
+ $allowed_hosts = '',
+) {
case $::operatingsystem {
'FreeBSD': {
- if $nagios_nrpe_cfgdir == '' { $nagios_nrpe_cfgdir = '/usr/local/etc' }
- if $nagios_nrpe_pid_file == '' { $nagios_nrpe_pid_file = '/var/spool/nagios/nrpe2.pid' }
- if $nagios_plugin_dir == '' { $nagios_plugin_dir = '/usr/local/libexec/nagios' }
+ if $cfg_dir == '' { $real_cfg_dir = '/usr/local/etc' }
+ if $pid_file == '' { $real_pid_file = '/var/spool/nagios/nrpe2.pid' }
+ if $plugin_dir == '' { $real_plugin_dir = '/usr/local/libexec/nagios' }
include ::nagios::nrpe::freebsd
}
'Debian': {
- if $nagios_nrpe_pid_file == '' { $nagios_nrpe_pid_file = '/var/run/nagios/nrpe.pid' }
- if $nagios_plugin_dir == '' { $nagios_plugin_dir = '/usr/lib/nagios/plugins' }
+ if $cfg_dir == '' { $real_cfg_dir = '/etc/nagios' }
+ if $pid_file == '' { $real_pid_file = '/var/run/nagios/nrpe.pid' }
+ if $plugin_dir == '' { $real_plugin_dir = '/usr/lib/nagios/plugins' }
include ::nagios::nrpe::linux
}
default: {
- if $nagios_nrpe_pid_file == '' { $nagios_nrpe_pid_file = '/var/run/nrpe.pid' }
- if $nagios_plugin_dir == '' { $nagios_plugin_dir = '/usr/lib/nagios/plugins' }
+ if $cfg_dir == '' { $real_cfg_dir = '/etc/nagios' }
+ if $pid_file == '' { $real_pid_file = '/var/run/nrpe.pid' }
+ if $plugin_dir == '' { $real_plugin_dir = '/usr/lib/nagios/plugins' }
case $::kernel {
'Linux': { include ::nagios::nrpe::linux }
diff --git a/manifests/nrpe/base.pp b/manifests/nrpe/base.pp
index fe1cd7c..fb62693 100644
--- a/manifests/nrpe/base.pp
+++ b/manifests/nrpe/base.pp
@@ -1,7 +1,12 @@
# basic nrpe stuff
class nagios::nrpe::base {
- if $nagios_nrpe_cfgdir == '' { $nagios_nrpe_cfgdir = '/etc/nagios' }
+ # Import all variables from entry point
+ $cfg_dir = $::nagios::nrpe::real_cfg_dir
+ $pid_file = $::nagios::nrpe::real_pid_file
+ $plugin_dir = $::nagios::nrpe::real_plugin_dir
+ $server_address = $::nagios::nrpe::server_address
+ $allowed_hosts = $::nagios::nrpe::allowed_hosts
package{['nagios-nrpe-server', 'nagios-plugins-basic', 'libwww-perl']:
ensure => installed;
@@ -13,12 +18,12 @@ class nagios::nrpe::base {
}
file{
- [ $nagios_nrpe_cfgdir, "${nagios_nrpe_cfgdir}/nrpe.d" ]:
+ [ $cfg_dir, "${cfg_dir}/nrpe.d" ]:
ensure => directory;
}
if $nagios_nrpe_dont_blame == '' { $nagios_nrpe_dont_blame = 1 }
- file { "${nagios_nrpe_cfgdir}/nrpe.cfg":
+ file { "${cfg_dir}/nrpe.cfg":
content => template('nagios/nrpe/nrpe.cfg'),
owner => root,
group => 0,
@@ -40,14 +45,14 @@ class nagios::nrpe::base {
$critical_5_threshold = 9 * $::processorcount
$critical_15_threshold = 8 * $::processorcount
nagios::nrpe::command {'check_load':
- command_line => "${nagios_plugin_dir}/check_load -w ${warning_1_threshold},${warning_5_threshold},${warning_15_threshold} -c ${critical_1_threshold},${critical_5_threshold},${critical_15_threshold}",
+ command_line => "${plugin_dir}/check_load -w ${warning_1_threshold},${warning_5_threshold},${warning_15_threshold} -c ${critical_1_threshold},${critical_5_threshold},${critical_15_threshold}",
}
service{'nagios-nrpe-server':
ensure => running,
enable => true,
pattern => 'nrpe',
- subscribe => File["${nagios_nrpe_cfgdir}/nrpe.cfg"],
+ subscribe => File["${cfg_dir}/nrpe.cfg"],
require => Package['nagios-nrpe-server'],
}
}
diff --git a/manifests/nrpe/command.pp b/manifests/nrpe/command.pp
index 196996c..bdd89a7 100644
--- a/manifests/nrpe/command.pp
+++ b/manifests/nrpe/command.pp
@@ -8,12 +8,12 @@ define nagios::nrpe::command (
fail('Either one of $command_line or $source must be given to nagios::nrpe::command.' )
}
- $nagios_nrpe_cfgdir = $nagios::nrpe::base::nagios_nrpe_cfgdir
+ $cfg_dir = $nagios::nrpe::real_cfg_dir
- file{"${nagios_nrpe_cfgdir}/nrpe.d/${name}_command.cfg":
+ file{"${cfg_dir}/nrpe.d/${name}_command.cfg":
ensure => $ensure,
notify => Service['nagios-nrpe-server'],
- require => File ["${nagios_nrpe_cfgdir}/nrpe.d" ],
+ require => File ["${cfg_dir}/nrpe.d" ],
owner => 'root',
group => 0,
mode => '0644';
@@ -21,12 +21,12 @@ define nagios::nrpe::command (
case $source {
'': {
- File["${nagios_nrpe_cfgdir}/nrpe.d/${name}_command.cfg"] {
+ File["${cfg_dir}/nrpe.d/${name}_command.cfg"] {
content => template('nagios/nrpe/nrpe_command.erb'),
}
}
default: {
- File["${nagios_nrpe_cfgdir}/nrpe.d/${name}_command.cfg"] {
+ File["${cfg_dir}/nrpe.d/${name}_command.cfg"] {
source => $source,
}
}
diff --git a/templates/nrpe/nrpe.cfg b/templates/nrpe/nrpe.cfg
index 2ae2d71..21e1ff8 100644
--- a/templates/nrpe/nrpe.cfg
+++ b/templates/nrpe/nrpe.cfg
@@ -16,7 +16,7 @@
# number. The file is only written if the NRPE daemon is started by the root
# user and is running in standalone mode.
-pid_file=<%= nagios_nrpe_pid_file %>
+pid_file=<%= @pid_file %>
@@ -34,10 +34,8 @@ server_port=5666
# and you do not want nrpe to bind on all interfaces.
# NOTE: This option is ignored if NRPE is running under either inetd or xinetd
-<%- if has_variable?("nagios_nrpe_server_address") then %>
-<%- if not nagios_nrpe_server_address.to_s.empty? then %>
-server_address=<%= nagios_nrpe_server_address %>
-<%- end %>
+<%- if not @server_address.to_s.empty? then %>
+server_address=<%= @server_address %>
<%- end %>
@@ -72,10 +70,10 @@ nrpe_group=nagios
#
# NOTE: This option is ignored if NRPE is running under either inetd or xinetd
-<%- if nagios_nrpe_allowed_hosts.to_s.empty? then %>
+<%- if @allowed_hosts.to_s.empty? then %>
allowed_hosts=127.0.0.1
<%- else %>
-allowed_hosts=127.0.0.1,<%= nagios_nrpe_allowed_hosts %>
+allowed_hosts=127.0.0.1,<%= @allowed_hosts %>
<%- end %>
# COMMAND ARGUMENT PROCESSING
@@ -157,7 +155,7 @@ command_timeout=60
#include_dir=<somedirectory>
#include_dir=<someotherdirectory>
-include_dir=<%= nagios_nrpe_cfgdir %>/nrpe.d
+include_dir=<%= @cfg_dir %>/nrpe.d