smtpd: Add initial support for CentOS/RHEL 6
This commit is contained in:
parent
5703db3f4b
commit
39e4838d1c
4 changed files with 94 additions and 26 deletions
5
smtpd/files/smtpd.conf.CentOS
Normal file
5
smtpd/files/smtpd.conf.CentOS
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
listen on localhost
|
||||||
|
|
||||||
|
table aliases db:/etc/aliases.db
|
||||||
|
|
||||||
|
include "/etc/opensmtpd/smtpd.conf.local"
|
5
smtpd/files/smtpd.conf.RedHat
Normal file
5
smtpd/files/smtpd.conf.RedHat
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
listen on localhost
|
||||||
|
|
||||||
|
table aliases db:/etc/aliases.db
|
||||||
|
|
||||||
|
include "/etc/opensmtpd/smtpd.conf.local"
|
|
@ -14,43 +14,93 @@ class smtpd {
|
||||||
$relay = "smtp+tls://${mail_server}"
|
$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,
|
ensure => present,
|
||||||
mode => "0644",
|
mode => "0644",
|
||||||
owner => "root",
|
owner => "root",
|
||||||
group => "wheel",
|
group => $::operatingsystem ? {
|
||||||
source => "puppet:///modules/smtpd/mailer.conf",
|
"openbsd" => "wheel",
|
||||||
before => Service["smtpd"],
|
default => "root",
|
||||||
|
},
|
||||||
|
source => "puppet:///modules/smtpd/smtpd.conf.${::operatingsystem}",
|
||||||
|
notify => Service[$service],
|
||||||
}
|
}
|
||||||
|
|
||||||
file { "/etc/mail/smtpd.conf":
|
file { "${confdir}/smtpd.conf.local":
|
||||||
ensure => present,
|
ensure => present,
|
||||||
mode => "0644",
|
mode => "0644",
|
||||||
owner => "root",
|
owner => "root",
|
||||||
group => "wheel",
|
group => $::operatingsystem ? {
|
||||||
source => "puppet:///modules/smtpd/smtpd.conf",
|
"openbsd" => "wheel",
|
||||||
notify => Service["smtpd"],
|
default => "root",
|
||||||
}
|
},
|
||||||
|
|
||||||
file { "/etc/mail/smtpd.conf.local":
|
|
||||||
ensure => present,
|
|
||||||
mode => "0644",
|
|
||||||
owner => "root",
|
|
||||||
group => "wheel",
|
|
||||||
content => template("smtpd/client.conf.erb"),
|
content => template("smtpd/client.conf.erb"),
|
||||||
notify => Service["smtpd"],
|
notify => Service[$service],
|
||||||
}
|
}
|
||||||
|
|
||||||
service { "sendmail":
|
service { $service:
|
||||||
ensure => stopped,
|
|
||||||
enable => false,
|
|
||||||
before => Service["smtpd"],
|
|
||||||
}
|
|
||||||
|
|
||||||
service { "smtpd":
|
|
||||||
ensure => running,
|
ensure => running,
|
||||||
enable => true,
|
enable => true,
|
||||||
start => "/usr/sbin/smtpd",
|
start => $::operatingsystem ? {
|
||||||
|
"openbsd" => "/usr/sbin/smtpd",
|
||||||
|
default => undef,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -89,10 +139,14 @@ class smtpd::server(
|
||||||
$gecos=false,
|
$gecos=false,
|
||||||
$domains=undef,
|
$domains=undef,
|
||||||
$virtual=undef,
|
$virtual=undef,
|
||||||
$ssl_key="${puppet_ssldir}/private_keys/${homename}.pem",
|
$ssl_key="${::puppet_ssldir}/private_keys/${::homename}.pem",
|
||||||
$ssl_cert="${puppet_ssldir}/certs/${homename}.pem"
|
$ssl_cert="${::puppet_ssldir}/certs/${::homename}.pem"
|
||||||
) inherits smtpd {
|
) inherits smtpd {
|
||||||
|
|
||||||
|
if $::operatingsystem != "OpenBSD" {
|
||||||
|
fail("smtpd::server only supported on OpenBSD")
|
||||||
|
}
|
||||||
|
|
||||||
include procmail
|
include procmail
|
||||||
|
|
||||||
procmail::rc { "00-default.rc":
|
procmail::rc { "00-default.rc":
|
||||||
|
@ -209,6 +263,8 @@ class smtpd::server(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Install alias mapping for domain.
|
||||||
|
#
|
||||||
define smtpd::aliases($gecos) {
|
define smtpd::aliases($gecos) {
|
||||||
|
|
||||||
file { "/etc/mail/aliases.${name}":
|
file { "/etc/mail/aliases.${name}":
|
||||||
|
@ -237,6 +293,8 @@ define smtpd::aliases($gecos) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Install virtual user mapping for domain.
|
||||||
|
#
|
||||||
define smtpd::virtual() {
|
define smtpd::virtual() {
|
||||||
|
|
||||||
file { "/etc/mail/virtual.${name}":
|
file { "/etc/mail/virtual.${name}":
|
||||||
|
|
Loading…
Add table
Reference in a new issue