ansible-role-postfix/tasks/main.yml

143 lines
3.5 KiB
YAML

- name: install postfix
apt:
pkg:
- postfix
- name: install prometheus postfix exporter
apt:
pkg:
- prometheus-postfix-exporter
- name: configure prometheus postfix exporter
template:
src: prometheus-postfix-exporter.j2
dest: /etc/default/prometheus-postfix-exporter
owner: root
group: root
mode: 0644
notify:
- restart prometheus-postfix-exporter
- name: Install and setup utilities for LDAP
when: postfix.ldap.enable
block:
- name: install utility packages for LDAP auth & config
apt:
pkg:
- postfix-ldap
- sasl2-bin
- name: Configure saslauthd
template:
src: saslauthd.conf.j2
dest: /etc/saslauthd.conf
owner: root
group: root
mode: 0644
notify:
- restart saslauthd
- name: Copy saslauthd defaults
copy:
src: saslauthd-defaults
dest: /etc/default/saslauthd
owner: root
group: root
mode: 0644
notify:
- restart saslauthd
- name: Copy smtpd.conf
copy:
src: smtpd.conf
dest: /etc/postfix/sasl/smtpd.conf
owner: root
group: root
mode: 0644
notify:
- restart postfix
- name: Add postfix to sasl group
user:
name: postfix
append: yes
groups: sasl
notify:
- restart postfix
- name: remove exim4 package
apt:
name: exim4
state: absent
- name: copy postfix config
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: root
group: root
mode: 0644
with_items:
- { src: "main.cf.j2", dest: "/etc/postfix/main.cf" }
- { src: "master.cf.j2", dest: "/etc/postfix/master.cf" }
- { src: "virtual-aliases.cf.j2", dest: "/etc/postfix/virtual-aliases.cf" }
- { src: "header_checks.j2", dest: "/etc/postfix/header_checks" }
notify:
- restart postfix
- name: copy postfix maps
template:
src: maps.j2
dest: "{{ item }}"
owner: root
group: root
mode: 0644
with_items: "{{ postfix.postfixmaps }}"
notify:
- restart postfix
- name: create virtual table
template:
src: virtual.in.j2
dest: /etc/postfix/virtual.in
owner: root
group: root
mode: 0644
register: create_virtual_table
- name: check virtual table db
loop:
- /etc/postfix/virtual.in
- /etc/postfix/virtual.db
ansible.builtin.stat:
path: '{{ item }}'
register: virtual_table_stats
- name: update virtual table db
when: create_virtual_table.changed
or not virtual_table_stats.results[1].stat.exists
or virtual_table_stats.results[0].stat.mtime > virtual_table_stats.results[1].stat.mtime
ansible.builtin.shell: 'postmap hash:/etc/postfix/virtual.in && mv /etc/postfix/virtual.in.db /etc/postfix/virtual.db'
- name: create sender logins table
template:
src: sender_logins.in.j2
dest: /etc/postfix/sender_logins.in
owner: root
group: root
mode: 0644
register: create_sender_logins_table
- name: check sender logins table db
loop:
- /etc/postfix/sender_logins.in
- /etc/postfix/sender_logins.db
ansible.builtin.stat:
path: '{{ item }}'
register: sender_logins_table_stats
- name: update sender logins table db
when: create_sender_logins_table.changed
or not sender_logins_table_stats.results[1].stat.exists
or sender_logins_table_stats.results[0].stat.mtime > sender_logins_table_stats.results[1].stat.mtime
ansible.builtin.shell: 'postmap hash:/etc/postfix/sender_logins.in && mv /etc/postfix/sender_logins.in.db /etc/postfix/sender_logins.db'