self-hosting/roles/mailserver_database/tasks/main.yml

59 lines
1.4 KiB
YAML
Raw Normal View History

2024-01-05 18:58:27 +01:00
---
- name: Install needed packages
become: true
ansible.builtin.apt:
name:
- postgresql
- postfix-pgsql
- python3-psycopg2
- acl
- name: Create postgresql users
become: true
become_user: postgres
loop:
- "{{ mailserver_database.admin_user }}"
- "{{ mailserver_database.ro_user }}"
community.postgresql.postgresql_user:
name: "{{ item.name }}"
state: present
password: "{{ item.pwd }}"
- name: Create postgresql database
become: true
become_user: postgres
community.postgresql.postgresql_db:
name: "{{ mailserver_database.db }}"
owner: "{{ mailserver_database.admin_user.name }}"
state: present
2024-01-05 21:40:13 +01:00
- name: Upload postgresql tables script
become: true
become_user: postgres
2024-01-12 20:44:44 +01:00
ansible.builtin.template:
src: tables.sql.j2
2024-01-05 21:40:13 +01:00
dest: ~/mailserver_tables.sql
2024-07-24 17:55:46 +02:00
mode: "600"
notify: Create postgresql tables
2024-01-05 21:40:13 +01:00
- name: Make sure tables are created before setting permissions
ansible.builtin.meta: flush_handlers
2024-01-05 21:40:13 +01:00
- name: Set privileges for postgresql RO user
become: true
become_user: postgres
community.postgresql.postgresql_privs:
database: "{{ mailserver_database.db }}"
roles: "{{ mailserver_database.ro_user.name }}"
privs: select
objs: ALL_IN_SCHEMA
state: present
- name: Upload mailserver-manage.sh script
become: true
ansible.builtin.template:
src: mailserver-manage.sh.j2
dest: /usr/local/bin/mailserver-manage.sh
mode: "700"