78 lines
2.3 KiB
YAML
78 lines
2.3 KiB
YAML
---
|
|
- name: Ensure mail service user exists
|
|
ansible.builtin.user:
|
|
name: "{{ mailserver.service_user }}"
|
|
groups:
|
|
- "{{ mailserver.service_group }}"
|
|
append: true
|
|
system: true
|
|
shell: /usr/sbin/nologin
|
|
create_home: false
|
|
|
|
- name: Ensure mailserver directories exist
|
|
ansible.builtin.file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: "{{ mailserver.service_user }}"
|
|
group: "{{ mailserver.service_group }}"
|
|
mode: "0755"
|
|
loop:
|
|
- "{{ mailserver.path }}"
|
|
- "{{ mailserver.path }}/docker-data"
|
|
- "{{ mailserver.path }}/docker-data/dms/mail-data"
|
|
- "{{ mailserver.path }}/docker-data/dms/mail-state"
|
|
- "{{ mailserver.path }}/docker-data/dms/mail-logs"
|
|
- "{{ mailserver.path }}/docker-data/dms/config"
|
|
|
|
- name: Render mailserver environment file
|
|
ansible.builtin.template:
|
|
src: mailserver.env.j2
|
|
dest: "{{ mailserver.path }}/mailserver.env"
|
|
owner: "{{ mailserver.service_user }}"
|
|
group: "{{ mailserver.service_group }}"
|
|
mode: "0640"
|
|
register: mailserver_env
|
|
|
|
- name: Render mailserver accounts file
|
|
ansible.builtin.copy:
|
|
dest: "{{ mailserver.path }}/docker-data/dms/config/postfix-accounts.cf"
|
|
content: "{{ vault_mailserver_accounts | default('# add mail accounts here\n') }}"
|
|
owner: "{{ mailserver.service_user }}"
|
|
group: "{{ mailserver.service_group }}"
|
|
mode: "0600"
|
|
register: mailserver_accounts
|
|
|
|
- name: Render mailserver compose file
|
|
ansible.builtin.template:
|
|
src: compose.yaml.j2
|
|
dest: "{{ mailserver.path }}/compose.yaml"
|
|
owner: "{{ mailserver.service_user }}"
|
|
group: "{{ mailserver.service_group }}"
|
|
mode: "0640"
|
|
register: mailserver_compose
|
|
|
|
- name: Install mailserver compose systemd unit
|
|
ansible.builtin.template:
|
|
src: mailserver-compose.service.j2
|
|
dest: /etc/systemd/system/mailserver-compose.service
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
register: mailserver_unit
|
|
|
|
- name: Reload systemd for mailserver unit changes
|
|
ansible.builtin.systemd_service:
|
|
daemon_reload: true
|
|
when: mailserver_unit.changed
|
|
|
|
- name: Enable mailserver compose stack
|
|
ansible.builtin.service:
|
|
name: mailserver-compose
|
|
state: >-
|
|
{{
|
|
'restarted'
|
|
if (mailserver_env.changed or mailserver_accounts.changed or mailserver_compose.changed or mailserver_unit.changed)
|
|
else 'started'
|
|
}}
|
|
enabled: true
|