--- - name: Postgres Servers hosts: postgres pre_tasks: - name: Postgres Repo ansible.builtin.dnf: name: 'https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm' state: present disable_gpg_check: true - name: Postgres RPMs ansible.builtin.dnf: name: - postgresql18-server - postgresql18-contrib state: latest tasks: - name: Create Database Logical Volume community.general.lvol: vg: data lv: pgdata size: 32G - name: Create Database Filesystem community.general.filesystem: fstype: xfs dev: /dev/data/pgdata - name: Mount filesystems ansible.posix.mount: path: '/var/lib/pgsql' src: '/dev/data/pgdata' opts: 'noatime' state: mounted fstype: "xfs" - name: Open Firewall port firewalld: # service: docker-registry service: postgresql permanent: true state: enabled immediate: yes when: ansible_facts['os_family'] == "RedHat" - name: PG Backup directory file: path: '/var/backups/postgres' state: directory mode: '0775' owner: postgres group: postgres - name: Backup script copy: src: 'bin/pg-backup' dest: '/usr/local/bin/pg-backup' mode: '0755' - name: Setup Postgres backup cron job ansible.builtin.cron: name: "pg-backup" minute: 30 hour: 23 job: /usr/local/bin/pg-backup