add restore from backup support

This commit is contained in:
ace
2023-02-17 18:13:08 +03:00
parent 4f40c189f7
commit a2cfbde7e3
7 changed files with 42 additions and 40 deletions

View File

@ -7,7 +7,7 @@
tags: postgresql_configuration
- name: "PostgreSQL initdb"
become_user: "{{ postgresql_superuser_name }}"
become_user: "{{ postgresql_superuser_username }}"
shell: "/usr/lib/postgresql/{{ postgresql_major_version }}/bin/initdb -D {{ postgresql_data_dir }} --auth-local peer --auth-host {{ postgresql_password_encryption_algorithm }} --no-instructions"
register: initdb
changed_when: "'exists but is not empty' not in initdb.stderr"

View File

@ -23,6 +23,23 @@
disable_gpg_check: yes
register: postgresql_setup
- name: Include data direcory
include_tasks: data_dir.yaml
- name: Include WAL-G role
ansible.builtin.include_role:
name: wal-g
vars:
wal_g_pg: yes
wal_g_pg_home_dir: "{{ postgresql_base_dir }}"
wal_g_pg_data_dir: "{{ postgresql_data_dir }}"
wal_g_restore: "{{ postgresql_wal_g_restore }}"
when: postgresql_wal_g_install
- name: Include PostgreSQL restore
include_tasks: restore.yaml
when: postgresql_wal_g_restore
- name: PostgreSQL Initdb
shell: "/usr/pgsql-{{ postgresql_major_version }}/bin/postgresql-{{ postgresql_major_version }}-setup initdb"
register: initdb
@ -32,11 +49,3 @@
- name: "Configure PostgreSQL"
include_tasks: config.yaml
tags: postgresql_configuration
- name: Include WAL-G role
ansible.builtin.include_role:
name: wal-g
vars:
wal_g_pg: yes
when: postgresql_wal_g_install

View File

@ -1,10 +1,10 @@
- name: "Add host to {{ postgresql_group }} group"
- name: "Add host to {{ postgresql_play_group }} group"
add_host:
groups: "{{ postgresql_group }}"
groups: "{{ postgresql_play_group }}"
hostname: "{{ hostvars[item]['inventory_hostname'] }}"
ansible_host: "{{ hostvars[item]['ansible_host'] | default(omit) }}"
loop: "{{ ansible_play_hosts }}"
when: groups[postgresql_group] is not defined
when: groups[postgresql_play_group] is not defined
changed_when: false
- name: Install python3-cryptography as dependence
@ -31,7 +31,7 @@
when: postgresql_cert is defined
- name: Generate OpenSSL key and cert for PostgreSQL
when: "inventory_hostname == groups[postgresql_group]|first"
when: "inventory_hostname == groups[postgresql_play_group]|first"
block:
- name: Generate an OpenSSL private CA key with the default values (4096 bits, RSA)
community.crypto.openssl_privatekey:
@ -78,17 +78,17 @@
- name: Generate PostgreSQL subject_alt_ips from ansible_host
set_fact:
postgresql_server_subject_alt_ips_from_ansible_host: "{{ groups[postgresql_group] | default([]) | map('extract', hostvars, ['ansible_host']) | map('regex_replace', '^', 'IP:') | list }}"
postgresql_server_subject_alt_ips_from_ansible_host: "{{ groups[postgresql_play_group] | default([]) | map('extract', hostvars, ['ansible_host']) | map('regex_replace', '^', 'IP:') | list }}"
when: hostvars[inventory_hostname]['ansible_host'] is defined
- name: Generate PostgreSQL subject_alt_ips from default ipv4 address
set_fact:
postgresql_server_subject_alt_ips: "{{ groups[postgresql_group] | default([]) | map('extract', hostvars, ['ansible_default_ipv4', 'address']) | map('regex_replace', '^', 'IP:') | list }}"
postgresql_server_subject_alt_ips: "{{ groups[postgresql_play_group] | default([]) | map('extract', hostvars, ['ansible_default_ipv4', 'address']) | map('regex_replace', '^', 'IP:') | list }}"
when: hostvars[inventory_hostname]['ansible_default_ipv4']['address'] is defined
- name: Generate PostgreSQL subject_alt_names
set_fact:
postgresql_server_subject_alt_names: "{{ groups[postgresql_group] | default([]) | map('extract', hostvars, ['inventory_hostname']) | map('regex_replace', '^', 'DNS:') | list }}"
postgresql_server_subject_alt_names: "{{ groups[postgresql_play_group] | default([]) | map('extract', hostvars, ['inventory_hostname']) | map('regex_replace', '^', 'DNS:') | list }}"
- name: Generate an OpenSSL Certificate Signing Request for client
community.crypto.openssl_csr:

View File

@ -12,25 +12,10 @@
- "vars"
tags: postgresql_vars
- name: Load host variables to override role vars
include_vars:
dir: "{{ inventory_dir }}/host_vars"
ignore_unknown_extensions: True
extensions:
- ''
- "yaml"
- "yml"
tags: postgresql_override_role_vars
- name: Load group variables to override role vars
include_vars:
dir: "{{ inventory_dir }}/group_vars"
ignore_unknown_extensions: True
extensions:
- ''
- "yaml"
- "yml"
tags: postgresql_override_role_vars
- name: Set facts about needed vars
set_fact:
postgresql_base_dir: "{{ postgresql_base_dir }}"
postgresql_data_dir: "{{ postgresql_data_dir }}"
- name: "Set locale for PostgreSQL"
include_tasks: locale.yaml

View File

@ -5,6 +5,6 @@
ansible_python_interpreter: '/usr/bin/env python3'
community.postgresql.postgresql_user:
db: "{{ postgresql_superuser_db }}"
name: "{{ postgresql_superuser_name }}"
name: "{{ postgresql_superuser_username }}"
password: "{{ postgresql_superuser_password }}"
state: present