--- - name: Set postgresql installation directory set_fact: postgres_dir: '/etc/postgresql/{{ postgres.version }}/main' - name: Install postgresql apt: update_cache: true name: postgresql state: present register: apt_result retries: 3 until: apt_result is succeeded - name: Ensure main postgresql directory exists file: path: '{{ postgres_dir }}' state: directory owner: postgres group: postgres mode: 0755 - name: Ensure configuration directory exists file: path: '{{ postgres_dir }}/conf.d' state: directory owner: postgres group: postgres mode: 0755 - name: Configuration of postgresql {{ postgres.version }} template: src: postgresql/postgresql.conf.j2 dest: '{{ postgres_dir }}/postgresql.conf' mode: 0640 owner: postgres group: postgres notify: - reload postgresql - name: Master of configuration of postgresql {{ postgres.version }} template: src: 'postgresql/{{ item }}.j2' dest: '{{ postgres_dir }}/{{ item }}' mode: 0640 owner: postgres group: postgres loop: - pg_hba.conf - pg_ident.conf notify: - reload postgresql when: 'not(postgres.replica | default(False))' - name: Create backup directory file: path: "{{ postgres.backup.dir }}" owner: postgres group: postgres state: directory mode: 0770 when: postgres.backup is defined - name: Create backup cron template: src: cron.d/pg_dump.j2 dest: /etc/cron.d/pg_dump when: postgres.backup is defined