cloud-postgresql/tasks/setup_db.yml
2023-08-20 10:31:29 +02:00

42 lines
1.2 KiB
YAML
Executable File

---
- name: set DB related config options
set_fact:
local_db_name: "{{ db.name if 'name' in db else 'noentry' }}"
local_db_user: "{{ db.user if 'user' in db else 'noentry'}}"
local_db_pass: "{{ db.pass if 'pass' in db else 'noentry'}}"
local_db_user_privs: "{{ db.priv if 'priv' in db else 'all'}}"
- name: "create {{ local_db_user }} user"
postgresql_user:
state: present
name: "{{ local_db_user }}"
password: "{{ local_db_pass }}"
become: yes
become_user: "{{ psql_user }}"
when:
- local_db_user != 'noentry'
- local_db_pass != 'noentry'
- name: "setup {{ local_db_name }} database"
postgresql_db:
state: present
name: "{{ local_db_name }}"
owner: "{{ local_db_user }}"
become: yes
become_user: "{{ psql_user }}"
when:
- local_db_name != 'noentry'
- name: "Grant {{ local_db_user }} user access to {{ local_db_name }} database"
postgresql_privs:
type: database
database: "{{ local_db_name }}"
roles: "{{ local_db_user }}"
grant_option: yes
privs: "{{ local_db_user_privs }}"
become: yes
become_user: "{{ psql_user }}"
when:
- local_db_name != 'noentry'
- local_db_user != 'noentry'