summaryrefslogtreecommitdiffstats
path: root/roles/common/tasks/mail.yml
blob: 139386f814e7f99cf2b7761efbbd9b1bc476ebf3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
- name: Install Postfix
  apt: pkg={{ packages }}
  vars:
    packages:
    # That one is nicer than GNU mailutils' mailx(1)
    - s-nail
    - postfix
    - postfix-lmdb

- name: Create Postfix instances
  postmulti: instance={{ postfix_instance[item].name }}
             group={{ postfix_instance[item].group | default('') }}
  register: r1
  with_items: "{{ postfix_instance.keys() | intersect(group_names) | list }}"
  notify:
    - Restart Postfix

- name: Link the dynamic maps of each children to the master's
  # main.cf and master.cf are specialized to each dedicated role, though
  file: src=../postfix/dynamicmaps.cf
        dest=/etc/postfix-{{ postfix_instance[item].name }}/dynamicmaps.cf
        owner=root group=root
        state=link force=yes
  register: r2
  with_items: "{{ postfix_instance.keys() | intersect(group_names) | list }}"
  notify:
    - Restart Postfix

- name: Configure Postfix
  template: src=etc/postfix/{{ item }}.j2
            dest=/etc/postfix/{{ item }}
            owner=root group=root
            mode=0644
  with_items:
    - main.cf
    - master.cf
  notify:
    - Reload Postfix

- name: Add some common aliases
  lineinfile: dest=/etc/aliases create=yes
              regexp='^{{ item.src }}{{':'}} '
              line='{{ item.src }}{{':'}} {{ item.dst }}'
  with_items:
    - { src: mailer-daemon, dst: 'postmaster'       }
    - { src: postmaster,    dst: 'root'             }
    - { src: nobody,        dst: 'root'             }
    - { src: root,          dst: 'root@fripost.org' }

- name: Compile the static local Postfix database
  postmap: cmd=postalias src=/etc/aliases db=lmdb
           owner=root group=root
           mode=0644

# We're using LMDB
- name: Delete /etc/aliases.db
  file: path=/etc/aliases.db state=absent

- name: Start Postfix
  service: name=postfix state=started
  when: not (r1.changed or r2.changed)

- meta: flush_handlers