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