From 58e65628313da8990f1e5cb26bfe4e10e128034e Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Fri, 4 Jul 2014 00:37:40 +0200 Subject: Reload Postfix upon configuration change, but don't restart it. (Unless a new instance is created, or the master.cf change is modified.) Changing some variables, such as inet_protocols, require a full restart, but most of the time it's overkill. --- roles/IMAP/handlers/main.yml | 3 --- roles/IMAP/tasks/mda.yml | 8 +++----- roles/MSA/handlers/main.yml | 3 --- roles/MSA/tasks/main.yml | 8 +++----- roles/MX/handlers/main.yml | 3 --- roles/MX/tasks/main.yml | 8 +++----- roles/common/handlers/main.yml | 1 - roles/common/tasks/mail.yml | 6 +++--- roles/lists/handlers/main.yml | 3 --- roles/lists/tasks/mail.yml | 8 +++----- roles/out/handlers/main.yml | 3 --- roles/out/tasks/main.yml | 8 +++----- roles/webmail/handlers/main.yml | 3 --- roles/webmail/tasks/mail.yml | 8 +++----- 14 files changed, 21 insertions(+), 52 deletions(-) diff --git a/roles/IMAP/handlers/main.yml b/roles/IMAP/handlers/main.yml index c14468a..46cf1fb 100644 --- a/roles/IMAP/handlers/main.yml +++ b/roles/IMAP/handlers/main.yml @@ -2,9 +2,6 @@ - name: Restart Dovecot service: name=dovecot state=restarted -- name: Restart Postfix - service: name=postfix state=restarted - - name: Reload Postfix service: name=postfix state=reloaded diff --git a/roles/IMAP/tasks/mda.yml b/roles/IMAP/tasks/mda.yml index a914f17..2d63f0e 100644 --- a/roles/IMAP/tasks/mda.yml +++ b/roles/IMAP/tasks/mda.yml @@ -9,9 +9,8 @@ dest=/etc/postfix-{{ postfix_instance[inst].name }}/main.cf owner=root group=root mode=0644 - register: r notify: - - Restart Postfix + - Reload Postfix - name: Create directory /etc/postfix-.../virtual file: path=/etc/postfix-{{ postfix_instance[inst].name }}/virtual @@ -55,8 +54,7 @@ owner=root group=root mode=0644 +- meta: flush_handlers + - name: Start Postfix service: name=postfix state=started - when: not r.changed - -- meta: flush_handlers diff --git a/roles/MSA/handlers/main.yml b/roles/MSA/handlers/main.yml index c27834e..99a5db2 100644 --- a/roles/MSA/handlers/main.yml +++ b/roles/MSA/handlers/main.yml @@ -1,6 +1,3 @@ --- -- name: Restart Postfix - service: name=postfix state=restarted - - name: Reload Postfix service: name=postfix state=reloaded diff --git a/roles/MSA/tasks/main.yml b/roles/MSA/tasks/main.yml index 30473a6..c7424d8 100644 --- a/roles/MSA/tasks/main.yml +++ b/roles/MSA/tasks/main.yml @@ -9,9 +9,8 @@ dest=/etc/postfix-{{ postfix_instance[inst].name }}/main.cf owner=root group=root mode=0644 - register: r notify: - - Restart Postfix + - Reload Postfix - name: Copy the Regex to anonymize senders # no need to reload upon change, as cleanup(8) is short-running @@ -20,8 +19,7 @@ owner=root group=root mode=0644 +- meta: flush_handlers + - name: Start Postfix service: name=postfix state=started - when: not r.changed - -- meta: flush_handlers diff --git a/roles/MX/handlers/main.yml b/roles/MX/handlers/main.yml index 21c736a..0482a49 100644 --- a/roles/MX/handlers/main.yml +++ b/roles/MX/handlers/main.yml @@ -2,8 +2,5 @@ - name: Restart Postgrey service: name=postgrey state=restarted -- name: Restart Postfix - service: name=postfix state=restarted - - name: Reload Postfix service: name=postfix state=reloaded diff --git a/roles/MX/tasks/main.yml b/roles/MX/tasks/main.yml index accca14..a372cf4 100644 --- a/roles/MX/tasks/main.yml +++ b/roles/MX/tasks/main.yml @@ -30,9 +30,8 @@ dest=/etc/postfix-{{ postfix_instance[inst].name }}/main.cf owner=root group=root mode=0644 - register: r notify: - - Restart Postfix + - Reload Postfix - name: Create directory /etc/postfix-.../virtual file: path=/etc/postfix-{{ postfix_instance[inst].name }}/virtual @@ -68,8 +67,7 @@ owner=root group=root mode=0755 +- meta: flush_handlers + - name: Start Postfix service: name=postfix state=started - when: not r.changed - -- meta: flush_handlers diff --git a/roles/common/handlers/main.yml b/roles/common/handlers/main.yml index d20f7b6..13712fe 100644 --- a/roles/common/handlers/main.yml +++ b/roles/common/handlers/main.yml @@ -29,7 +29,6 @@ - name: Restart ntp service: name=ntp state=restarted -# TODO: should be in a separate file, since it's used by other roles - name: Restart Postfix service: name=postfix state=restarted diff --git a/roles/common/tasks/mail.yml b/roles/common/tasks/mail.yml index 3b2a41f..cbec8cf 100644 --- a/roles/common/tasks/mail.yml +++ b/roles/common/tasks/mail.yml @@ -32,17 +32,17 @@ dest=/etc/postfix/master.cf owner=root group=root mode=0644 + register: r3 notify: - - Reload Postfix + - Restart Postfix - name: Configure Postfix (2) template: src=etc/postfix/main.cf.j2 dest=/etc/postfix/main.cf owner=root group=root mode=0644 - register: r3 notify: - - Restart Postfix + - Reload Postfix - name: Create directory /etc/postfix/ssl file: path=/etc/postfix/ssl diff --git a/roles/lists/handlers/main.yml b/roles/lists/handlers/main.yml index 308f708..76084e4 100644 --- a/roles/lists/handlers/main.yml +++ b/roles/lists/handlers/main.yml @@ -1,7 +1,4 @@ --- -- name: Restart Postfix - service: name=postfix state=restarted - - name: Reload Postfix service: name=postfix state=reloaded diff --git a/roles/lists/tasks/mail.yml b/roles/lists/tasks/mail.yml index eb2fcc4..a08ff5c 100644 --- a/roles/lists/tasks/mail.yml +++ b/roles/lists/tasks/mail.yml @@ -9,9 +9,8 @@ dest=/etc/postfix-{{ postfix_instance[inst].name }}/main.cf owner=root group=root mode=0644 - register: r notify: - - Restart Postfix + - Reload Postfix - name: Create directory /etc/postfix-.../virtual file: path=/etc/postfix-{{ postfix_instance[inst].name }}/virtual @@ -28,8 +27,7 @@ - mailbox_domains.cf - transport_list.cf +- meta: flush_handlers + - name: Start Postfix service: name=postfix state=started - when: not r.changed - -- meta: flush_handlers diff --git a/roles/out/handlers/main.yml b/roles/out/handlers/main.yml index 21c736a..0482a49 100644 --- a/roles/out/handlers/main.yml +++ b/roles/out/handlers/main.yml @@ -2,8 +2,5 @@ - name: Restart Postgrey service: name=postgrey state=restarted -- name: Restart Postfix - service: name=postfix state=restarted - - name: Reload Postfix service: name=postfix state=reloaded diff --git a/roles/out/tasks/main.yml b/roles/out/tasks/main.yml index 69d9ead..68f438f 100644 --- a/roles/out/tasks/main.yml +++ b/roles/out/tasks/main.yml @@ -6,9 +6,8 @@ dest=/etc/postfix-{{ postfix_instance[inst].name }}/main.cf owner=root group=root mode=0644 - register: r notify: - - Restart Postfix + - Reload Postfix - name: Build the Postfix relay clientcerts map sudo: False @@ -29,8 +28,7 @@ owner=root group=root mode=0644 +- meta: flush_handlers + - name: Start Postfix service: name=postfix state=started - when: not r.changed - -- meta: flush_handlers diff --git a/roles/webmail/handlers/main.yml b/roles/webmail/handlers/main.yml index 308f708..76084e4 100644 --- a/roles/webmail/handlers/main.yml +++ b/roles/webmail/handlers/main.yml @@ -1,7 +1,4 @@ --- -- name: Restart Postfix - service: name=postfix state=restarted - - name: Reload Postfix service: name=postfix state=reloaded diff --git a/roles/webmail/tasks/mail.yml b/roles/webmail/tasks/mail.yml index 4bf4363..e2dea38 100644 --- a/roles/webmail/tasks/mail.yml +++ b/roles/webmail/tasks/mail.yml @@ -6,12 +6,10 @@ dest=/etc/postfix-{{ postfix_instance[inst].name }}/main.cf owner=root group=root mode=0644 - register: r notify: - - Restart Postfix + - Reload Postfix + +- meta: flush_handlers - name: Start Postfix service: name=postfix state=started - when: not r.changed - -- meta: flush_handlers -- cgit v1.2.3