From e0176c550fa89315049ee65133e360c12f7b67ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=E4kinen?= Date: Sun, 5 May 2013 09:57:01 +0300 Subject: [PATCH 1/6] mysql: Fixed backup script errors in MySQL 5.1.69. --- mysql/templates/mysql-backup.cron.erb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mysql/templates/mysql-backup.cron.erb b/mysql/templates/mysql-backup.cron.erb index d30ec12..ab43392 100644 --- a/mysql/templates/mysql-backup.cron.erb +++ b/mysql/templates/mysql-backup.cron.erb @@ -5,6 +5,7 @@ MAXAGE="<%= mysql_backup_maxage %>" DATE=`date "+%Y-%m-%d"` HOME="`getent passwd ${USER} | cut -d : -f 6`" +OPTS="" if [ ! -d ${DESTDIR} ]; then echo "ERR: MySQL backup directory [${DESTDIR}] does not exist" 1>&2 @@ -15,6 +16,11 @@ umask 077 tmpwatch -m -f ${MAXAGE} ${DESTDIR} +mysqldump -E > /dev/null 2>&1 +if [ $? -ne 2 ]; then + OPTS="${OPTS} -E" +fi + DESTDIR=${DESTDIR}/${DATE} mkdir -p ${DESTDIR} @@ -24,5 +30,5 @@ for db in `mysql -e 'show databases' -s` ; do continue ;; esac - mysqldump --add-drop-table ${db} | gzip > ${DESTDIR}/${db}.${DATE}.gz + mysqldump --add-drop-table ${OPTS} ${db} | gzip > ${DESTDIR}/${db}.${DATE}.gz done From 87f9e8995ddd9360efc0d2ee5dc78907926232bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=E4kinen?= Date: Mon, 6 May 2013 08:33:25 +0300 Subject: [PATCH 2/6] nagios: Added missing nagios-plugins-swap package to nagios::target::nrpe class. --- nagios/manifests/target.pp | 1 + 1 file changed, 1 insertion(+) diff --git a/nagios/manifests/target.pp b/nagios/manifests/target.pp index 87e2ec9..b000fec 100644 --- a/nagios/manifests/target.pp +++ b/nagios/manifests/target.pp @@ -100,6 +100,7 @@ class nagios::target::nrpe inherits nagios::target { "nagios-plugins-disk", "nagios-plugins-load", "nagios-plugins-procs", + "nagios-plugins-swap", "nagios-plugins-users", ]: ensure => installed, before => [ File["/etc/nrpe.d"], Service["nrpe"] ], From 999d0e588f5fa201a0fc8731c889593d7a82e2f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=E4kinen?= Date: Mon, 6 May 2013 09:39:55 +0300 Subject: [PATCH 3/6] nagios: Added support for nagios::target::nrpe to OpenBSD. --- nagios/manifests/init.pp | 7 +++++++ nagios/manifests/target.pp | 41 +++++++++++++++++++++++++++++++++----- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/nagios/manifests/init.pp b/nagios/manifests/init.pp index 850c7f3..1288f1e 100644 --- a/nagios/manifests/init.pp +++ b/nagios/manifests/init.pp @@ -33,6 +33,10 @@ class nagios::common { $cgibin = "/usr/lib/cgi-bin/nagios3" $htdocs = "/usr/share/nagios3/htdocs" } + "openbsd": { + # no params set as we don't support server on openbsd yet + $libdir = "/usr/local/libexec/nagios" + } default: { fail("Nagios not supported on ${::operatingsystem}") } @@ -67,6 +71,9 @@ class nagios::server::manual inherits nagios::common { target => "/etc/nagios3/stylesheets", } } + default: { + fail("nagios::server not supported in ${::operatingsystem}") + } } exec { "usermod-nagios-httpsd": diff --git a/nagios/manifests/target.pp b/nagios/manifests/target.pp index b000fec..77cfe97 100644 --- a/nagios/manifests/target.pp +++ b/nagios/manifests/target.pp @@ -115,13 +115,32 @@ class nagios::target::nrpe inherits nagios::target { before => [ File["/etc/nrpe.d"], Service["nrpe"] ], } } + "openbsd": { + $service = "nrpe" + $nrpedir = "/etc/nrpe.d" + package { "nrpe": + ensure => installed, + } + exec { "add-nrpe-include-dir": + command => "echo 'include_dir=${nrpedir}/' >> /etc/nrpe.cfg", + path => "/bin:/usr/bin:/sbin:/usr/sbin", + user => "root", + unless => "egrep '^include_dir=/etc/${nrpedir}/' /etc/nrpe.cfg", + require => Package["nrpe"], + notify => Service[$service], + before => File[$nrpedir], + } + } } file { "/etc/nrpe.d": ensure => directory, mode => "0644", owner => "root", - group => "root", + group => $::operatingsystem ? { + "openbsd" => "wheel", + default => "root", + }, purge => true, force => true, recurse => true, @@ -138,7 +157,10 @@ class nagios::target::nrpe inherits nagios::target { ensure => present, mode => "0644", owner => "root", - group => "root", + group => $::operatingsystem ? { + "openbsd" => "wheel", + default => "root", + }, content => "allowed_hosts=${nagios_allow}\n", require => File["/etc/nrpe.d"], notify => Service["nrpe"], @@ -148,7 +170,10 @@ class nagios::target::nrpe inherits nagios::target { ensure => present, mode => "0644", owner => "root", - group => "root", + group => $::operatingsystem ? { + "openbsd" => "wheel", + default => "root", + }, content => "command[check_disk]=${nagios::common::libdir}/check_disk -w 20% -c 10% -p /\n", require => File["/etc/nrpe.d"], notify => Service["nrpe"], @@ -162,7 +187,10 @@ class nagios::target::nrpe inherits nagios::target { ensure => present, mode => "0644", owner => "root", - group => "root", + group => $::operatingsystem ? { + "openbsd" => "wheel", + default => "root", + }, content => "command[check_load]=${nagios::common::libdir}/check_load -r -w 3,2,1 -c 6,4,2\n", require => File["/etc/nrpe.d"], notify => Service["nrpe"], @@ -176,7 +204,10 @@ class nagios::target::nrpe inherits nagios::target { ensure => present, mode => "0644", owner => "root", - group => "root", + group => $::operatingsystem ? { + "openbsd" => "wheel", + default => "root", + }, content => "command[check_swap]=${nagios::common::libdir}/check_swap -w 75% -c 50%\n", require => File["/etc/nrpe.d"], notify => Service["nrpe"], From 4e078fedd0a13d91bafd8b79235955b18733ed7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=E4kinen?= Date: Mon, 6 May 2013 11:04:45 +0300 Subject: [PATCH 4/6] nagios: Fixed nrpe.cfg include_dir check from OpenBSD. --- nagios/manifests/target.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nagios/manifests/target.pp b/nagios/manifests/target.pp index 77cfe97..84d8418 100644 --- a/nagios/manifests/target.pp +++ b/nagios/manifests/target.pp @@ -125,7 +125,7 @@ class nagios::target::nrpe inherits nagios::target { command => "echo 'include_dir=${nrpedir}/' >> /etc/nrpe.cfg", path => "/bin:/usr/bin:/sbin:/usr/sbin", user => "root", - unless => "egrep '^include_dir=/etc/${nrpedir}/' /etc/nrpe.cfg", + unless => "egrep '^include_dir=${nrpedir}/' /etc/nrpe.cfg", require => Package["nrpe"], notify => Service[$service], before => File[$nrpedir], From 19df011191caca32dbe344eb5ce58df9a425756d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=E4kinen?= Date: Mon, 6 May 2013 13:57:56 +0300 Subject: [PATCH 5/6] nagios: Added support for checking SSL enabled IMAP service. --- nagios/manifests/target.pp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/nagios/manifests/target.pp b/nagios/manifests/target.pp index 84d8418..57bbb09 100644 --- a/nagios/manifests/target.pp +++ b/nagios/manifests/target.pp @@ -70,6 +70,18 @@ class nagios::target::https inherits nagios::target { } +# Configure imaps service target. +# +class nagios::target::imaps inherits nagios::target { + + @@nagios::service { "${::homename}_imaps": + command => "check_imap!--ssl -p 993", + description => "IMAPS", + } + +} + + # Configure smtp service target. # class nagios::target::smtp inherits nagios::target { From 74062b3461b1d404a1611895034eb174433722ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=E4kinen?= Date: Mon, 6 May 2013 16:03:18 +0300 Subject: [PATCH 6/6] nagios: Moved nrpe services to nagios::target::nrpe::service define. --- nagios/manifests/target.pp | 185 +++++++++++++++++++++++-------------- 1 file changed, 114 insertions(+), 71 deletions(-) diff --git a/nagios/manifests/target.pp b/nagios/manifests/target.pp index 57bbb09..2cd146f 100644 --- a/nagios/manifests/target.pp +++ b/nagios/manifests/target.pp @@ -108,31 +108,14 @@ class nagios::target::nrpe inherits nagios::target { "centos","redhat","fedora": { $service = "nrpe" $nrpedir = "/etc/nrpe.d" - package { [ "nrpe", - "nagios-plugins-disk", - "nagios-plugins-load", - "nagios-plugins-procs", - "nagios-plugins-swap", - "nagios-plugins-users", ]: - ensure => installed, - before => [ File["/etc/nrpe.d"], Service["nrpe"] ], - } } "ubuntu","debian": { $service = "nagios-nrpe-server" $nrpedir = "/etc/nagios/nrpe.d" - package { [ "nagios-nrpe-server", - "nagios-plugins-basic", ]: - ensure => installed, - before => [ File["/etc/nrpe.d"], Service["nrpe"] ], - } } "openbsd": { $service = "nrpe" $nrpedir = "/etc/nrpe.d" - package { "nrpe": - ensure => installed, - } exec { "add-nrpe-include-dir": command => "echo 'include_dir=${nrpedir}/' >> /etc/nrpe.cfg", path => "/bin:/usr/bin:/sbin:/usr/sbin", @@ -145,6 +128,15 @@ class nagios::target::nrpe inherits nagios::target { } } + package { "nrpe": + ensure => installed, + name => $::operatingsystem ? { + "debian" => "nagios-nrpe-server", + "ubuntu" => "nagios-nrpe-server", + default => "nrpe", + } + } + file { "/etc/nrpe.d": ensure => directory, mode => "0644", @@ -178,65 +170,116 @@ class nagios::target::nrpe inherits nagios::target { notify => Service["nrpe"], } - file { "${nrpedir}/check_disk.cfg": - ensure => present, - mode => "0644", - owner => "root", - group => $::operatingsystem ? { - "openbsd" => "wheel", - default => "root", - }, - content => "command[check_disk]=${nagios::common::libdir}/check_disk -w 20% -c 10% -p /\n", - require => File["/etc/nrpe.d"], - notify => Service["nrpe"], - } - @@nagios::service { "${::homename}_disk": - command => "check_nrpe!check_disk", + nagios::target::nrpe::service { "check_disk -w 20% -c 10% -p /": description => "Disk", + package => $::operatingsystem ? { + "openbsd" => undef, + "debian" => "nagios-plugins-basic", + "ubuntu" => "nagios-plugins-basic", + default => "nagios-plugins-disk", + } } - - file { "${nrpedir}/check_load.cfg": - ensure => present, - mode => "0644", - owner => "root", - group => $::operatingsystem ? { - "openbsd" => "wheel", - default => "root", - }, - content => "command[check_load]=${nagios::common::libdir}/check_load -r -w 3,2,1 -c 6,4,2\n", - require => File["/etc/nrpe.d"], - notify => Service["nrpe"], - } - @@nagios::service { "${::homename}_load": - command => "check_nrpe!check_load", + nagios::target::nrpe::service { "check_load -r -w 3,2,1 -c 6,4,2": description => "Load", + package => $::operatingsystem ? { + "openbsd" => undef, + "debian" => "nagios-plugins-basic", + "ubuntu" => "nagios-plugins-basic", + default => "nagios-plugins-load", + } } - - file { "${nrpedir}/check_swap.cfg": - ensure => present, - mode => "0644", - owner => "root", - group => $::operatingsystem ? { - "openbsd" => "wheel", - default => "root", - }, - content => "command[check_swap]=${nagios::common::libdir}/check_swap -w 75% -c 50%\n", - require => File["/etc/nrpe.d"], - notify => Service["nrpe"], - } - @@nagios::service { "${::homename}_swap": - command => "check_nrpe!check_swap", + nagios::target::nrpe::service { "check_swap -w 75% -c 50%": description => "Swap", + package => $::operatingsystem ? { + "openbsd" => undef, + "debian" => "nagios-plugins-basic", + "ubuntu" => "nagios-plugins-basic", + default => "nagios-plugins-swap", + } } -# @@nagios::service { "${::homename}_users": -# command => "check_nrpe!check_users", -# description => "Users", -# } -# -# @@nagios::service { "${::homename}_procs": -# command => "check_nrpe!check_total_procs", -# description => "Processes", -# } - } + + +# Add new nagios nrpe service check +# +# === Parameters +# +# $name: +# Check command. +# $description: +# Service description. Defaults to command name without +# check_ prefix. +# $package: +# Package providing check command. +# $source: +# Source file for check command. +# +# === Example usage +# +# nagios::target::nrpe::service { "check_disk -w 20% -c 10% -p /": +# description => "Disk", +# package => $::operatingsystem ? { +# "openbsd" => undef, +# "debian" => "nagios-plugins-basic", +# "ubuntu" => "nagios-plugins-basic", +# default => "nagios-plugins-disk", +# } +# } +# +define nagios::target::nrpe::service($source=undef, + $description=undef, + $package=undef) { + + include nagios::target::nrpe + + $binary = regsubst($name, '^([^ ]+) .*', '\1') + $service = regsubst($binary, '^check_(.+)', '\1') + + if !$description { + $description = $service + } + + if $source { + file { "${nagios::common::libdir}/${binary}": + ensure => present, + source => $source, + mode => "0755", + owner => "root", + group => $::operatingsystem ? { + "openbsd" => "wheel", + default => "root", + }, + require => Package["nrpe"], + notify => Service["nrpe"], + } + } + + if $package and !defined(Package[$package]) { + package { $package: + ensure => present, + require => Package["nrpe"], + before => Service["nrpe"], + } + } + + file { "${nagios::target::nrpe::nrpedir}/${binary}.cfg": + ensure => present, + mode => "0644", + owner => "root", + group => $::operatingsystem ? { + "openbsd" => "wheel", + default => "root", + }, + content => "command[${binary}]=${nagios::common::libdir}/${name}\n", + require => File["/etc/nrpe.d"], + notify => Service["nrpe"], + } + + @@nagios::service { "${::homename}_${service}": + command => "check_nrpe!${binary}", + description => $description, + } + +} +