Fix SMTP without authentication
Closes-bug: #1558140 Change-Id: I1272414be40d79f2f32c937a0b6e7c852b649af5
This commit is contained in:
parent
9195f763bd
commit
3ce87b3aac
|
@ -23,7 +23,7 @@ define nagios::contact (
|
||||||
$properties = {},
|
$properties = {},
|
||||||
$send_from = 'nagios@localhost.localdomain',
|
$send_from = 'nagios@localhost.localdomain',
|
||||||
$smtp_auth = 'none',
|
$smtp_auth = 'none',
|
||||||
$smtp_host = '127.0.0.1:25',
|
$smtp_host = undef,
|
||||||
$smtp_user = undef,
|
$smtp_user = undef,
|
||||||
$smtp_password = undef,
|
$smtp_password = undef,
|
||||||
$ensure = present,
|
$ensure = present,
|
||||||
|
@ -41,8 +41,8 @@ define nagios::contact (
|
||||||
$_smtp_auth = $smtp_auth
|
$_smtp_auth = $smtp_auth
|
||||||
}
|
}
|
||||||
|
|
||||||
if $_smtp_auth and (! $smtp_user or ! $smtp_password) {
|
if $_smtp_auth and ! ($smtp_user and $smtp_password and $smtp_host) {
|
||||||
fail("smtp_user and smtp_password must be provided with smtp_auth = ${smtp_auth}")
|
fail("smtp_host, smtp_user and smtp_password must be provided with smtp_auth = ${smtp_auth}")
|
||||||
}
|
}
|
||||||
|
|
||||||
$opts = {}
|
$opts = {}
|
||||||
|
@ -65,7 +65,14 @@ define nagios::contact (
|
||||||
$opts['contactgroups'] = $properties['contactgroups']
|
$opts['contactgroups'] = $properties['contactgroups']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ! defined(Package[$nagios::params::package_mailx_smtp]){
|
||||||
|
package { $nagios::params::package_mailx_smtp:
|
||||||
|
ensure => present,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if $_smtp_auth {
|
if $_smtp_auth {
|
||||||
|
# SMTP authentication
|
||||||
if $properties['service_notification_commands'] == undef {
|
if $properties['service_notification_commands'] == undef {
|
||||||
$opts['service_notification_commands'] = $nagios::params::service_notification_command_by_smtp
|
$opts['service_notification_commands'] = $nagios::params::service_notification_command_by_smtp
|
||||||
}
|
}
|
||||||
|
@ -86,26 +93,32 @@ define nagios::contact (
|
||||||
require => Package[$nagios::params::package_mailx_smtp],
|
require => Package[$nagios::params::package_mailx_smtp],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ! defined(Package[$nagios::params::package_mailx_smtp]){
|
|
||||||
package { $nagios::params::package_mailx_smtp:
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if $properties['service_notification_commands'] == undef {
|
if $properties['service_notification_commands'] == undef {
|
||||||
$opts['service_notification_commands'] = $nagios::params::service_notification_command
|
$opts['service_notification_commands'] = $nagios::params::service_notification_command
|
||||||
}
|
}
|
||||||
if $properties['host_notification_commands'] == undef {
|
if $properties['host_notification_commands'] == undef {
|
||||||
$opts['host_notification_commands'] = $nagios::params::service_notification_command
|
$opts['host_notification_commands'] = $nagios::params::service_notification_command
|
||||||
}
|
}
|
||||||
file {"${path}/cmd_notify-service-by-email-with-long-service-output.cfg":
|
if ! $smtp_host {
|
||||||
ensure => present,
|
# No SMTP server is provided then the local MTA is used (local socket).
|
||||||
source => 'puppet:///modules/nagios/cmd_notify_service_by_email.cfg',
|
file {"${path}/cmd_notify-service-by-email-with-long-service-output.cfg":
|
||||||
owner => 'root',
|
ensure => present,
|
||||||
group => 'root',
|
content => template('nagios/cmd_notify_service_by_email.cfg.erb'),
|
||||||
mode => '0644',
|
owner => 'root',
|
||||||
}
|
group => 'root',
|
||||||
|
mode => '0644',
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
# Use SMTP without authentication
|
||||||
|
file {"${path}/cmd_notify-service-by-email-with-long-service-output.cfg":
|
||||||
|
ensure => present,
|
||||||
|
content => template('nagios/notify-by-smtp-noauth.cfg.erb'),
|
||||||
|
owner => 'root',
|
||||||
|
group => 'root',
|
||||||
|
mode => '0644',
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if $onefile {
|
if $onefile {
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
define command{
|
||||||
|
command_name notify-service-by-email-with-long-service-output
|
||||||
|
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n$LONGSERVICEOUTPUT$\n" | /usr/bin/bsd-mailx -a "From: <%= @send_from %>" -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
|
||||||
|
}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
define command{
|
define command{
|
||||||
command_name notify-service-by-email-with-long-service-output
|
command_name notify-service-by-email-with-long-service-output
|
||||||
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n$LONGSERVICEOUTPUT$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
|
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n$LONGSERVICEOUTPUT$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -r '<%= @send_from %>' \
|
||||||
|
-S smtp="smtp://<%= @smtp_host %>" \
|
||||||
|
$CONTACTEMAIL$
|
||||||
}
|
}
|
|
@ -58,12 +58,12 @@ attributes:
|
||||||
|
|
||||||
smtp_host:
|
smtp_host:
|
||||||
value: ''
|
value: ''
|
||||||
label: 'SMTP server IP and port'
|
label: 'External SMTP server and port'
|
||||||
description: 'ie: 10.2.2.3:25'
|
description: 'IP address (or fully qualified domain name) and port of the external SMTP server. Leave empty to use the local MTA service.'
|
||||||
weight: 49
|
weight: 49
|
||||||
type: "text"
|
type: "text"
|
||||||
regex:
|
regex:
|
||||||
source: '^[a-zA-Z\d][a-zA-Z\d_\-.]+(:[0-9]+)?$'
|
source: '^$|[a-zA-Z\d][a-zA-Z\d_\-.]+(:[0-9]+)?$'
|
||||||
error: 'Invalid address or name'
|
error: 'Invalid address or name'
|
||||||
restrictions: *disable_notifications
|
restrictions: *disable_notifications
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue