Skip to content
Snippets Groups Projects
Commit 823bd185 authored by Lars Beckers's avatar Lars Beckers
Browse files

Merge branch 'th/postgres-commvault' into 'master'

postgres: Add Commvault backup compatibility

See merge request !7
parents ab3e6886 cf43b64e
No related branches found
No related tags found
1 merge request!7postgres: Add Commvault backup compatibility
Pipeline #5377 passed
...@@ -2,3 +2,7 @@ ...@@ -2,3 +2,7 @@
postgres_pgdg_repo: false postgres_pgdg_repo: false
postgres_rsnapshot: false postgres_rsnapshot: false
postgres_commvault_compat: false
### Will be the version of the `postgresql` package if undefined
# postgres_version: 15
---
- name: Restart Postgres
systemd:
name: postgresql.service
state: restarted
...@@ -17,12 +17,24 @@ ...@@ -17,12 +17,24 @@
- name: ensure postgres packages are installed - name: ensure postgres packages are installed
apt: apt:
name: name:
# yamllint disable-line rule:line-length - postgresql{{
- postgresql{{ "-{}".format(postgres_version) if postgres_version is defined }} "-" + postgres_version|string if postgres_version is defined
}}
- python3-psycopg2 - python3-psycopg2
- libpq-dev - libpq-dev
state: present state: present
- when: postgres_version is not defined
block:
- name: Check installed software
package_facts:
manager: auto
- name: Set postgres_version
set_fact:
postgres_version: >-
{{ ansible_facts.packages.postgresql[0].version.split('+')[0] }}
- name: ensure legacy postgres packages are installed - name: ensure legacy postgres packages are installed
apt: apt:
name: name:
...@@ -62,3 +74,52 @@ ...@@ -62,3 +74,52 @@
file: file:
path: /etc/cron.d/postgres-snapshot path: /etc/cron.d/postgres-snapshot
state: absent 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
postgresql_set:
name: "{{ item.name }}"
value: "{{ item.value }}"
loop:
- name: archive_mode
value: "on"
- name: archive_command
value: 'cp %p /var/backups/pg_wal/%f'
notify:
- Restart Postgres
- name: Configure Postgres ident mappings
blockinfile:
path: /etc/postgresql/{{ postgres_version }}/main/pg_ident.conf
insertafter: '^# MAPNAME\s+SYSTEM-USERNAME\s+PG-USERNAME$'
block: '{{ lookup("template", "pg_ident.j2") }}'
vars:
postgres_ident_mappings:
- mapname: postgres
system_username: postgres
pg_username: postgres
- mapname: postgres
system_username: root
pg_username: postgres
notify:
- Restart Postgres
- name: Configure Postgres to use ident mapping for postgres role
postgresql_pg_hba:
dest: /etc/postgresql/{{ postgres_version }}/main/pg_hba.conf
contype: local
users: postgres
method: peer
options: map=postgres
notify:
- Restart Postgres
{% for i in postgres_ident_mappings %}
{{ "{mapname:15} {system_username:23} {pg_username}".format(**i) }}
{% endfor %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment