summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifests/agent.pp61
-rw-r--r--templates/agent/check_mk.erb51
2 files changed, 112 insertions, 0 deletions
diff --git a/manifests/agent.pp b/manifests/agent.pp
new file mode 100644
index 0000000..4a83e34
--- /dev/null
+++ b/manifests/agent.pp
@@ -0,0 +1,61 @@
+class check_mk::agent (
+ $version,
+ $filestore = 'puppet://files/check_mk',
+ $ip_whitelist = undef,
+ $port = '6556',
+ $server_dir = '/usr/bin',
+ $use_cache = false,
+ $user = 'root',
+ $workspace = '/root/check_mk',
+) {
+ if ! defined(Package['xinetd']) {
+ package { 'xinetd':
+ ensure => present,
+ }
+ }
+ file { "${workspace}/check_mk-agent-${version}.noarch.rpm":
+ ensure => present,
+ content => "${filestore}/check_mk-agent-${version}.noarch.rpm",
+ require => Package['xinetd'],
+ }
+ file { "${workspace}/check_mk-agent-logwatch-${version}.noarch.rpm":
+ ensure => present,
+ content => "${filestore}/check_mk-agent-logwatch-${version}.noarch.rpm",
+ require => Package['xinetd'],
+ }
+ package { 'check_mk-agent':
+ ensure => present,
+ source => "${workspace}/check_mk-agent-${version}.noarch.rpm",
+ require => File["${workspace}/check_mk-agent-${version}.noarch.rpm"],
+ }
+ package { 'check_mk-agent-logwatch':
+ ensure => present,
+ content => "${workspace}/check_mk-agent-logwatch-${version}.noarch.rpm",
+ require => File["${workspace}/check_mk-agent-logwatch-${version}.noarch.rpm"],
+ }
+ if $use_cache {
+ $server = "${server_dir}/check_mk_caching_agent"
+ }
+ else {
+ $server = "${server_dir}/check_mk_agent"
+ }
+ if $ip_whitelist {
+ $only_from = join($ip_whitelist, ' ')
+ }
+ else {
+ $only_from = undef
+ }
+ file { '/etc/xinetd.d/check_mk':
+ ensure => present,
+ owner => 'root',
+ group => 'root',
+ mode => '0444',
+ source => template('check_mk/agent/check_mk.erb'),
+ require => Package['check_mk-agent','check_mk-agent-logwatch'],
+ notify => Service['xinetd'],
+ }
+ service { 'xinetd':
+ ensure => 'running',
+ enable => true,
+ }
+}
diff --git a/templates/agent/check_mk.erb b/templates/agent/check_mk.erb
new file mode 100644
index 0000000..7643292
--- /dev/null
+++ b/templates/agent/check_mk.erb
@@ -0,0 +1,51 @@
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2012 mk@mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at http://mathias-kettner.de/check_mk.
+#
+# check_mk 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 in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# ails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+service check_mk
+{
+ type = UNLISTED
+ port = <%= @port %>
+ socket_type = stream
+ protocol = tcp
+ wait = no
+ user = <%= @user %>
+<% if @use_cache -%>
+ # If you use fully redundant monitoring and poll the client
+ # from more then one monitoring servers in parallel you might
+ # want to use the agent cache wrapper:
+<% end -%>
+ server = <%= @server %>
+
+<% if @only_from %>
+ # configure the IP address(es) of your Nagios server here:
+ only_from = <%= @only_from %>
+<% end -%>
+
+ # Don't be too verbose. Don't log every check. This might be
+ # commented out for debugging. If this option is commented out
+ # the default options will be used for this service.
+ log_on_success =
+
+ disable = no
+}