ansible-role-postgresql/tasks/main.yml

44 lines
1.3 KiB
YAML

- name: Install packages.
tags: postgresql
become: true
ansible.builtin.package:
name:
- postgresql
- postgresql-client
- python3-psycopg2
- name: Create databases.
become: true
become_user: postgres
tags: postgresql
community.postgresql.postgresql_db:
encoding: "{{ item.encoding | default('utf8') }}"
target: "{{ item.target | default(omit) }}"
name: "{{ item.name }}"
state: "{{ item.state | default('present') }}"
with_items: "{{ psql_databases }}"
- name: Create database users.
become: true
become_user: postgres
tags: postgresql
community.postgresql.postgresql_user:
name: "{{ item.name }}"
host: "{{ item.host | default(omit) }}"
password: "{{ item.password | default(omit) }}"
state: "{{ item.state | default('present') }}"
with_items: "{{ psql_users }}"
- name: Create database privileges
become: true
become_user: postgres
tags: postgresql
community.postgresql.postgresql_privs:
db: "{{ item.db | default(omit) }}"
privs: "{{ item.privs | default('SELECT,INSERT,UPDATE') }}"
objs: "{{ item.objs }}"
type: "{{ item.type | default(omit) }}"
database: "{{ item.database | default(omit) }}"
roles: "{{ item.roles }}"
grant_option: "{{ item.grant_option | default('yes') }}"
with_items: "{{ psql_privileges }}"