--- - name: Install postgresql ansible.builtin.package: name: postgresql state: present - name: Create pgsql directory ansible.builtin.file: path: /srv/postgresql owner: postgres group: postgres state: directory mode: "0o700" - name: Populate postgresql directory ansible.builtin.command: cmd: "/usr/lib/postgresql/{{ postgres_pg_version }}/bin/initdb -E UTF-8 /srv/postgresql/" creates: /srv/postgresql/PG_VERSION become: true become_user: postgres notify: Restart postgres - name: Put hba configuration files ansible.builtin.copy: src: "files/pg_hba.conf" dest: "/etc/postgresql/{{ postgres_pg_version }}/main/pg_hba.conf" mode: "0o640" notify: Restart postgres - name: Put main configuration files ansible.builtin.template: src: "postgresql.conf.j2" dest: "/etc/postgresql/{{ postgres_pg_version }}/main/postgresql.conf" mode: "0o644" - name: Create backup dir ansible.builtin.file: path: /srv/backup/pgsql owner: postgres group: postgres state: directory mode: "0o755" - name: Cron backup script ansible.builtin.cron: user: postgres minute: "0" hour: "4" name: PG Backup job: "/usr/bin/pg_dumpall | gzip -c > /srv/backup/pgsql/all.dbs.gz"