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

57 lines
1.4 KiB
YAML

---
- 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
- name: Upload postgresql tables script
become: true
become_user: postgres
ansible.builtin.template:
src: tables.sql.j2
dest: ~/mailserver_tables.sql
mode: "644"
- name: Create postgresql tables
become: true
become_user: postgres
community.postgresql.postgresql_script:
db: "{{ mailserver_database.db }}"
path: ~/mailserver_tables.sql
login_user: "{{ mailserver_database.admin_user.name }}"
login_password: "{{ mailserver_database.admin_user.pwd }}"
login_host: 127.0.0.1
- 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