Yuvipanda has uploaded a new change for review.
https://gerrit.wikimedia.org/r/174780
Change subject: nagios_common: Split out notification_commands for
shinken/icinga
......................................................................
nagios_common: Split out notification_commands for shinken/icinga
This reverts commit 69e893722c6b67ec53f44b47d8bd42ab47c9b1d4.
- They're different enough to cause problems, so separating them.
- Also use object inheritance for shinken contacts
Change-Id: I625e6c88b6c85205a3f5bdfa5bfcca6446920fcb
---
R modules/icinga/files/notification_commands.cfg
M modules/icinga/manifests/init.pp
D modules/nagios_common/manifests/notification_commands.pp
M modules/shinken/files/contacts.cfg
A modules/shinken/files/notification_commands.cfg
M modules/shinken/files/templates.cfg
M modules/shinken/manifests/server.pp
7 files changed, 48 insertions(+), 117 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/operations/puppet
refs/changes/80/174780/1
diff --git a/modules/nagios_common/templates/notification_commands.cfg.erb
b/modules/icinga/files/notification_commands.cfg
similarity index 76%
rename from modules/nagios_common/templates/notification_commands.cfg.erb
rename to modules/icinga/files/notification_commands.cfg
index ea2cf48..87872f9 100644
--- a/modules/nagios_common/templates/notification_commands.cfg.erb
+++ b/modules/icinga/files/notification_commands.cfg
@@ -16,7 +16,7 @@
# used as a template for this definition (optional)
# <objectname> = object name of command definition, referenced by other
# command definitions that use it as a template (optional)
-# <commandname> = name of the command, as recognized/used by <%= @lover_name
%>
+# <commandname> = name of the command, as recognized/used by Icinga
# <commandline> = command line
#
################################################################################
@@ -26,36 +26,36 @@
# 'host-notify-by-email' command definition
define command{
command_name host-notify-by-email
- command_line /usr/bin/printf "%b" "❤❤❤❤❤ <%= @lover_name %>
❤❤❤❤❤\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState:
$HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time:
$LONGDATETIME$\nLove, <%= @lover_name %>" | /usr/bin/mail -s "Host $HOSTSTATE$
alert for $HOSTNAME$!" $CONTACTEMAIL$
+ command_line /usr/bin/printf "%b" "❤❤❤❤❤ Icinga
❤❤❤❤❤\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState:
$HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time:
$LONGDATETIME$\nLove, Icinga" | /usr/bin/mail -s "Host $HOSTSTATE$ alert for
$HOSTNAME$!" $CONTACTEMAIL$
}
# 'host-notify-by-epager' command definition
define command{
command_name host-notify-by-epager
- command_line /usr/bin/printf "%b" "Host '$HOSTALIAS$' is
$HOSTSTATE$\nInfo: $HOSTOUTPUT$\nTime: $LONGDATETIME$ <3, <%= @lover_name %>" |
/usr/bin/mail -s "$NOTIFICATIONTYPE$ alert - Host $HOSTNAME$ is $HOSTSTATE$"
$CONTACTPAGER$
+ command_line /usr/bin/printf "%b" "Host '$HOSTALIAS$' is
$HOSTSTATE$\nInfo: $HOSTOUTPUT$\nTime: $LONGDATETIME$ <3, Icinga" |
/usr/bin/mail -s "$NOTIFICATIONTYPE$ alert - Host $HOSTNAME$ is $HOSTSTATE$"
$CONTACTPAGER$
}
# 'notify-by-email' command definition
define command{
command_name notify-by-email
- command_line /usr/bin/printf "%b" "❤❤❤❤❤ <%= @lover_name %>
❤❤❤❤❤\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost:
$HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time:
$LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\nLove, <%= @lover_name
%>" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$
is $SERVICESTATE$ **" $CONTACTEMAIL$
+ command_line /usr/bin/printf "%b" "❤❤❤❤❤ Icinga
❤❤❤❤❤\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost:
$HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time:
$LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\nLove, Icinga" |
/usr/bin/mail -s "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is
$SERVICESTATE$ **" $CONTACTEMAIL$
}
# 'notify-by-epager' command definition
define command{
command_name notify-by-epager
- command_line /usr/bin/printf "%b" "Service: $SERVICEDESC$\nHost:
$HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nInfo:
$SERVICEOUTPUT$\nDate: $LONGDATETIME$ <3, <%= @lover_name %>" | /usr/bin/mail
-s "$NOTIFICATIONTYPE$: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$"
$CONTACTPAGER$
+ command_line /usr/bin/printf "%b" "Service: $SERVICEDESC$\nHost:
$HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nInfo:
$SERVICEOUTPUT$\nDate: $LONGDATETIME$ <3, Icinga" | /usr/bin/mail -s
"$NOTIFICATIONTYPE$: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" $CONTACTPAGER$
}
define command{
command_name host-notify-by-sms-gateway
- command_line echo "Host $HOSTALIAS$ is $HOSTSTATE$\nInfo:
$HOSTOUTPUT$\nTime: $LONGDATETIME$ <3, <%= @lover_name %>" | /usr/bin/mail -s
"Host $HOSTSTATE$ alert for $HOSTNAME$!" $CONTACTADDRESS1$
+ command_line echo "Host $HOSTALIAS$ is $HOSTSTATE$\nInfo:
$HOSTOUTPUT$\nTime: $LONGDATETIME$ <3, Icinga" | /usr/bin/mail -s "Host
$HOSTSTATE$ alert for $HOSTNAME$!" $CONTACTADDRESS1$
}
define command{
command_name notify-by-sms-gateway
- command_line echo "$SERVICEDESC$ on $HOSTNAME$ is $SERVICESTATE$:
$SERVICEOUTPUT$ $SERVICEACKAUTHOR$ $SERVICEACKCOMMENT$ at $LONGDATETIME$ <3,
<%= @lover_name %>" | /usr/bin/mail -s "nagios" $CONTACTADDRESS1$
+ command_line echo "$SERVICEDESC$ on $HOSTNAME$ is $SERVICESTATE$:
$SERVICEOUTPUT$ $SERVICEACKAUTHOR$ $SERVICEACKCOMMENT$ at $LONGDATETIME$ <3,
Icinga" | /usr/bin/mail -s "nagios" $CONTACTADDRESS1$
}
# global IRC output for operations
diff --git a/modules/icinga/manifests/init.pp b/modules/icinga/manifests/init.pp
index 7beb4b8..1c323c4 100644
--- a/modules/icinga/manifests/init.pp
+++ b/modules/icinga/manifests/init.pp
@@ -83,10 +83,18 @@
notify => Service['icinga'],
}
+ file { "/etc/icinga/notification_commands.cfg":
+ ensure => present,
+ source => 'puppet:///modules/icinga/notification_commands.cfg',
+ owner => 'icinga',
+ group => 'icinga',
+ require => Package['icinga'],
+ notify => Service['icinga'],
+ }
+
class { [
'nagios_common::user_macros',
'nagios_common::timeperiods',
- 'nagios_common::notification_commands',
] :
require => Package['icinga'],
notify => Service['icinga'],
diff --git a/modules/nagios_common/manifests/notification_commands.pp
b/modules/nagios_common/manifests/notification_commands.pp
deleted file mode 100644
index dbb32bb..0000000
--- a/modules/nagios_common/manifests/notification_commands.pp
+++ /dev/null
@@ -1,42 +0,0 @@
-# = Class: nagios_common::notificationcommands
-# Notification commands, to notify people by email/sms
-#
-# [*ensure*]
-# present or absent, to make the definition
-# present or absent. Defaults to present
-#
-# [*config_dir*]
-# The base directory to put configuration directory in.
-# Defaults to '/etc/icinga/'
-#
-# [*owner*]
-# The user which should own the check config files.
-# Defaults to 'icinga'
-#
-# [*group*]
-# The group which should own the check config files.
-# Defaults to 'icinga'
-#
-# [*lover_name*]
-# Name of thing that gives the recipient love when notifying
-# them via email of bad things that have happened
-#
-# [*irc_dir_path*]
-# Directory containing files that are used by ircecho to
-# echo notifications to IRC
-#
-class nagios_common::notification_commands(
- $ensure = present,
- $config_dir = '/etc/icinga',
- $owner = 'icinga',
- $group = 'icinga',
- $lover_name = 'Icinga',
- $irc_dir_path = '/var/log/icinga',
-) {
- file { "$config_dir/notification_commands.cfg":
- ensure => $ensure,
- content => template('nagios_common/notification_commands.cfg.erb'),
- owner => $owner,
- group => $group,
- }
-}
diff --git a/modules/shinken/files/contacts.cfg
b/modules/shinken/files/contacts.cfg
index f39b287..64ae65d 100644
--- a/modules/shinken/files/contacts.cfg
+++ b/modules/shinken/files/contacts.cfg
@@ -7,14 +7,7 @@
contact_name guest
alias Guest Account
email guest@guest
- host_notifications_enabled 0
- service_notifications_enabled 0
- host_notification_period none
- service_notification_period none
- service_notification_commands notify-by-email
- host_notification_commands notify-by-email
- host_notification_options d,u,r
- service_notification_options w,u,r,c
+ use generic-contact
password guest
}
@@ -22,82 +15,40 @@
contact_name yuvipanda
alias Yuvi Panda
email [email protected]
- host_notifications_enabled 1
- service_notifications_enabled 1
- host_notification_period 24x7
- service_notification_period 24x7
- service_notification_commands notify-by-email
- host_notification_commands notify-by-email
- host_notification_options d,u,r
- service_notification_options w,u,r,c
+ use generic-contact
}
define contact {
contact_name legoktm
alias Lego KTM
email [email protected]
- host_notifications_enabled 1
- service_notifications_enabled 1
- host_notification_period 24x7
- service_notification_period 24x7
- service_notification_commands notify-by-email
- host_notification_commands notify-by-email
- host_notification_options d,u,r
- service_notification_options w,u,r,c
+ use generic-contact
}
define contact {
contact_name milimetric
alias Dan Andreescu
email [email protected]
- host_notifications_enabled 1
- service_notifications_enabled 1
- host_notification_period 24x7
- service_notification_period 24x7
- service_notification_commands notify-by-email
- host_notification_commands notify-by-email
- host_notification_options d,u,r
- service_notification_options w,u,r,c
+ use generic-contact
}
define contact {
contact_name greg_g
alias Greg G
email [email protected]
- host_notifications_enabled 1
- service_notifications_enabled 1
- host_notification_period 24x7
- service_notification_period 24x7
- service_notification_commands notify-by-email
- host_notification_commands notify-by-email
- host_notification_options d,u,r
- service_notification_options w,u,r,c
+ use generic-contact
}
define contact {
contact_name cmcmahon
alias Chris McMahon
email [email protected]
- host_notifications_enabled 1
- service_notifications_enabled 1
- host_notification_period 24x7
- service_notification_period 24x7
- service_notification_commands notify-by-email
- host_notification_commands notify-by-email
- host_notification_options d,u,r
- service_notification_options w,u,r,c
+ use generic-contact
}
define contact {
contact_name amusso
alias Antoine Musso
email [email protected]
- host_notifications_enabled 1
- service_notifications_enabled 1
- host_notification_period 24x7
- service_notification_period 24x7
- service_notification_commands notify-by-email
- host_notification_commands notify-by-email
- host_notification_options d,u,r
- service_notification_options w,u,r,c
+ use generic-contact
}
diff --git a/modules/shinken/files/notification_commands.cfg
b/modules/shinken/files/notification_commands.cfg
new file mode 100644
index 0000000..57b8599
--- /dev/null
+++ b/modules/shinken/files/notification_commands.cfg
@@ -0,0 +1,14 @@
+# Notification commands, copied and adapted from shinken's
+# default commands.cfg file
+
+## Notify Host by Email
+define command {
+ command_name notify-host-by-email
+ command_line /usr/bin/printf "%b" "Shinken
Notification\n\nType:$NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState:
$HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\nDate/Time: $DATE$
$TIME$\n" | /usr/bin/mail -s "Host $HOSTSTATE$ alert for $HOSTNAME$"
$CONTACTEMAIL$
+}
+
+## Notify Service by Email
+define command {
+ command_name notify-service-by-email
+ command_line /usr/bin/printf "%b" "Shinken Notification\n\nNotification
Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTNAME$\nAddress:
$HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $DATE$ $TIME$\nAdditional
Info : $SERVICEOUTPUT$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ alert -
$HOSTNAME$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
+}
diff --git a/modules/shinken/files/templates.cfg
b/modules/shinken/files/templates.cfg
index 422e94e..7b7b08c 100644
--- a/modules/shinken/files/templates.cfg
+++ b/modules/shinken/files/templates.cfg
@@ -119,6 +119,6 @@
host_notification_period 24x7
service_notification_options c,w,r
host_notification_options d,u,r,f,s
- service_notification_commands notify-by-email ; send service
notifications via email
- host_notification_commands notify-by-email ; send host
notifications via email
+ service_notification_commands notify-host-by-email ; send service
notifications via email
+ host_notification_commands notify-service-by-email ; send host
notifications via email
}
diff --git a/modules/shinken/manifests/server.pp
b/modules/shinken/manifests/server.pp
index b01b0c3..923816f 100644
--- a/modules/shinken/manifests/server.pp
+++ b/modules/shinken/manifests/server.pp
@@ -71,6 +71,15 @@
notify => Service['shinken'],
}
+ file { "/etc/shinken/notification_commands.cfg":
+ ensure => present,
+ source => 'puppet:///modules/shinken/notification_commands.cfg',
+ owner => 'shinken',
+ group => 'shinken',
+ require => Package['shinken'],
+ notify => Service['shinken'],
+ }
+
class { 'nagios_common::contacts':
source => 'puppet:///modules/shinken/contacts.cfg',
owner => 'shinken',
@@ -89,15 +98,6 @@
group => 'shinken',
notify => Service['shinken'],
require => Package['shinken'],
- }
-
- class { 'nagios_common::notification_commands':
- config_dir => '/etc/shinken',
- owner => 'shinken',
- group => 'shinken',
- notify => Service['shinken'],
- require => Package['shinken'],
- lover_name => 'Shinken',
}
# Default localhost config, we do not need this
--
To view, visit https://gerrit.wikimedia.org/r/174780
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I625e6c88b6c85205a3f5bdfa5bfcca6446920fcb
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Yuvipanda <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits