From d9e6db5e0d5b2777ede7e16b2b4fd34906974dc2 Mon Sep 17 00:00:00 2001
From: Arne Teuke
Date: Sun, 30 Jul 2017 12:32:29 +0100
Subject: [PATCH 1/2] updated README, added defintions
---
README.md | 15 ++++++-
manifests/commands/definition_rules.pp | 56 ++++++++++++++++++++++++++
manifests/commands/definitions.pp | 19 ++++++++-
manifests/main/service.pp | 4 ++
manifests/params.pp | 7 ++++
templates/cmd_head.erb | 4 ++
templates/cmd_rule.erb | 2 +
7 files changed, 105 insertions(+), 2 deletions(-)
create mode 100644 manifests/commands/definition_rules.pp
create mode 100644 templates/cmd_head.erb
create mode 100644 templates/cmd_rule.erb
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 %>
From 3f047c24ddbd6ed17b24c9db3b6e8c812b861296 Mon Sep 17 00:00:00 2001
From: Jenkins Server
Date: Sun, 30 Jul 2017 13:32:22 +0200
Subject: [PATCH 2/2] recommit for updates in build 40
---
CHANGELOG.md | 10 +
REPOSTRUCTURE.md | 5 +-
doc/_index.html | 7 +-
doc/file.README.html | 26 ++-
doc/index.html | 26 ++-
doc/puppet_class_list.html | 23 +-
doc/puppet_classes/cd_nrpe.html | 2 +-
...d_nrpe_3A_3Acommands_3A_3Adefinitions.html | 217 ++++++++++++++++++
.../cd_nrpe_3A_3Afirewall_3A_3Aiptables.html | 2 +-
.../cd_nrpe_3A_3Amain_3A_3Aconfig.html | 2 +-
.../cd_nrpe_3A_3Amain_3A_3Adirs.html | 2 +-
.../cd_nrpe_3A_3Amain_3A_3Afiles.html | 2 +-
.../cd_nrpe_3A_3Amain_3A_3Ainstall.html | 2 +-
.../cd_nrpe_3A_3Amain_3A_3Aservice.html | 12 +-
.../cd_nrpe_3A_3Amain_3A_3Auser.html | 2 +-
doc/puppet_classes/cd_nrpe_3A_3Aparams.html | 42 +++-
...d_nrpe_3A_3Acommands_3A_3Adefinitions.html | 118 ++++++++--
doc/top-level-namespace.html | 2 +-
18 files changed, 456 insertions(+), 46 deletions(-)
create mode 100644 doc/puppet_classes/cd_nrpe_3A_3Acommands_3A_3Adefinitions.html
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1fb11fc..a74e84c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,16 @@ Changelog of Git Changelog.
@@ -192,6 +194,26 @@ details about class deployment on Confdroid.com.
(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
@@ -252,7 +274,7 @@ environments.
@@ -192,6 +194,26 @@ details about class deployment on Confdroid.com.
(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
@@ -252,7 +274,7 @@ environments.
+ manage command definitions via define and Puppet rules.
+
+
Overview
+
+
+
+
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 www.gnu.org/licenses/.
# File 'manifests/params.pp', line 101
class cd_nrpe::params (
$pkg_ensure = 'latest',
+$ne_manage_cmds = true,
+
# user settings
$ne_user = 'nrpe',
$ne_user_comment = 'NRPE service user',
@@ -1014,6 +1043,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
@@ -1027,7 +1059,7 @@ $ne_nrpe_conf_erb = 'cd_nrpe/nrpe_conf.erb'
diff --git a/doc/puppet_defined_types/cd_nrpe_3A_3Acommands_3A_3Adefinitions.html b/doc/puppet_defined_types/cd_nrpe_3A_3Acommands_3A_3Adefinitions.html
index 1259313..950e7c9 100644
--- a/doc/puppet_defined_types/cd_nrpe_3A_3Acommands_3A_3Adefinitions.html
+++ b/doc/puppet_defined_types/cd_nrpe_3A_3Acommands_3A_3Adefinitions.html
@@ -70,7 +70,8 @@
Summary
- manage firewall settings through cd_firewall or puppetlabs-firewall
+ Populate command definitions through external puppet rules, i.e.
+from other modules.
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