--- - name: Add PostgreSQL GPG apt key apt_key: url: https://www.postgresql.org/media/keys/ACCC4CF8.asc keyring: /usr/share/keyrings/apt.postgresql.org.gpg state: present - name: Add PostgreSQL Repository apt_repository: repo: "deb [arch={{ deb_architecture }} signed-by=/usr/share/keyrings/apt.postgresql.org.gpg] \ http://apt.postgresql.org/pub/repos/apt {{ ansible_distribution_release }}-pgdg main" state: present update_cache: true - name: Install PostgreSQL apt: name: "postgresql-{{ pgsql_server_version }}" state: latest update_cache: true cache_valid_time: 3600 - name: Install required system packages apt: name: python3-psycopg2 # needed for postgresql ansible module state: latest update_cache: true cache_valid_time: 3600 - name: Set PostgreSQL parameters community.postgresql.postgresql_set: name: "{{ item.name }}" value: "{{ item.value }}" become_user: postgres register: postgresql_set loop: "{{ pgsql_config }}" notify: Restart postgresql - name: Set PostgreSQL Client Authentication community.postgresql.postgresql_pg_hba: dest: "/etc/postgresql/{{ pgsql_server_version }}/main/pg_hba.conf" overwrite: false # remove preexisting rules backup: true backup_file: "/etc/postgresql/{{ pgsql_server_version }}/main/pg_hba.conf.backup" # custom defaults rules_behavior: combine contype: host # custom rules rules: "{{ pgsql_client_auth }}" notify: Reload postgresql