---

- name: Install postfix
  yum:
    name:
      - postfix
      - cyrus-sasl-plain
  when: ansible_os_family == 'RedHat'
  tags: postfix

- name: Install postfix
  apt:
    name:
      - postfix
      - libsasl2-modules
  when: ansible_os_family == 'Debian'
  tags: postfix

- name: Check if mailman is installed
  stat: path={{ mailman_root_dir | default('/opt/mailman') }}
  register: postfix_mailman
  tags: postfix

- name: Deploy configuration
  template: src=main.cf.j2 dest=/etc/postfix/main.cf mode=644 owner=root group=root
  notify: restart postfix
  tags: postfix

- name: Deploy relay_auth
  template: src=relay_auth.j2 dest=/etc/postfix/relay_auth mode=600 owner=root group=root
  notify: rehash relay_auth
  tags: postfix

- name: Deploy relay_domains
  template: src=relay_domains.j2 dest=/etc/postfix/relay_domains mode=644 owner=root group=root
  notify: rehash relay_domains
  tags: postfix

- name: Deploy transport_maps
  template: src=transport_maps.j2 dest=/etc/postfix/transport_maps mode=644 owner=root group=root
  notify: rehash transport_maps
  tags: postfix

- name: Handle postfix port
  iptables_raw:
    name: postfix_ports
    state: "{{ (postfix_src_ip is defined and postfix_src_ip | length > 0) | ternary('present','absent') }}"
    rules: "-A INPUT -m state --state NEW -p tcp -m multiport --dports {{ postfix_ports | default(['25']) | join(',') }} -s {{ postfix_src_ip | join(',') }} -j ACCEPT"
  when: iptables_manage | default(True)
  tags: postfix

- name: start and enable the service
  service: name=postfix state=started enabled=True
  tags: postfix

...
