--- /dev/null
+- name: Playbook to prepare the PosgreSQL databases
+ hosts: all
+ vars_files:
+ - ../vars/common.yaml
+ - ../vars/pg_vault.yaml
+ - ../vars/pg.yaml
+ tasks:
+ - name: Create primary groups
+ become: true
+ become_user: postgres
+ community.postgresql.postgresql_user:
+ name: "{{ item }}"
+ role_attr_flags: NOLOGIN
+ state: present
+ with_items: "{{ pg_databases }}"
+ - name: Create PostgreSQL database
+ become: true
+ become_user: postgres
+ community.postgresql.postgresql_db:
+ name: "{{ item }}"
+ state: present
+ with_items: "{{ pg_databases }}"
+ - name: Create POSTGIS extension
+ become: true
+ become_user: postgres
+ community.postgresql.postgresql_ext:
+ name: postgis
+ db: "{{ item }}"
+ state: present
+ with_items: "{{ pg_databases }}"
- "postgresql-{{ pg_version }}-ogr-fdw"
- "postgresql-{{ pg_version }}-mysql-fdw"
-pg_databases: []
+pg_databases:
+ - pggreenlab
+ - pggrlabtest
# Users with password:
# If password is empty the password is not known
pg_users:
- jonny: ''
+ wk: ''
+ reinhard: ''
+ roman: ''
# Groups are roles without login rights.
# Key: name of the role Value: the list of group members
# Convention: each database has a group with the same name
pg_groups:
- admins: [jonny]
+ admins: [wk, reinhard]
+ pgusers: [wk, reinhard, roman]
+ pggreenlab: [pgusers]
+ pggrlabtest: [pgusers]