-
Adam Lewenberg authored
This is the (old) master branch along with the fixes to the cron file permissions that Russ made.
Adam Lewenberg authoredThis is the (old) master branch along with the fixes to the cron file permissions that Russ made.
postfix.pp 2.83 KiB
# Standard Postfix class for most systems.
# class base::postfix: outgoing email server only
# class base::postfix::server: incoming and outgoing email server
# Standard Postfix class for outgoing servers. There is no daemon listening
# on SMTP port. The outgoing mail will be masqueraded except root mail.
class base::postfix {
package { 'postfix': ensure => present }
# The core service. The init script appears to support status on all the
# operating systems we care about. Define a custom reload action so that
# we can just signal the service when we change configuration files
# without stopping and restarting the daemons, since Postfix can re-read
# all its configuration files with a reload.
service { 'postfix':
ensure => running,
enable => true,
hasstatus => true,
restart => '/usr/sbin/postfix reload',
require => [ File['/etc/postfix/main.cf'],
File['/etc/postfix/master.cf'],
Package['postfix'] ],
}
# Basic configuration files.
file {
'/etc/filter-syslog/postfix':
source => 'puppet:///modules/base/postfix/etc/filter-syslog/postfix';
'/etc/postfix/main.cf':
source => $::lsbdistcodename ? {
# rhel5 only fix for prng_exch
'Tikanga' => 'puppet:///modules/base/postfix/etc/postfix/main.cf.tikanga',
default => 'puppet:///modules/base/postfix/etc/postfix/main.cf',
},
notify => Service['postfix'],
require => Package['postfix'];
'/etc/postfix/master.cf':
source => "puppet:///modules/base/postfix/etc/postfix/master.cf.$::operatingsystem",
notify => Service['postfix'],
require => Package['postfix'];
}
base::postfix::map {
'/etc/postfix/recipients':
ensure => present;
'/etc/postfix/senders':
content => "root@stanford.edu root@${::hostname}\n";
'/etc/postfix/transport':
source => 'puppet:///modules/base/postfix/etc/postfix/transport';
}
# We used to disable and stop sendmail here on Red Hat, but this doesn't
# work if sendmail is not installed. Since we'd rather not have sendmail
# installed, just assume that people are doing this manually.
}
# Standard Postfix server configuration that allows both incoming and
# outgoing mail. Override things selectively so that we accept mail from
# the network and deliver mail locally.
class base::postfix::server inherits base::postfix {
File['/etc/postfix/master.cf'] {
source => "puppet:///modules/base/postfix/etc/postfix/master-server.cf.${::operatingsystem}",
}
File['/etc/postfix/main.cf'] {
source => 'puppet:///modules/base/postfix/etc/postfix/main-server.cf',
}
# Allow incoming mail from anywhere.
base::iptables::rule { 'smtp':
description => 'Allow incoming SMTP traffic from anywhere',
protocol => 'tcp',
port => [ 25, 465, 587 ],
}
}