30 lines
849 B
YAML
30 lines
849 B
YAML
- name: Ensure postgresql is installed
|
|
ansible.builtin.apt:
|
|
name:
|
|
- postgresql
|
|
become: true
|
|
|
|
- name: Ensure Python library for community.postgresql is installed if needed
|
|
ansible.builtin.apt:
|
|
name:
|
|
- python3-psycopg
|
|
become: true
|
|
when: postgresql__dbs != [ ] or postgresql__users != [ ]
|
|
|
|
- name: Ensure users
|
|
community.postgresql.postgresql_user:
|
|
name: "{{ item.name }}"
|
|
password: "{{ item.password | default('') }}"
|
|
become: true
|
|
become_user: postgres
|
|
loop: "{{ postgresql__users }}"
|
|
loop_control:
|
|
label: "user {{ item.name }} with {{ 'a password' if item.password is defined else 'no password' }}"
|
|
|
|
- name: Ensure dbs with owners
|
|
community.postgresql.postgresql_db:
|
|
name: "{{ item.name }}"
|
|
owner: "{{ item.owner }}"
|
|
become: true
|
|
become_user: postgres
|
|
loop: "{{ postgresql__dbs }}"
|