Skip to content
Snippets Groups Projects
Commit 42b68751 authored by Thomas Schneider's avatar Thomas Schneider
Browse files

postgres: Add Commvault backup compatibility

parent 1014451f
No related branches found
No related tags found
No related merge requests found
Pipeline #4378 passed
......@@ -2,3 +2,11 @@
postgres_pgdg_repo: false
postgres_rsnapshot: false
postgres_commvault_compat: false
postgres_versions_debian:
buster: "11"
bullseye: "13"
bookworm: "14"
postgres_version: "{{ postgres_versions_debian[ansible_distribution_release] }}"
---
- name: Restart Postgres
systemd:
name: postgresql.service
state: restarted
......@@ -17,8 +17,7 @@
- name: ensure postgres packages are installed
apt:
name:
# yamllint disable-line rule:line-length
- postgresql{{ "-{}".format(postgres_version) if postgres_version is defined }}
- postgresql-{{ postgres_version }}
- python3-psycopg2
- libpq-dev
state: present
......@@ -41,6 +40,7 @@
block:
- name: ensure we have our postgres backup script
copy:
# yamllint disable-line rule:line-length
src: "pgbackup{{ '-bullseye' if ansible_distribution_major_version|int(default=99) > 10 else '' }}.sh"
dest: /usr/local/bin/pgbackup.sh
owner: root
......@@ -59,3 +59,49 @@
file:
path: /etc/cron.d/postgres-snapshot
state: absent
- name: Configure Commvault backup compatibility
when: postgres_commvault_compat
block:
- name: Create WAL backup directory
file:
path: /var/backups/pg_wal
state: directory
owner: postgres
group: postgres
mode: '0750'
- name: Configure Postgres WAL archive
lineinfile:
path: /etc/postgresql/{{ postgres_version }}/main/postgresql.conf
regexp: "{{ item.regexp }}"
line: "{{ item.line }}"
loop:
- regexp: ^archive_mode\s*=
line: archive_mode = on
- regexp: ^archive_command\s*=
line: archive_command = 'cp %p /var/backups/pg_wal/%f'
notify:
- Restart Postgres
- name: Configure Postgres ident mappings
lineinfile:
path: /etc/postgresql/{{ postgres_version }}/main/pg_ident.conf
regexp: "{{ item.regexp }}"
line: "{{ item.line }}"
loop:
- regexp: ^postgres\s+postgres\s+postgres$
line: "postgres\tpostgres\t\tpostgres"
- regexp: ^postgres\s+root\s+postgres$
line: "postgres\troot\t\t\tpostgres"
notify:
- Restart Postgres
- name: Configure Postgres to use ident mapping for postgres role
lineinfile:
path: /etc/postgresql/{{ postgres_version }}/main/pg_hba.conf
regexp: ^local\s+all\s+postgres\s+peer
# yamllint disable-line rule:line-length
line: "local all postgres peer map=postgres"
notify:
- Restart Postgres
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment