--- - 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: 0700 - name: Populate postgresql directory ansible.builtin.command: cmd: "/usr/lib/postgresql/{{ pg_version }}/bin/initdb -E UTF-8 /srv/postgresql/" creates: /srv/postgresql/PG_VERSION become: true become_user: postgres notify: Restart postgres - name: Put main configuration files ansible.builtin.copy: src: "{{ item.src }}" dest: "{{ item.dest }}" mode: "{{ item.mode }}" loop: - {src: "files/postgresql.conf", dest: "/etc/postgresql/{{ pg_version }}/main/postgresql.conf", mode: "0644"} - {src: "files/pg_hba.conf", dest: "/etc/postgresql/{{ pg_version }}/main/pg_hba.conf", mode: "0640"} notify: Restart postgres - name: Create backup dir ansible.builtin.file: path: /srv/backup/pgsql owner: postgres group: postgres state: directory mode: 0755 - 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"