]> arthur.barton.de Git - AnsibleRoles.git/blobdiff - roles/postfix/tasks/main.yml
postfix: Correct order of tasks, modify files after installing packages
[AnsibleRoles.git] / roles / postfix / tasks / main.yml
index d9497fa68129c223e7687e0c1cba487a83b0c835..e65327fc28d0d5f6347b407a0d76bfcf3d0f12ec 100644 (file)
 ---
 # postfix tasks
 
-- name: configure Postfix "mailname"
+# Debconf
+
+- name: 'debconf(1): configure Postfix as "Satellite system"'
   tags:
+    - debconf
+    - mail
+    - postfix
+  debconf: >
+    name=postfix
+    question=postfix/main_mailer_type
+    value="Satellite system"
+    vtype=select
+  notify:
+    - update "postfix" configuration
+
+- name: 'debconf(1): set system mail name'
+  tags:
+    - debconf
     - mail
-    - packages
     - postfix
   debconf: >
     name=postfix
     question=postfix/mailname
     value="{{ postfix_mailname }}"
-    vtype=select
+    vtype=string
+  notify:
+    - update "postfix" configuration
 
-- name: configure Postfix "destinations"
+- name: 'debconf(1): set SMTP relay host'
   tags:
+    - debconf
+    - mail
+    - postfix
+  debconf: >
+    name=postfix
+    question=postfix/relayhost
+    value="{{ smtp_relay_host }}"
+    vtype=string
+  notify:
+    - update "postfix" configuration
+
+- name: 'debconf(1): set root and postmaster recipient'
+  tags:
+    - debconf
+    - mail
+    - postfix
+  debconf: >
+    name=postfix
+    question=postfix/root_address
+    value="{{ postfix_root_address }}"
+    vtype=string
+  notify:
+    - update "postfix" configuration
+
+- name: 'debconf(1): set other destinations to accept mail for'
+  tags:
+    - debconf
     - mail
-    - packages
     - postfix
   debconf: >
     name=postfix
     question=postfix/destinations
-    value="{{ postfix_mailname }}, $myhostname, localhost.$mydomain, localhost"
+    value="{{ postfix_destinations }}"
+    vtype=string
+  notify:
+    - update "postfix" configuration
+
+- name: 'debconf(1): set local networks'
+  tags:
+    - debconf
+    - mail
+    - postfix
+  debconf: >
+    name=postfix
+    question=postfix/mynetworks
+    value="{{ postfix_local_networks }}"
+    vtype=string
+  notify:
+    - update "postfix" configuration
+
+- name: 'debconf(1): set mailbox size limit'
+  tags:
+    - debconf
+    - mail
+    - postfix
+  debconf: >
+    name=postfix
+    question=postfix/mailbox_limit
+    value="{{ postfix_mailbox_limit }}"
+    vtype=string
+  notify:
+    - update "postfix" configuration
+
+- name: 'debconf(1): set local address extension character'
+  tags:
+    - debconf
+    - mail
+    - postfix
+  debconf: >
+    name=postfix
+    question=postfix/recipient_delim
+    value="{{ postfix_recipient_delim }}"
+    vtype=string
+  notify:
+    - update "postfix" configuration
+
+- name: 'debconf(1): set internet protocols to use'
+  tags:
+    - debconf
+    - mail
+    - postfix
+  debconf: >
+    name=postfix
+    question=postfix/protocols
+    value="{{ postfix_protocols }}"
     vtype=select
+  notify:
+    - update "postfix" configuration
+
+- name: 'debconf(1): configure synchronous updates on mail queue'
+  tags:
+    - debconf
+    - mail
+    - postfix
+  debconf: >
+    name=postfix
+    question=postfix/chattr
+    value="{{ postfix_sync_updates }}"
+    vtype=boolean
+  notify:
+    - update "postfix" configuration
+
+# Install Debian package ...
 
 - name: install "postfix" package
   tags:
     state=installed
     name=postfix
 
+# Update configuration files
+
 - name: setup "/etc/mailname"
   tags:
     - mail
   template: >
     dest=/etc/mailname
     group=root
-    mode=644
+    mode=0644
     owner=root
     src=mailname.j2
   notify:
     - restart "postfix"
 
+# Make sure settings in /etc/postfix/main.cf are the same than for debconf!
+
+- name: set other destinations to accept mail for (main.cf)
+  tags:
+    - mail
+    - postfix
+  lineinfile: >
+    dest=/etc/postfix/main.cf
+    line="mydestination = {{ postfix_destinations }}"
+    regexp="^mydestination"
+  notify:
+    - restart "postfix"
+
+- name: set local networks (main.cf)
+  tags:
+    - mail
+    - postfix
+  lineinfile: >
+    dest=/etc/postfix/main.cf
+    line="mynetworks = {{ postfix_local_networks }}"
+    regexp="^mynetworks"
+  notify:
+    - restart "postfix"
+
+- name: set internet protocols to use (main.cf)
+  tags:
+    - mail
+    - postfix
+  lineinfile: >
+    dest=/etc/postfix/main.cf
+    line="inet_protocols = {{ postfix_protocols }}"
+    regexp="^inet_protocols"
+  notify:
+    - restart "postfix"
+
 - name: set Posfix "myorigin"
   tags:
     - mail
     dest=/etc/postfix/main.cf
     group=root
     line="myorigin = /etc/mailname"
-    mode=644
+    mode=0644
     owner=root
     regexp="^myorigin"
   notify:
     - restart "postfix"
 
-- name: set Posfix "myhostname"
+- name: set Posfix "inet_interfaces"
   tags:
     - mail
     - postfix
   lineinfile: >
     dest=/etc/postfix/main.cf
-    group=root
-    line="myhostname = {{ inventory_hostname }}"
-    mode=644
-    owner=root
-    regexp="^myhostname"
+    line="inet_interfaces = {{ postfix_interfaces }}"
+    regexp="^inet_interfaces"
   notify:
     - restart "postfix"
 
-- name: ensure service "postfix" is enabled and running
+# Coinfigure service
+
+- name: ensure service "postfix" is enabled and started
   tags:
     - mail
     - postfix
   service: >
     enabled=yes
     name=postfix
-    state=running
+    state=started