]> git.somenet.org - root/pub/somesible.git/blob - roles/server/mail/postfix/tasks/main.yml
[roles/server/mail/postfix] setup postfix mail server
[root/pub/somesible.git] / roles / server / mail / postfix / tasks / main.yml
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>
6 #
7 ---
8 - name: install postfix
9   apt:
10     pkg:
11     - postfix
12     state: present
13     policy_rc_d: 101
14   tags: "online"
15   ignore_errors: "{{ignore_online_errors | bool}}"
16
17
18 # letsencrypt may not be needed.
19 - name: add postfix user to groups mail,sasl,ssl-cert,letsencrypt,opendkim,opendmarc
20   user:
21     name: "postfix"
22     groups: "mail,sasl,ssl-cert,opendkim,opendmarc,pyspf-milter"
23     append: yes
24     createhome: no
25     state: present
26
27
28 - name: copy main.cf
29   copy:
30     src: "{{item}}"
31     dest: "/etc/postfix/main.cf"
32     mode: 0644
33     owner: "root"
34     group: "root"
35   with_first_found:
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"
39     - "default/main.cf"
40   notify: restart postfix.service
41
42
43 - name: copy master.cf
44   copy:
45     src: "{{item}}"
46     dest: "/etc/postfix/master.cf"
47     mode: 0644
48     owner: "root"
49     group: "root"
50   with_first_found:
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"
54     - "default/master.cf"
55   notify: restart postfix.service
56
57
58 - name: copy saslauthd smtpd.conf
59   copy:
60     src: "{{item}}"
61     dest: "/etc/postfix/sasl/smtpd.conf"
62     mode: 0644
63     owner: "root"
64     group: "root"
65   with_first_found:
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
71
72
73 - name: copy header_checks_in.regexp
74   copy:
75     src: "{{item}}"
76     dest: "/etc/postfix/header_checks_in.regexp"
77     mode: 0644
78     owner: "root"
79     group: "root"
80   with_first_found:
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
86
87
88 - name: copy header_checks_out.regexp
89   copy:
90     src: "{{item}}"
91     dest: "/etc/postfix/header_checks_out.regexp"
92     mode: 0644
93     owner: "root"
94     group: "root"
95   with_first_found:
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
101
102
103 - name: copy rcpt_recipient.regexp
104   copy:
105     src: "{{item}}"
106     dest: "/etc/postfix/rcpt_recipient.regexp"
107     mode: 0644
108     owner: "root"
109     group: "root"
110   with_first_found:
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
116
117
118 - name: copy rcpt_sender.regexp
119   copy:
120     src: "{{item}}"
121     dest: "/etc/postfix/rcpt_sender.regexp"
122     mode: 0644
123     owner: "root"
124     group: "root"
125   with_first_found:
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
131
132
133 - name: copy rel_recipient.regexp
134   copy:
135     src: "{{item}}"
136     dest: "/etc/postfix/rel_recipient.regexp"
137     mode: 0644
138     owner: "root"
139     group: "root"
140   with_first_found:
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
146
147
148 - name: copy rel_sender.regexp
149   copy:
150     src: "{{item}}"
151     dest: "/etc/postfix/rel_sender.regexp"
152     mode: 0644
153     owner: "root"
154     group: "root"
155   with_first_found:
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
161
162
163 - name: copy transport.map
164   copy:
165     src: "{{item}}"
166     dest: "/etc/postfix/transport.map"
167     mode: 0644
168     owner: "root"
169     group: "root"
170   with_first_found:
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
176
177
178 - name: copy virtual.map
179   copy:
180     src: "{{item}}"
181     dest: "/etc/postfix/virtual.map"
182     mode: 0644
183     owner: "root"
184     group: "root"
185   with_first_found:
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
191
192
193 - name: copy postfix@.service to /etc/systemd/system/
194   copy:
195     src: "{{item}}"
196     dest: "/etc/systemd/system/postfix@.service"
197     mode: 0644
198     owner: "root"
199     group: "root"
200   with_first_found:
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"
205
206
207 - name: copy fail2ban.jail.d.postfix.conf to /etc/fail2ban/jail.d/
208   copy:
209     src: "{{item}}"
210     dest: "/etc/fail2ban/jail.d/postfix.conf"
211     mode: 0644
212     owner: "root"
213     group: "root"
214   with_first_found:
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
220
221
222 - name: enable and start postfix.service
223   include_role: name="base/systemd/enable-and-start"
224   vars:
225     service_name: postfix.service