Mercurial > repos > other > Puppet
comparison modules/postfix/manifests/init.pp @ 0:956e484adc12
Initial public release of Puppet configs
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 16 Aug 2014 19:47:38 +0000 |
parents | |
children | 6bbc86f6cee5 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:956e484adc12 |
---|---|
1 class postfix ( | |
2 $mailserver, | |
3 ){ | |
4 package { 'sendmail': | |
5 ensure => 'absent', | |
6 notify => Package['postfix'] | |
7 } | |
8 service { 'sendmail': | |
9 ensure => stopped, | |
10 notify => Package['sendmail'] | |
11 } | |
12 package { 'postfix': | |
13 ensure => latest; | |
14 } | |
15 service { 'postfix': | |
16 ensure => running, | |
17 subscribe => Package['postfix'], | |
18 } | |
19 exec { 'postmap-files': | |
20 command => 'for file in helo_whitelist recipient_bcc sender_access valias valias-blacklist virtual vmailbox; do postmap $file; done', | |
21 cwd => '/etc/postfix/', | |
22 provider => 'shell', | |
23 refreshonly => true, | |
24 notify => Service['postfix'], | |
25 } | |
26 File { | |
27 ensure => present, | |
28 notify => Exec['postmap-files'], | |
29 require => Package['postfix'], | |
30 } | |
31 file { '/etc/postfix/main.cf': | |
32 content => template('postfix/main.cf.erb'), | |
33 require => [ Package['postfix'], Class['dovecot'] ], | |
34 } | |
35 file { '/etc/postfix/master.cf': | |
36 source => 'puppet:///common/postfix/master.cf' | |
37 } | |
38 #Hosted domains | |
39 file { '/etc/postfix/vdomains': | |
40 source => 'puppet:///private/postfix/vdomains', | |
41 } | |
42 #Hosted mailboxes | |
43 file { '/etc/postfix/vmailbox': | |
44 source => 'puppet:///private/postfix/vmailbox', | |
45 } | |
46 #Catch-alls | |
47 file { '/etc/postfix/virtual': | |
48 source => 'puppet:///private/postfix/virtual', | |
49 } | |
50 #Forwarders/aliases | |
51 file { '/etc/postfix/valias': | |
52 source => 'puppet:///private/postfix/valias', | |
53 } | |
54 #BCCing of inbound email | |
55 file { '/etc/postfix/recipient_bcc': | |
56 source => 'puppet:///private/postfix/recipient_bcc', | |
57 } | |
58 #Spammed/removed addresses | |
59 file { '/etc/postfix/valias-blacklist': | |
60 source => 'puppet:///private/postfix/valias-blacklist', | |
61 } | |
62 #Spammed/removed address patterns | |
63 file { '/etc/postfix/valias-blacklist-regex': | |
64 source => 'puppet:///private/postfix/valias-blacklist-regex', | |
65 } | |
66 #Bad headers (use sparingly) | |
67 file { '/etc/postfix/header_checks': | |
68 source => 'puppet:///private/postfix/header_checks', | |
69 } | |
70 #Whitelisted HELO names | |
71 file { '/etc/postfix/helo_whitelist': | |
72 source => 'puppet:///private/postfix/helo_whitelist', | |
73 } | |
74 #Blacklist some domains (e.g. banks who don't do SPF that we don't bank with) | |
75 file { '/etc/postfix/sender_access': | |
76 source => 'puppet:///private/postfix/sender_access', | |
77 } | |
78 # Certificates | |
79 file { "/etc/pki/custom/$mailserver.crt": | |
80 ensure => present, | |
81 source => "puppet:///private/pki/custom/$mailserver.crt", | |
82 owner => 'postfix', | |
83 mode => 600, | |
84 } | |
85 file { "/etc/pki/custom/$mailserver.key": | |
86 ensure => present, | |
87 source => "puppet:///private/pki/custom/$mailserver.key", | |
88 owner => 'postfix', | |
89 mode => 600, | |
90 } | |
91 | |
92 # Mail base dir | |
93 file { '/var/mail/vhosts/': | |
94 ensure => directory, | |
95 owner => 505, | |
96 group => 505, | |
97 mode => 700, | |
98 } | |
99 | |
100 #SPF checking | |
101 file { '/usr/local/lib/postfix-policyd-spf-perl/': | |
102 ensure => directory | |
103 } | |
104 file { '/usr/local/lib/postfix-policyd-spf-perl/postfix-policyd-spf-perl': | |
105 source => 'puppet:///common/postfix/postfix-policyd-spf-perl', | |
106 } | |
107 $perl_pkgs = [ 'perl', 'perl-NetAddr-IP', 'perl-Mail-SPF', 'perl-version', 'perl-Sys-Hostname-Long'] | |
108 package { $perl_pkgs: | |
109 ensure => latest, | |
110 } | |
111 } |