move exim vs. postfix, heavy vs. not, into hiera
[mirror/dsa-puppet.git] / modules / exim / manifests / mx.pp
1 # our heavy exim class
2 class exim::mx {
3   class { 'exim':
4     smarthost => Undef,
5   }
6
7   include clamav
8   include postgrey
9   include fail2ban::exim
10
11   file { '/etc/exim4/ccTLD.txt':
12     source => 'puppet:///modules/exim/common/ccTLD.txt',
13   }
14   file { '/etc/exim4/surbl_whitelist.txt':
15     source => 'puppet:///modules/exim/common/surbl_whitelist.txt',
16   }
17   file { '/etc/exim4/exim_surbl.pl':
18     source => 'puppet:///modules/exim/common/exim_surbl.pl',
19     notify => Service['exim4'],
20   }
21
22   # MXs used as smarthosts
23   ferm::rule { 'dsa-exim-submission':
24     description => 'Allow SMTP',
25     rule        => '&SERVICE_RANGE(tcp, submission, $SMTP_SOURCES)'
26   }
27   ferm::rule { 'dsa-exim-v6-submission':
28     description => 'Allow SMTP',
29     domain      => 'ip6',
30     rule        => '&SERVICE_RANGE(tcp, submission, $SMTP_V6_SOURCES)',
31   }
32   $autocertdir = hiera('paths.auto_certs_dir')
33   dnsextras::tlsa_record{ 'tlsa-submission':
34     zone     => 'debian.org',
35     certfile => "${autocertdir}/${::fqdn}.crt",
36     port     => 587,
37     hostname => $::fqdn,
38   }
39   package { 'monitoring-plugins-standard':
40     ensure => installed,
41   }
42
43   if $exim::is_mailrelay {
44     concat::fragment { 'puppet-crontab--email-virtualdomains':
45       target  => '/etc/cron.d/puppet-crontab',
46       content => @(EOF)
47         @hourly  root if [ ! -d /etc/exim4/email-virtualdomains ]; then cd /etc/exim4 && git clone mail-git:email-virtualdomains ; fi && cd /etc/exim4/email-virtualdomains && git pull --quiet --ff-only
48         | EOF
49     }
50   }
51   file { '/etc/cron.d/dsa-email-virtualdomains': ensure => absent, }
52 }