summaryrefslogtreecommitdiff
path: root/example/site_check_mk/manifests/server.pp
diff options
context:
space:
mode:
Diffstat (limited to 'example/site_check_mk/manifests/server.pp')
-rw-r--r--example/site_check_mk/manifests/server.pp96
1 files changed, 96 insertions, 0 deletions
diff --git a/example/site_check_mk/manifests/server.pp b/example/site_check_mk/manifests/server.pp
new file mode 100644
index 0000000..99fee41
--- /dev/null
+++ b/example/site_check_mk/manifests/server.pp
@@ -0,0 +1,96 @@
+class site_check_mk::server {
+
+ # we don't use the main check_mk class, but call things a la carte. The
+ # main class does:
+ # check_mk::install -> we don't want OMD, we install the debian packages
+ # check_mk::config -> we call below with special settings
+ # check_mk::service -> service checks for http/xinetd/omd, we don't want
+ # check_mk::server::configure_ssh -> we call below
+ # FIXME: if the check_mk module was more generic and less OMD focused,
+ # it would just know what to do for a debian install and we could use
+ # the main check_mk class with the right parameters, rather than a la carte
+
+ # install the server package, this also pulls in check-mk-config-nagios3
+ # FIXME: the check_mk module should be enhanced to better support distro
+ # installs and then we'd just set a $distro parameter and it would
+ # detect debian and install the right packages. But until it does...
+ package { 'check-mk-server':
+ ensure => installed,
+ }
+
+ # the server needs check_icmp (among others)
+ if !defined(Package['nagios-plugins-basic']) {
+ package { 'nagios-plugins-basic': ensure => installed }
+ }
+
+ # flush config for certain config changes
+ # FIXME: after testing, maybe this can go in the generic module
+ exec { 'check_mk-flush':
+ command => "/bin/su -l -c '${bin_dir}/check_mk --flush' ${site}",
+ refreshonly => true,
+ notify => Exec['check_mk-reload'],
+ }
+
+ file {
+ '/etc/check_mk/keys':
+ ensure => directory;
+
+ # don't generate host defines
+ '/etc/check_mk/conf.d/nohost.mk':
+ source => 'puppet:///modules/site_check_mk/nohost.mk',
+ owner => root,
+ group => root,
+ mode => '0644',
+ notify => Exec['check_mk-refresh'];
+
+ # setup parent relationships
+ '/etc/check_mk/conf.d/parents.mk':
+ source => 'puppet:///modules/site_check_mk/parents.mk',
+ owner => root,
+ group => root,
+ mode => '0644',
+ notify => Exec['check_mk-refresh'];
+
+ # checks we ignore (requires a flush to get them to go away)
+ '/etc/check_mk/conf.d/ignore.mk':
+ source => 'puppet:///modules/site_check_mk/ignore.mk',
+ owner => root,
+ group => root,
+ mode => '0644',
+ notify => Exec['check_mk-flush'];
+
+ # checks we adjust (requires reload so checks are recompiled)
+ '/etc/check_mk/conf.d/adjust.mk':
+ source => 'puppet:///modules/site_check_mk/adjust.mk',
+ owner => root,
+ group => root,
+ mode => '0644',
+ notify => Exec['check_mk-reload'];
+
+ # check_icmp must be suid root or called by sudo
+ # see https://leap.se/code/issues/5171
+ '/usr/lib/nagios/plugins/check_icmp':
+ mode => '4755',
+ require => Package['nagios-plugins-basic'];
+ }
+
+ # override paths to use the system check_mk rather than OMD
+ class { 'check_mk::config':
+ # default site is 'monitoring', we set to blank
+ site => '',
+ # etc_dir is an OMD dir by default, we use /etc resulting in /etc/check_mk
+ etc_dir => '/etc',
+ # nagios_subdir is nagios by default, debian uses nagios3
+ nagios_subdir => 'nagios3',
+ # bin_dir is an OMD dir by default, we use the system path for debian
+ bin_dir => '/usr/bin',
+ # all our hosts are in the same group
+ host_groups => undef,
+ # use_storedconfigs default is true, which we want
+ # make sure the check-mk-server is installed or initial config will fail
+ # FIXME: like the above, this should move into the check_mk module
+ require => Package['check-mk-server']
+ }
+
+ class { 'check_mk::server::configure_ssh': }
+}