2024-01-05 18:58:27 +01:00
|
|
|
---
|
|
|
|
|
|
|
|
- name: Install needed packages
|
|
|
|
become: true
|
|
|
|
ansible.builtin.apt:
|
|
|
|
name:
|
|
|
|
- postgresql
|
|
|
|
- postfix-pgsql
|
2024-01-05 19:20:56 +01:00
|
|
|
- python3-psycopg2
|
|
|
|
- acl
|
|
|
|
|
|
|
|
- name: Create postgresql users
|
|
|
|
become: true
|
|
|
|
become_user: postgres
|
|
|
|
loop:
|
2024-01-10 09:23:56 +01:00
|
|
|
- "{{ mailserver_database.admin_user }}"
|
|
|
|
- "{{ mailserver_database.ro_user }}"
|
2024-01-05 19:20:56 +01:00
|
|
|
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:
|
2024-01-10 09:23:56 +01:00
|
|
|
name: "{{ mailserver_database.db }}"
|
|
|
|
owner: "{{ mailserver_database.admin_user.name }}"
|
2024-01-05 19:20:56 +01:00
|
|
|
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
|
|
|
|
mode: "644"
|
2024-01-17 09:58:15 +01:00
|
|
|
notify: Create postgresql tables
|
2024-01-05 21:40:13 +01:00
|
|
|
|
2024-01-17 09:58:15 +01:00
|
|
|
- name: Make sure tables are created before setting permissions
|
|
|
|
ansible.builtin.meta: flush_handlers
|
2024-01-05 21:40:13 +01:00
|
|
|
|
2024-01-05 19:20:56 +01:00
|
|
|
- name: Set privileges for postgresql RO user
|
|
|
|
become: true
|
|
|
|
become_user: postgres
|
|
|
|
community.postgresql.postgresql_privs:
|
2024-01-10 09:23:56 +01:00
|
|
|
database: "{{ mailserver_database.db }}"
|
|
|
|
roles: "{{ mailserver_database.ro_user.name }}"
|
2024-01-05 19:20:56 +01:00
|
|
|
privs: select
|
|
|
|
objs: ALL_IN_SCHEMA
|
|
|
|
state: present
|