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
15 ignore_errors: "{{ignore_online_errors | bool}}"
18 # letsencrypt may not be needed.
19 - name: add postfix user to groups mail,sasl,ssl-cert,letsencrypt,opendkim,opendmarc
22 groups: "mail,sasl,ssl-cert,opendkim,opendmarc,pyspf-milter"
31 dest: "/etc/postfix/main.cf"
36 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/main.cf"
37 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/main.cf"
38 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/main.cf"
40 notify: restart postfix.service
43 - name: copy master.cf
46 dest: "/etc/postfix/master.cf"
51 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/master.cf"
52 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/master.cf"
53 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/master.cf"
55 notify: restart postfix.service
58 - name: copy saslauthd smtpd.conf
61 dest: "/etc/postfix/sasl/smtpd.conf"
66 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/sasl.smtpd.conf"
67 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/sasl.smtpd.conf"
68 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/sasl.smtpd.conf"
69 - "default/sasl.smtpd.conf"
70 notify: restart postfix.service
73 - name: copy header_checks_in.regexp
76 dest: "/etc/postfix/header_checks_in.regexp"
81 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/header_checks_in.regexp"
82 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/header_checks_in.regexp"
83 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/header_checks_in.regexp"
84 - "default/header_checks_in.regexp"
85 notify: reload postfix.service
88 - name: copy header_checks_out.regexp
91 dest: "/etc/postfix/header_checks_out.regexp"
96 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/header_checks_out.regexp"
97 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/header_checks_out.regexp"
98 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/header_checks_out.regexp"
99 - "default/header_checks_out.regexp"
100 notify: reload postfix.service
103 - name: copy rcpt_recipient.regexp
106 dest: "/etc/postfix/rcpt_recipient.regexp"
111 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/rcpt_recipient.regexp"
112 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/rcpt_recipient.regexp"
113 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/rcpt_recipient.regexp"
114 - "default/rcpt_recipient.regexp"
115 notify: reload postfix.service
118 - name: copy rcpt_sender.regexp
121 dest: "/etc/postfix/rcpt_sender.regexp"
126 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/rcpt_sender.regexp"
127 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/rcpt_sender.regexp"
128 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/rcpt_sender.regexp"
129 - "default/rcpt_sender.regexp"
130 notify: reload postfix.service
133 - name: copy rel_recipient.regexp
136 dest: "/etc/postfix/rel_recipient.regexp"
141 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/rel_recipient.regexp"
142 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/rel_recipient.regexp"
143 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/rel_recipient.regexp"
144 - "default/rel_recipient.regexp"
145 notify: reload postfix.service
148 - name: copy rel_sender.regexp
151 dest: "/etc/postfix/rel_sender.regexp"
156 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/rel_sender.regexp"
157 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/rel_sender.regexp"
158 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/rel_sender.regexp"
159 - "default/rel_sender.regexp"
160 notify: reload postfix.service
163 - name: copy transport.map
166 dest: "/etc/postfix/transport.map"
171 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/transport.map"
172 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/transport.map"
173 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/transport.map"
174 - "default/transport.map"
175 notify: rehash postfix maps
178 - name: copy virtual.map
181 dest: "/etc/postfix/virtual.map"
186 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/virtual.map"
187 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/virtual.map"
188 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/virtual.map"
189 - "default/virtual.map"
190 notify: rehash postfix maps
193 - name: copy postfix@.service to /etc/systemd/system/
196 dest: "/etc/systemd/system/postfix@.service"
201 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/postfix@.service"
202 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/postfix@.service"
203 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/postfix@.service"
204 - "default/postfix@.service"
207 - name: copy fail2ban.jail.d.postfix.conf to /etc/fail2ban/jail.d/
210 dest: "/etc/fail2ban/jail.d/postfix.conf"
215 - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/fail2ban.jail.d.postfix.conf"
216 - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/fail2ban.jail.d.postfix.conf"
217 - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/fail2ban.jail.d.postfix.conf"
218 - "default/fail2ban.jail.d.postfix.conf"
219 notify: reload fail2ban.service
222 - name: enable and start postfix.service
223 include_role: name="base/systemd/enable-and-start"
225 service_name: postfix.service