puppet/spamassassin/manifests/init.pp
2013-07-29 00:13:56 +03:00

110 lines
2.6 KiB
Puppet

# Install spamassassin common components
#
class spamassassin::common {
package { "spamassassin":
name => $::operatingsystem ? {
"openbsd" => "p5-Mail-SpamAssassin",
default => "spamassassin",
},
ensure => present,
}
file { "/etc/mail/spamassassin/local.cf":
ensure => present,
mode => "0644",
owner => "root",
group => $::operatingsystem ? {
"openbsd" => "wheel",
default => "root",
},
source => [
"puppet:///files/mail/spamassassin.cf.${::homename}",
"puppet:///files/mail/spamassassin.cf",
"puppet:///modules/spamassassin/local.cf",
],
notify => Service["spamassassin"],
require => Package["spamassassin"],
}
service { "spamassassin":
ensure => running,
enable => true,
binary => $::operatingsystem ? {
"openbsd" => "/usr/local/bin/spamd -d",
default => undef,
},
start => $::operatingsystem ? {
"openbsd" => "/usr/local/bin/spamd -d -c -H -m 5",
default => undef,
},
hasstatus => true,
require => Package["spamassassin"],
}
}
# Install spamassassin using procmail
#
class spamassassin::procmail {
include spamassassin::common
include procmail
$spamc = $::operatingsystem ? {
"openbsd" => "/usr/local/bin/spamc",
default => "/usr/bin/spamc",
}
procmail::rc { "10-spamassassin.rc":
content => ":0fw\n| ${spamc}\n",
}
}
# Install spamassassin milter
#
# === Parameters
#
# $options:
# Extra options for spamass-milter.
#
class spamassassin::milter($options="") {
include spamassassin::common
$sendmail_milter = [
# filter name
'spamass',
# filter options
'S=unix:/var/run/spamass-milter/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m',
]
package { "spamass-milter":
ensure => installed,
}
case $::operatingsystem {
"centos","redhat","fedora": {
augeas { "set-spamass-milter-sysconfig":
changes => "set EXTRA_FLAGS '\"${options}\"'",
incl => "/etc/sysconfig/spamass-milter",
lens => "Shellvars.lns",
require => Package["spamass-milter"],
notify => Service["spamass-milter"],
}
}
default: {
fail("spamassassin::milter not supported on ${::operatingsystem}")
}
}
service { "spamass-milter":
ensure => running,
enable => true,
}
}