summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2014-07-10 03:45:25 +0200
committerGuilhem Moulin <guilhem@fripost.org>2015-06-07 02:52:58 +0200
commitfcc307aafeb8438de12f339af0f5c83ab647c8a9 (patch)
treee27a0284e7e83b75b05d0d47212c576dd3be8abd
parentc515d0adea0ce6408dfaa5719a3bbf3340da7d92 (diff)
Hash certs using a lookup in the template instead of add a new task.
-rw-r--r--roles/IMAP/tasks/mda.yml10
-rw-r--r--[l---------]roles/IMAP/templates/etc/postfix/relay_clientcerts.j27
-rw-r--r--roles/out/tasks/main.yml10
-rw-r--r--roles/out/templates/etc/postfix/relay_clientcerts.j25
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
@@ -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
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
@@ -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 %}