From fcc307aafeb8438de12f339af0f5c83ab647c8a9 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Thu, 10 Jul 2014 03:45:25 +0200 Subject: Hash certs using a lookup in the template instead of add a new task. --- roles/IMAP/tasks/mda.yml | 10 ---------- roles/IMAP/templates/etc/postfix/relay_clientcerts.j2 | 7 ++++++- roles/out/tasks/main.yml | 10 ---------- roles/out/templates/etc/postfix/relay_clientcerts.j2 | 5 +++-- 4 files changed, 9 insertions(+), 23 deletions(-) mode change 120000 => 100644 roles/IMAP/templates/etc/postfix/relay_clientcerts.j2 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 @@ -22,16 +22,6 @@ - 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 diff --git a/roles/IMAP/templates/etc/postfix/relay_clientcerts.j2 b/roles/IMAP/templates/etc/postfix/relay_clientcerts.j2 deleted file mode 120000 index b375aa0..0000000 --- a/roles/IMAP/templates/etc/postfix/relay_clientcerts.j2 +++ /dev/null @@ -1 +0,0 @@ -../../../../out/templates/etc/postfix/relay_clientcerts.j2 \ No newline at end of file diff --git a/roles/IMAP/templates/etc/postfix/relay_clientcerts.j2 b/roles/IMAP/templates/etc/postfix/relay_clientcerts.j2 new file mode 100644 index 0000000..42a83b5 --- /dev/null +++ b/roles/IMAP/templates/etc/postfix/relay_clientcerts.j2 @@ -0,0 +1,6 @@ +# {{ 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 @@ -9,16 +9,6 @@ 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 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 %} -- cgit v1.2.3