diff --git a/README.md b/README.md
index af84c47..3257254 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
|Repo Name| version | Build Status|
|---|---|---|---|
-|`cd_nrpe`| 0.0.0.1 | [](https://jenkins.confdroid.com/job/cd_nrpe/)|
+|`cd_nrpe`| 0.0.0.2 | [](https://jenkins.confdroid.com/job/cd_nrpe/)|
### Synopsis
NRPE allows monitoring tools like NAGIOS or ICINGA to connect to clients for monitoring purposes.
@@ -19,6 +19,7 @@ NRPE allows monitoring tools like NAGIOS or ICINGA to connect to clients for mon
* [native Puppet deployment](#native-puppet-deployment)
* [through Foreman](#through-foreman)
* [Parameters](#parameters)
+* [Managing Check Commands](#managing-check-commands)
* [SELINUX](#selinux)
* [Known Problems](#known-problems)
* [Support](#support)
@@ -76,6 +77,18 @@ See [more details about class deployment on Confdroid.com](https://confdroid.com
The following parameters are editable via params.pp or through ENC (**__recommended__**). Values changed will take immediate effect at next puppet run. Services will be restarted where neccessary.
+### Mandatory Parameters
+
+There are currently no mandatory parameters, i.e. the module will function right out of box as is.
+
+### Optional Parameters
+
+* `$ne_manage_cmds` : Whether to manage check command definitions dynamically through a define, i.e. from other Puppet modules or profiles. Defaults to `true`.
+* `$ne_incl_fw` : Whether to manage relevant firewall rules through this modules. Defaults to `true`.
+* `$ne_include_selinux` : Whether to manage selinux exception rules. Defaults to `true`.
+
+### Managing Check Commands
+
### SELINUX
All files and directories are configured with correct selinux context. If selinux is disabled, these contexts are ignored.
diff --git a/manifests/commands/definition_rules.pp b/manifests/commands/definition_rules.pp
new file mode 100644
index 0000000..c8767f5
--- /dev/null
+++ b/manifests/commands/definition_rules.pp
@@ -0,0 +1,56 @@
+## cd_nrpe::commands::definition_rules.pp
+# Module name: cd_nrpe
+# Author: Arne Teuke (arne_teuke@ConfDroid.com)
+# # License:
+# This file is part of cd_nrpe.
+#
+# cd_nrpe is used for providing automatic configuration of NRPE.
+# Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com)
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+# @summary manage command definitions via define and Puppet rules.
+###############################################################################
+class cd_nrpe::commands::definitions (
+
+) inherits cd_nrpe::params {
+
+ if $ne_manage_cmds == true {
+
+ # manage the commands.cfg file
+
+ concat { $ne_cmd_file:
+ ensure => present,
+ path => $ne_cmd_file,
+ owner => 'root',
+ group => 'root',
+ mode => '0640',
+ selrange => s0,
+ selrole => object_r,
+ seltype => nrpe_etc_t,
+ seluser => system_u,
+ notify => Service[$ne_service],
+ }
+
+ # manage the file header
+
+ concat::fragment { 'nrpe_cmd_header':
+ target => $ne_cmd_file,
+ content => template($ne_cmd_head_erb),
+ order => '000',
+ }
+
+ # basic example rules
+
+
+ }
+}
diff --git a/manifests/commands/definitions.pp b/manifests/commands/definitions.pp
index a34327b..0a0ba4e 100644
--- a/manifests/commands/definitions.pp
+++ b/manifests/commands/definitions.pp
@@ -18,13 +18,30 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
-# @summary manage firewall settings through cd_firewall or puppetlabs-firewall
+# @summary Populate command definitions through external puppet rules, i.e.
+# from other modules.
+# @param [string] ne_check_cmd Specify the check_command to use.
+# @param [string] ne_cmd_path The path to the command scripts, usually
+# where the nagis_plugins are located. If you use your own scripts, specify
+# the custom location **__including the trailing slash__**
+# @param ne_cmd_argstring Specify the string of valid argument for the command
+# , i.e. -w $ARG1$ -c $ARG2$. See the arguments in th eman pages for the
+# checks.
###############################################################################
define cd_nrpe::commands::definitions (
+$ne_check_cmd = undef,
+$ne_cmd_path = '/usr/lib64/nagios/plugins/',
+$ne_cmd_argstring = undef,
) {
+$ne_cmd_file = $::cd_nrpe::params::ne_cmd_file
+$ne_cmd_rule_erb = $::cd_nrpe::params::ne_cmd_rule_erb
+ concat::fragment { $name:
+ target => $ne_cmd_file,
+ content => template($ne_cmd_rule_erb),
+ }
}
diff --git a/manifests/main/service.pp b/manifests/main/service.pp
index dcfcc70..7c41593 100644
--- a/manifests/main/service.pp
+++ b/manifests/main/service.pp
@@ -30,6 +30,10 @@ class cd_nrpe::main::service (
require cd_nrpe::main::files
+ if $ne_manage_cmds == true {
+ require cd_nrpe::commands::definition_rules
+ }
+
service { $ne_service:
ensure => running,
hasstatus => true,
diff --git a/manifests/params.pp b/manifests/params.pp
index f4d39d4..ae5ae94 100644
--- a/manifests/params.pp
+++ b/manifests/params.pp
@@ -95,11 +95,15 @@
# @param [string] ne_allow_weak_rnd_seed Whether to allow weak random seeds
# @param [string] ne_include_selinux Whether to manage selinux
# @param [boolean] ne_enable_ssl Whether to enable SSL certificates.
+# @param [boolean] ne_manage_cmds Whether to manage command rules for NRPE
+# checks, to allow dynamic check & command rules.
###############################################################################
class cd_nrpe::params (
$pkg_ensure = 'latest',
+$ne_manage_cmds = true,
+
# user settings
$ne_user = 'nrpe',
$ne_user_comment = 'NRPE service user',
@@ -166,6 +170,9 @@ $ne_main_conf_erb = 'cd_nrpe/nrpe_cfg.erb'
$ne_nrpe_pid_file = "${ne_run_dir}/nrpe.pid"
$ne_nrpe_conf_file = '/etc/sysconfig/nrpe'
$ne_nrpe_conf_erb = 'cd_nrpe/nrpe_conf.erb'
+$ne_cmd_file = "${ne_main_conf_d_dir}/commands.cfg"
+$ne_cmd_head_erb = 'cd_nrpe/cmd_head.erb'
+$ne_cmd_rule_erb = 'cd_nrpe/cmd_rule.erb'
# includes must be last
diff --git a/templates/cmd_head.erb b/templates/cmd_head.erb
new file mode 100644
index 0000000..10d521f
--- /dev/null
+++ b/templates/cmd_head.erb
@@ -0,0 +1,4 @@
+################################################################################
+########## commandsmds.cfg managed by Puppet ##########
+########## manual changes will be orverwritten ##########
+################################################################################
diff --git a/templates/cmd_rule.erb b/templates/cmd_rule.erb
new file mode 100644
index 0000000..d6435e9
--- /dev/null
+++ b/templates/cmd_rule.erb
@@ -0,0 +1,2 @@
+
+cmd[<%= @ne_check_cmd %>]= <%= @ne_cmd_path %><%= @ne_check_cmd %> <%= @ne_cmd_argstring %>