--- - name: Install needed packages become: true ansible.builtin.apt: name: - postgresql - postfix-pgsql - python3-psycopg2 - acl - name: Create postgresql users become: true become_user: postgres loop: - "{{ mailserver_user }}" - "{{ mailserver_ro_user }}" community.postgresql.postgresql_user: name: "{{ item.name }}" state: present password: "{{ item.pwd }}" - name: Create postgresql database become: true become_user: postgres community.postgresql.postgresql_db: name: "{{ mailserver_database }}" owner: "{{ mailserver_user.name }}" state: present - name: Upload postgresql tables script become: true become_user: postgres ansible.builtin.copy: src: tables.sql dest: ~/mailserver_tables.sql mode: "644" - name: Create postgresql tables become: true become_user: postgres community.postgresql.postgresql_script: db: "{{ mailserver_database }}" path: ~/mailserver_tables.sql login_user: "{{ mailserver_user.name }}" login_password: "{{ mailserver_user.pwd }}" login_host: 127.0.0.1 - name: Set privileges for postgresql RO user become: true become_user: postgres community.postgresql.postgresql_privs: database: "{{ mailserver_database }}" roles: "{{ mailserver_ro_user.name }}" privs: select objs: ALL_IN_SCHEMA state: present