- name: install postgres apt: pkg: - postgresql - python3-psycopg2 - name: install python2 psycopg2 apt: pkg: - python-psycopg2 when: ansible_distribution_release == 'stretch' - name: generate pg_hba template: src: pg_hba.conf.j2 dest: "/etc/postgresql/{{ pg_version }}/main/pg_hba.conf" owner: postgres group: postgres mode: 0640 notify: - restart postgres - name: add postgresql dbs postgresql_db: name: "{{ item.key }}" become_user: postgres become: true with_dict: "{{ postgresql.dbs }}" - name: add postgresql user(s) postgresql_user: name: "{{ item.key }}" password: "{{ item.value }}" become_user: postgres become: true with_dict: "{{ postgresql.users }}" - name: add vacuum cronjob cron: name: db maintenance job: "/usr/bin/vacuumdb --all --analyze > /dev/null" user: postgres hour: "23" minute: "26" - include_tasks: backup.yml when: - postgresql.backup.enable - name: flush handlers so postgres is ready before other roles try to use it meta: flush_handlers