- 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 }}"