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

58 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:
2024-01-08 10:06:48 +01:00
- "{{ 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:
2024-01-08 10:06:48 +01:00
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
ansible.builtin.copy:
src: tables.sql
dest: ~/mailserver_tables.sql
mode: "644"
- name: Create postgresql tables
become: true
become_user: postgres
community.postgresql.postgresql_script:
2024-01-08 10:06:48 +01:00
db: "{{ mailserver_database_db }}"
2024-01-05 21:40:13 +01:00
path: ~/mailserver_tables.sql
2024-01-08 10:06:48 +01:00
login_user: "{{ mailserver_database_admin_user.name }}"
login_password: "{{ mailserver_database_admin_user.pwd }}"
2024-01-05 21:40:13 +01:00
login_host: 127.0.0.1
- name: Set privileges for postgresql RO user
become: true
become_user: postgres
community.postgresql.postgresql_privs:
2024-01-08 10:06:48 +01:00
database: "{{ mailserver_database_db }}"
roles: "{{ mailserver_database_ro_user.name }}"
privs: select
objs: ALL_IN_SCHEMA
state: present