smtpd: Add initial support for CentOS/RHEL 6

This commit is contained in:
Ossi Salmi 2014-02-22 23:01:30 +02:00
parent 5703db3f4b
commit 39e4838d1c
4 changed files with 94 additions and 26 deletions

View file

@ -0,0 +1,5 @@
listen on localhost
table aliases db:/etc/aliases.db
include "/etc/opensmtpd/smtpd.conf.local"

View file

@ -0,0 +1,5 @@
listen on localhost
table aliases db:/etc/aliases.db
include "/etc/opensmtpd/smtpd.conf.local"

View file

@ -14,43 +14,93 @@ class smtpd {
$relay = "smtp+tls://${mail_server}"
}
file { "/etc/mailer.conf":
case $::operatingsystem {
"centos","redhat": {
if versioncmp($::operatingsystemrelease, "6") < 0 {
fail("smtpd requires atleast ${::operatingsystem} 6")
}
$package = "opensmtpd"
$service = "opensmtpd"
$confdir = "/etc/opensmtpd"
package { $package:
ensure => installed,
before => [
File["${confdir}/smtpd.conf"],
File["${confdir}/smtpd.conf.local"],
],
}
exec { "/usr/sbin/alternatives --set mta /usr/sbin/sendmail.opensmtpd":
refreshonly => true,
subscribe => Package[$package],
before => Service[$service],
}
service { [ "postfix", "sendmail" ]:
ensure => stopped,
enable => false,
before => Service[$service],
}
}
"openbsd": {
$package = undef
$service = "smtpd"
$confdir = "/etc/mail"
file { "/etc/mailer.conf":
ensure => present,
mode => "0644",
owner => "root",
group => "wheel",
source => "puppet:///modules/smtpd/mailer.conf",
before => Service[$service],
}
service { "sendmail":
ensure => stopped,
enable => false,
before => Service[$service],
}
}
default: {
fail("smtpd not supported on ${::operatingsystem}")
}
}
file { "${confdir}/smtpd.conf":
ensure => present,
mode => "0644",
owner => "root",
group => "wheel",
source => "puppet:///modules/smtpd/mailer.conf",
before => Service["smtpd"],
group => $::operatingsystem ? {
"openbsd" => "wheel",
default => "root",
},
source => "puppet:///modules/smtpd/smtpd.conf.${::operatingsystem}",
notify => Service[$service],
}
file { "/etc/mail/smtpd.conf":
file { "${confdir}/smtpd.conf.local":
ensure => present,
mode => "0644",
owner => "root",
group => "wheel",
source => "puppet:///modules/smtpd/smtpd.conf",
notify => Service["smtpd"],
}
file { "/etc/mail/smtpd.conf.local":
ensure => present,
mode => "0644",
owner => "root",
group => "wheel",
group => $::operatingsystem ? {
"openbsd" => "wheel",
default => "root",
},
content => template("smtpd/client.conf.erb"),
notify => Service["smtpd"],
notify => Service[$service],
}
service { "sendmail":
ensure => stopped,
enable => false,
before => Service["smtpd"],
}
service { "smtpd":
service { $service:
ensure => running,
enable => true,
start => "/usr/sbin/smtpd",
start => $::operatingsystem ? {
"openbsd" => "/usr/sbin/smtpd",
default => undef,
},
}
}
@ -89,10 +139,14 @@ class smtpd::server(
$gecos=false,
$domains=undef,
$virtual=undef,
$ssl_key="${puppet_ssldir}/private_keys/${homename}.pem",
$ssl_cert="${puppet_ssldir}/certs/${homename}.pem"
$ssl_key="${::puppet_ssldir}/private_keys/${::homename}.pem",
$ssl_cert="${::puppet_ssldir}/certs/${::homename}.pem"
) inherits smtpd {
if $::operatingsystem != "OpenBSD" {
fail("smtpd::server only supported on OpenBSD")
}
include procmail
procmail::rc { "00-default.rc":
@ -209,6 +263,8 @@ class smtpd::server(
}
# Install alias mapping for domain.
#
define smtpd::aliases($gecos) {
file { "/etc/mail/aliases.${name}":
@ -237,6 +293,8 @@ define smtpd::aliases($gecos) {
}
# Install virtual user mapping for domain.
#
define smtpd::virtual() {
file { "/etc/mail/virtual.${name}":