summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2014-07-04 00:21:57 +0200
committerGuilhem Moulin <guilhem@fripost.org>2015-06-07 02:52:23 +0200
commit535741b9caaa7b1480d3a6e8290769b1e2e0a55e (patch)
tree3030ae7338742ea07bfc02c4262784d68dfaa8d4
parentf173319facc43b6ad0934d02a752aefc507727f2 (diff)
Don't restart/reload Postifx upon change of a file based database.
And don't restart or reload either upon change of pcre: files that are used by smtpd(8), cleanup(8) or local(8), following the suggestion from http://www.postfix.org/DATABASE_README.html#detect .
-rw-r--r--roles/IMAP/tasks/mda.yml8
-rw-r--r--roles/MSA/tasks/main.yml1
-rw-r--r--roles/MX/tasks/main.yml1
-rw-r--r--roles/common/tasks/mail.yml5
-rw-r--r--roles/out/tasks/main.yml5
5 files changed, 7 insertions, 13 deletions
diff --git a/roles/IMAP/tasks/mda.yml b/roles/IMAP/tasks/mda.yml
index 4a74ed3..a914f17 100644
--- a/roles/IMAP/tasks/mda.yml
+++ b/roles/IMAP/tasks/mda.yml
@@ -1,64 +1,62 @@
- name: Install Postfix
apt: pkg={{ item }}
with_items:
- postfix
- postfix-ldap
- name: Configure Postfix
template: src=etc/postfix/main.cf.j2
dest=/etc/postfix-{{ postfix_instance[inst].name }}/main.cf
owner=root group=root
mode=0644
- register: r1
+ register: r
notify:
- Restart Postfix
- name: Create directory /etc/postfix-.../virtual
file: path=/etc/postfix-{{ postfix_instance[inst].name }}/virtual
state=directory
owner=root group=root
mode=0755
- name: Copy lookup tables
copy: src=etc/postfix/virtual/{{ item }}
dest=/etc/postfix-{{ postfix_instance[inst].name }}/virtual/{{ item }}
owner=root group=root
mode=0644
with_items:
- mailbox_domains.cf
- mailbox.cf
- transport_content_filter.cf
- name: Copy recipient canonical
+ # no need to reload upon change, as cleanup(8) is short-running
copy: src=etc/postfix/recipient_canonical.pcre
dest=/etc/postfix-{{ postfix_instance[inst].name }}/recipient_canonical.pcre
owner=root group=root
mode=0644
- name: Build the Postfix relay clientcerts map
sudo: False
# smtpd_tls_fingerprint_digest MUST be sha256!
local_action: shell openssl x509 -in certs/postfix/{{ item }}.pem -noout -fingerprint -sha256 | sed -nr 's/^.*=(.*)/\1 {{ item }}/p'
with_items: groups.MX | difference([inventory_hostname]) | sort
register: relay_clientcerts
changed_when: False
- name: Copy the Postfix relay clientcerts map
template: src=etc/postfix/relay_clientcerts.j2
dest=/etc/postfix-{{ postfix_instance[inst].name }}/relay_clientcerts
owner=root group=root
mode=0644
- name: Compile the Postfix relay clientcerts map
postmap: cmd=postmap src=/etc/postfix-{{ postfix_instance[inst].name }}/relay_clientcerts db=cdb
owner=root group=root
mode=0644
- register: r2
- notify:
- - Restart Postfix
- name: Start Postfix
service: name=postfix state=started
- when: not (r1.changed or r2.changed)
+ when: not r.changed
- meta: flush_handlers
diff --git a/roles/MSA/tasks/main.yml b/roles/MSA/tasks/main.yml
index a722311..30473a6 100644
--- a/roles/MSA/tasks/main.yml
+++ b/roles/MSA/tasks/main.yml
@@ -1,26 +1,27 @@
- name: Install Postfix
apt: pkg={{ item }}
with_items:
- postfix
- postfix-pcre
- name: Configure Postfix
template: src=etc/postfix/main.cf.j2
dest=/etc/postfix-{{ postfix_instance[inst].name }}/main.cf
owner=root group=root
mode=0644
register: r
notify:
- Restart Postfix
- name: Copy the Regex to anonymize senders
+ # no need to reload upon change, as cleanup(8) is short-running
copy: src=etc/postfix/anonymize_sender.pcre
dest=/etc/postfix-{{ postfix_instance[inst].name }}/anonymize_sender.pcre
owner=root group=root
mode=0644
- name: Start Postfix
service: name=postfix state=started
when: not r.changed
- meta: flush_handlers
diff --git a/roles/MX/tasks/main.yml b/roles/MX/tasks/main.yml
index 2670703..accca14 100644
--- a/roles/MX/tasks/main.yml
+++ b/roles/MX/tasks/main.yml
@@ -30,40 +30,41 @@
dest=/etc/postfix-{{ postfix_instance[inst].name }}/main.cf
owner=root group=root
mode=0644
register: r
notify:
- Restart Postfix
- name: Create directory /etc/postfix-.../virtual
file: path=/etc/postfix-{{ postfix_instance[inst].name }}/virtual
state=directory
owner=root group=root
mode=0755
- name: Copy lookup tables
template: src=etc/postfix/virtual/{{ item }}.j2
dest=/etc/postfix-{{ postfix_instance[inst].name }}/virtual/{{ item }}
owner=root group=root
mode=0644
with_items:
- mailbox_domains.cf
+ # no need to reload upon change, as cleanup(8) is short-running
- reserved_alias.pcre
- alias.cf
- mailbox.cf
- list.cf
- alias_domains.cf
- catchall.cf
- transport
- name: Compile the Reserved Transport Maps
postmap: instance={{ postfix_instance[inst].name }}
src=/etc/postfix-{{ postfix_instance[inst].name }}/virtual/transport db=cdb
owner=root group=root
mode=0644
- name: Copy reserved-alias.pl
copy: src=usr/local/sbin/reserved-alias.pl
dest=/usr/local/sbin/reserved-alias.pl
owner=root group=root
mode=0755
diff --git a/roles/common/tasks/mail.yml b/roles/common/tasks/mail.yml
index 74919c8..3b2a41f 100644
--- a/roles/common/tasks/mail.yml
+++ b/roles/common/tasks/mail.yml
@@ -87,29 +87,26 @@
sudo: False
# smtp_tls_fingerprint_digest MUST be sha256!
local_action: shell openssl x509 -in certs/postfix/{{ item }}.pem -noout -fingerprint -sha256 | cut -d= -f2
with_items: groups.out | sort
register: tls_policy
changed_when: False
when: "'out' not in group_names"
- name: Copy the Postfix TLS policy map
template: src=etc/postfix/tls_policy.j2
dest=/etc/postfix/tls_policy
owner=root group=root
mode=0644
when: "'out' not in group_names"
- name: Compile the Postfix TLS policy map
postmap: cmd=postmap src=/etc/postfix/tls_policy db=cdb
owner=root group=root
mode=0644
when: "'out' not in group_names"
- register: r5
- notify:
- - Restart Postfix
- name: Start Postfix
service: name=postfix state=started
- when: not (r1.changed or r2.changed or r3.changed or r5.changed)
+ when: not (r1.changed or r2.changed or r3.changed)
- meta: flush_handlers
diff --git a/roles/out/tasks/main.yml b/roles/out/tasks/main.yml
index 8bd8bbb..69d9ead 100644
--- a/roles/out/tasks/main.yml
+++ b/roles/out/tasks/main.yml
@@ -11,29 +11,26 @@
- Restart Postfix
- name: Build the Postfix relay clientcerts map
sudo: False
# smtpd_tls_fingerprint_digest MUST be sha256!
local_action: shell openssl x509 -in certs/postfix/{{ item }}.pem -noout -fingerprint -sha256 | sed -nr 's/^.*=(.*)/\1 {{ item }}/p'
with_items: groups.all | difference([inventory_hostname]) | sort
register: relay_clientcerts
changed_when: False
- name: Copy the Postfix relay clientcerts map
template: src=etc/postfix/relay_clientcerts.j2
dest=/etc/postfix-{{ postfix_instance[inst].name }}/relay_clientcerts
owner=root group=root
mode=0644
- name: Compile the Postfix relay clientcerts map
postmap: cmd=postmap src=/etc/postfix-{{ postfix_instance[inst].name }}/relay_clientcerts db=cdb
owner=root group=root
mode=0644
- register: r2
- notify:
- - Restart Postfix
- name: Start Postfix
service: name=postfix state=started
- when: not (r1.changed or r2.changed)
+ when: not r.changed
- meta: flush_handlers