diff options
-rw-r--r-- | roles/IMAP/tasks/mda.yml | 10 | ||||
-rw-r--r--[l---------] | roles/IMAP/templates/etc/postfix/relay_clientcerts.j2 | 7 | ||||
-rw-r--r-- | roles/out/tasks/main.yml | 10 | ||||
-rw-r--r-- | roles/out/templates/etc/postfix/relay_clientcerts.j2 | 5 |
4 files changed, 9 insertions, 23 deletions
diff --git a/roles/IMAP/tasks/mda.yml b/roles/IMAP/tasks/mda.yml index 897a61d..04d2b54 100644 --- a/roles/IMAP/tasks/mda.yml +++ b/roles/IMAP/tasks/mda.yml @@ -5,50 +5,40 @@ - 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 notify: - Reload Postfix - name: Copy the transport and recipient canonical maps copy: src=etc/postfix/{{ item }} dest=/etc/postfix-{{ postfix_instance[inst].name }}/{{ item }} owner=root group=root mode=0644 with_items: # no need to reload upon change, as cleanup(8) is short-running - recipient_canonical.pcre - transport -- 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 - tags: - - tls_policy - - 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 tags: - tls_policy - 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 tags: - tls_policy - name: Compile the Postfix transport maps # trivial-rewrite(8) is a long-running process, so it's safer to reload postmap: cmd=postmap src=/etc/postfix-{{ postfix_instance[inst].name }}/transport db=cdb owner=root group=root mode=0644 diff --git a/roles/IMAP/templates/etc/postfix/relay_clientcerts.j2 b/roles/IMAP/templates/etc/postfix/relay_clientcerts.j2 index b375aa0..42a83b5 120000..100644 --- a/roles/IMAP/templates/etc/postfix/relay_clientcerts.j2 +++ b/roles/IMAP/templates/etc/postfix/relay_clientcerts.j2 @@ -1 +1,6 @@ -../../../../out/templates/etc/postfix/relay_clientcerts.j2
\ No newline at end of file +# {{ ansible_managed }} +# /!\ WARNING: smtp_tls_fingerprint_digest MUST be sha256! + +{% for h in groups.MX | difference([inventory_hostname]) | sort %} +{{ lookup('pipe', 'openssl x509 -in certs/postfix/'+h+'.pem -noout -fingerprint -sha256 | cut -d= -f2') }} {{ h }} +{% endfor %} diff --git a/roles/out/tasks/main.yml b/roles/out/tasks/main.yml index 791bfa3..2a9cf71 100644 --- a/roles/out/tasks/main.yml +++ b/roles/out/tasks/main.yml @@ -1,40 +1,30 @@ - name: Install Postfix apt: pkg=postfix - 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 notify: - Reload 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 - tags: - - tls_policy - - 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 tags: - tls_policy - 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 tags: - tls_policy - meta: flush_handlers - name: Start Postfix service: name=postfix state=started diff --git a/roles/out/templates/etc/postfix/relay_clientcerts.j2 b/roles/out/templates/etc/postfix/relay_clientcerts.j2 index 3f724ea..d70432e 100644 --- a/roles/out/templates/etc/postfix/relay_clientcerts.j2 +++ b/roles/out/templates/etc/postfix/relay_clientcerts.j2 @@ -1,5 +1,6 @@ # {{ ansible_managed }} +# /!\ WARNING: smtp_tls_fingerprint_digest MUST be sha256! -{% for x in relay_clientcerts.results %} -{{ x.stdout }} +{% for h in groups.all | difference([inventory_hostname]) | sort %} +{{ lookup('pipe', 'openssl x509 -in certs/postfix/'+h+'.pem -noout -fingerprint -sha256 | cut -d= -f2') }} {{ h }} {% endfor %} |