1 #####################################
2 ### someone's ansible provisioner ###
3 #####################################
4 # Part of: https://git.somenet.org/root/pub/somesible.git
5 # 2017-2025 by someone <someone@somenet.org>
8 - name: install postfix
16 ignore_errors: "{{ignore_online_errors | bool}}"
19 # letsencrypt may not be needed.
20 - name: add postfix user to groups mail,sasl,ssl-cert,letsencrypt,opendkim,opendmarc
23 groups: "mail,sasl,ssl-cert,opendkim,opendmarc,pyspf-milter"
29 - name: set /etc/postfix permissions
41 dest: "/etc/postfix/main.cf"
46 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/main.cf"
47 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/main.cf"
48 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/main.cf"
50 notify: restart postfix.service
53 - name: copy master.cf
56 dest: "/etc/postfix/master.cf"
61 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/master.cf"
62 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/master.cf"
63 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/master.cf"
65 notify: restart postfix.service
68 - name: copy saslauthd smtpd.conf
71 dest: "/etc/postfix/sasl/smtpd.conf"
76 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/sasl.smtpd.conf"
77 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/sasl.smtpd.conf"
78 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/sasl.smtpd.conf"
79 - "default/sasl.smtpd.conf"
80 notify: restart postfix.service
83 - name: copy header_checks_in.regexp
86 dest: "/etc/postfix/header_checks_in.regexp"
91 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/header_checks_in.regexp"
92 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/header_checks_in.regexp"
93 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/header_checks_in.regexp"
94 - "default/header_checks_in.regexp"
95 notify: reload postfix.service
98 - name: copy header_checks_out.regexp
101 dest: "/etc/postfix/header_checks_out.regexp"
106 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/header_checks_out.regexp"
107 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/header_checks_out.regexp"
108 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/header_checks_out.regexp"
109 - "default/header_checks_out.regexp"
110 notify: reload postfix.service
113 - name: copy rcpt_recipient.regexp
116 dest: "/etc/postfix/rcpt_recipient.regexp"
121 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/rcpt_recipient.regexp"
122 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/rcpt_recipient.regexp"
123 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/rcpt_recipient.regexp"
124 - "default/rcpt_recipient.regexp"
125 notify: reload postfix.service
128 - name: copy rcpt_sender.regexp
131 dest: "/etc/postfix/rcpt_sender.regexp"
136 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/rcpt_sender.regexp"
137 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/rcpt_sender.regexp"
138 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/rcpt_sender.regexp"
139 - "default/rcpt_sender.regexp"
140 notify: reload postfix.service
143 - name: copy rel_recipient.regexp
146 dest: "/etc/postfix/rel_recipient.regexp"
151 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/rel_recipient.regexp"
152 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/rel_recipient.regexp"
153 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/rel_recipient.regexp"
154 - "default/rel_recipient.regexp"
155 notify: reload postfix.service
158 - name: copy rel_sender.regexp
161 dest: "/etc/postfix/rel_sender.regexp"
166 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/rel_sender.regexp"
167 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/rel_sender.regexp"
168 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/rel_sender.regexp"
169 - "default/rel_sender.regexp"
170 notify: reload postfix.service
173 - name: copy transport.map
176 dest: "/etc/postfix/transport.map"
181 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/transport.map"
182 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/transport.map"
183 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/transport.map"
184 - "default/transport.map"
185 notify: rehash postfix maps
188 - name: copy virtual.map
191 dest: "/etc/postfix/virtual.map"
196 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/virtual.map"
197 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/virtual.map"
198 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/virtual.map"
199 - "default/virtual.map"
200 notify: rehash postfix maps
203 - name: copy virtual.ldap
206 dest: "/etc/postfix/virtual.ldap"
211 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/virtual.ldap"
212 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/virtual.ldap"
213 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/virtual.ldap"
214 - "default/virtual.ldap"
215 notify: reload postfix.service
218 - name: copy postfix.service to /etc/systemd/system/
221 dest: "/etc/systemd/system/postfix.service"
226 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/postfix.service"
227 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/postfix.service"
228 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/postfix.service"
229 - "default/postfix.service"
232 - name: copy fail2ban.jail.d.postfix.conf to /etc/fail2ban/jail.d/
235 dest: "/etc/fail2ban/jail.d/postfix.conf"
240 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/fail2ban.jail.d.postfix.conf"
241 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/fail2ban.jail.d.postfix.conf"
242 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/fail2ban.jail.d.postfix.conf"
243 - "default/fail2ban.jail.d.postfix.conf"
244 notify: reload fail2ban.service
247 - name: enable and start postfix.service
248 include_role: name="base/systemd/enable-and-start"
250 service_name: postfix.service