Files
k8scd/ansible/mailserver/roles/sogo/tasks/main.yml
T
2026-03-15 10:58:50 +01:00

89 lines
2.2 KiB
YAML

---
- name: Install PostgreSQL
ansible.builtin.apt:
name:
- postgresql
- postgresql-client
- python3-psycopg2
state: present
- name: Ensure PostgreSQL is running
ansible.builtin.systemd:
name: postgresql
enabled: true
state: started
- name: Create SOGo database user
become: true
become_user: postgres
community.postgresql.postgresql_user:
name: "{{ sogo_db_user }}"
password: "{{ sogo_db_password }}"
- name: Create SOGo database
become: true
become_user: postgres
community.postgresql.postgresql_db:
name: "{{ sogo_db_name }}"
owner: "{{ sogo_db_user }}"
- name: Grant SOGo user read access to Stalwart accounts
become: true
become_user: postgres
community.postgresql.postgresql_privs:
database: "stalwart"
roles: "{{ sogo_db_user }}"
type: table
objs: accounts,emails
privs: SELECT
- name: Download SOGo repository key
ansible.builtin.shell:
cmd: >
wget -qO- "https://keys.openpgp.org/vks/v1/by-fingerprint/74FFC6D72B925A34B5D356BDF8A27B36A6E2EAE9"
| gpg --dearmor > /etc/apt/trusted.gpg.d/sogo.gpg
creates: /etc/apt/trusted.gpg.d/sogo.gpg
- name: Add SOGo nightly repository
ansible.builtin.apt_repository:
repo: "deb https://packages.sogo.nu/nightly/5/ubuntu/ {{ ansible_facts['distribution_release'] }} {{ ansible_facts['distribution_release'] }}"
filename: sogo
state: present
- name: Install SOGo and dependencies
ansible.builtin.apt:
name:
- sogo
- sogo-activesync
- sope4.9-gdl1-postgresql
state: present
update_cache: true
- name: Disable Apache (installed as SOGo dependency, Nginx is used instead)
ansible.builtin.systemd:
name: apache2
enabled: false
state: stopped
failed_when: false
- name: Deploy SOGo configuration
ansible.builtin.template:
src: sogo.conf.j2
dest: /etc/sogo/sogo.conf
owner: sogo
group: sogo
mode: "0640"
notify: restart sogo
- name: Enable and start SOGo
ansible.builtin.systemd:
name: sogo
enabled: true
state: started
- name: Enable and start memcached
ansible.builtin.systemd:
name: memcached
enabled: true
state: started