140 lines
3 KiB
YAML
140 lines
3 KiB
YAML
- name: install packages
|
|
ansible.builtin.apt:
|
|
pkg:
|
|
- postfixadmin
|
|
- postfix
|
|
- postfix-pgsql
|
|
- prometheus-postfix-exporter
|
|
- postsrsd
|
|
- dovecot-common
|
|
- dovecot-imapd
|
|
- dovecot-managesieved
|
|
- dovecot-pgsql
|
|
|
|
- name: add vmail group
|
|
ansible.builtin.group:
|
|
name: vmail
|
|
system: true
|
|
|
|
- name: add vmail user
|
|
ansible.builtin.user:
|
|
name: vmail
|
|
group: vmail
|
|
home: /nonexistent
|
|
create_home: false
|
|
system: true
|
|
|
|
- name: create /var/mail/vmail
|
|
ansible.builtin.file:
|
|
path: /var/mail/vmail
|
|
state: directory
|
|
owner: vmail
|
|
group: vmail
|
|
mode: '0750'
|
|
|
|
# postfixadmin
|
|
- name: create postfixadmin group
|
|
ansible.builtin.group:
|
|
name: postfixadmin
|
|
system: true
|
|
|
|
- name: create postfixadmin user
|
|
ansible.builtin.user:
|
|
name: postfixadmin
|
|
group: postfixadmin
|
|
groups: www-data
|
|
home: /nonexistent
|
|
create_home: false
|
|
system: true
|
|
|
|
- name: copy postfixadmin config
|
|
ansible.builtin.template:
|
|
src: postfixadmin/config.local.php.j2
|
|
dest: /etc/postfixadmin/config.local.php
|
|
owner: root
|
|
group: postfixadmin
|
|
mode: "0640"
|
|
|
|
- name: fix access rights to postfixadmin template cache
|
|
ansible.builtin.file:
|
|
state: directory
|
|
owner: postfixadmin
|
|
group: postfixadmin
|
|
mode: 0700
|
|
path: /var/cache/postfixadmin/templates_c
|
|
|
|
# php_version and "restart php-fpm" handler from nginx role
|
|
- name: create postfixadmin php pool
|
|
ansible.builtin.template:
|
|
src: postfixadmin/php-fpm-pool.conf.j2
|
|
dest: "/etc/php/{{ php_version }}/fpm/pool.d/postfixadmin.conf"
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
notify:
|
|
- restart php-fpm
|
|
|
|
# dovecot
|
|
- name: copy dovecot config
|
|
ansible.builtin.template:
|
|
src: "dovecot/{{ item }}.j2"
|
|
dest: "/etc/dovecot/{{ item }}"
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
loop:
|
|
- dovecot.conf
|
|
- dovecot-sql.conf
|
|
- dovecot-dict-sql.conf
|
|
notify: restart dovecot
|
|
|
|
# prometheus-postfix-exporter
|
|
- name: configure prometheus postfix exporter
|
|
ansible.builtin.template:
|
|
src: prometheus-postfix-exporter/default.j2
|
|
dest: /etc/default/prometheus-postfix-exporter
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
notify:
|
|
- restart prometheus-postfix-exporter
|
|
|
|
# postsrsd
|
|
- name: configure postsrsd
|
|
ansible.builtin.template:
|
|
src: postsrsd/default.j2
|
|
dest: /etc/default/postsrsd
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
notify:
|
|
- restart postsrsd
|
|
|
|
# postfix
|
|
- name: create postfix psql config dir
|
|
ansible.builtin.file:
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
path: "/etc/postfix/pgsql"
|
|
|
|
- name: copy postfix config
|
|
ansible.builtin.template:
|
|
src: "postfix/{{ item }}.j2"
|
|
dest: "/etc/postfix/{{ item }}"
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
loop:
|
|
- main.cf
|
|
- master.cf
|
|
- header_checks
|
|
- pgsql/relay_domains.cf
|
|
- pgsql/virtual_alias_maps.cf
|
|
- pgsql/virtual_alias_domain_maps.cf
|
|
- pgsql/virtual_alias_domain_catchall_maps.cf
|
|
- pgsql/virtual_domains_maps.cf
|
|
- pgsql/virtual_mailbox_maps.cf
|
|
- pgsql/virtual_sender_maps.cf
|
|
notify: restart postfix
|