also manage sender_transport_map
[ansible.git] / roles / email / tasks / postfix.yml
index bda22568fef15cd1af09e5cdbd40f776450db9ba..a76cc250ea5d36e101e3fc4feeb5e247996588cb 100644 (file)
@@ -1,7 +1,7 @@
 - name: install postfix
   apt: name=postfix,bsd-mailx state=latest
 - name: install postfix-mysql
-  when: postfix.vmail_mysql_password is defined
+  when: postfix.dovecot is defined
   apt: name=postfix-mysql state=latest
 - name: enable postfix
   service: name=postfix enabled=yes
@@ -15,7 +15,7 @@
   - master.cf
   notify: postfix
 - name: install postfix mysql config
-  when: postfix.vmail_mysql_password is defined
+  when: postfix.dovecot is defined
   template:
     dest: /etc/postfix/{{ item }}
     src: templates/{{ item }}
   - mysql_vmail_senders.cf
   - mysql_vmail_users.cf
   notify: postfix
-- name: create empty maps
-  when: postfix.virtual_mailbox_domains is defined
-  copy:
-    dest: /etc/postfix/{{ item }}
-    content: ""
-    force: no
-  loop:
-  - virtual_alias_map
-  - transport_map
 - name: give postfix user access to opendkim
   # we assume the user alredy exists (it is created above by installing postfix)
   when: postfix.opendkim is defined
     groups: opendkim
     append: yes
   notify: postfix
+# maps
+- name: create empty virtual_alias_map
+  register: virtual_alias_map
+  copy:
+    dest: /etc/postfix/virtual_alias_map
+    content: ""
+    force: no
+- name: postmap virtual_alias_map
+  when: virtual_alias_map.changed
+  command: postmap /etc/postfix/virtual_alias_map
+  notify: postfix
+- name: create sender_transport_map
+  when: postfix.smtp_outgoing is defined
+  register: sender_transport_map
+  template:
+    dest: /etc/postfix/sender_transport_map
+    src: templates/sender_transport_map
+- name: postmap sender_transport_map
+  when: sender_transport_map.changed
+  command: postmap /etc/postfix/sender_transport_map
+  notify: postfix
+- name: create relay_clientcerts
+  when: postfix.relay_client_cert_whitelist is defined
+  register: relay_clientcerts
+  template:
+    dest: /etc/postfix/relay_clientcerts
+    src: templates/relay_clientcerts
+- name: postmap relay_clientcerts
+  when: relay_clientcerts.changed
+  command: postmap /etc/postfix/relay_clientcerts
+  notify: postfix
+- name: create transport_map
+  register: transport_map
+  template:
+    dest: /etc/postfix/transport_map
+    src: templates/transport_map
+- name: postmap transport_map
+  when: transport_map.changed
+  command: postmap /etc/postfix/transport_map
+  notify: postfix
 # cronjobs
 - name: delete old local-mail cronjob
   file: path=/etc/cron.daily/local-mail state=absent
     dest: /etc/cron.daily/check-for-local-mail
     src: files/check-for-local-mail
     mode: u=rwx,g=rx,o=rx
-- name: install mailman-check cronjob
-  when: postfix.mailman is defined and postfix.mailman
-  copy:
-    dest: /etc/cron.daily/mailman-check
-    src: files/mailman-check
-    mode: u=rwx,g=rx,o=rx
-- name: remove mailman-check cronjob
-  when: not (postfix.mailman is defined and postfix.mailman)
-  file:
-    path: /etc/cron.daily/mailman-check
-    state: absent
-# tools
-- block:
-  - name: create newmail dir
-    file: path=/root/newmail state=directory
-  - name: install newmail script
-    copy:
-      dest: /root/newmail/newmail
-      src: files/newmail/newmail
-      mode: u=rwx,g=rx,o=rx
-  - name: install newmail templates
-    copy:
-      dest: /root/newmail/templates.py
-      src: files/newmail/templates.py
-  when: postfix.vmail_mysql_password is defined