ansible-role-mailserver/tasks/main.yml
2025-01-29 03:02:15 +01:00

138 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_domains_maps.cf
- pgsql/virtual_mailbox_maps.cf
- pgsql/virtual_sender_maps.cf
notify: restart postfix