mirror of
https://gitea.0xace.cc/ansible-galaxy/wal-g.git
synced 2025-07-03 18:33:09 +00:00
first commit
This commit is contained in:
29
tasks/backup_job.yaml
Normal file
29
tasks/backup_job.yaml
Normal file
@ -0,0 +1,29 @@
|
||||
- name: Install curl and jq
|
||||
dnf:
|
||||
name:
|
||||
- jq
|
||||
- curl
|
||||
state: present
|
||||
|
||||
- name: Template backup script
|
||||
template:
|
||||
src: backup.sh.j2
|
||||
dest: "{{ wal_g_pg_home_dir }}/backup.sh"
|
||||
mode: 0755
|
||||
owner: "{{ wal_g_pg_backup_owner }}"
|
||||
group: "{{ wal_g_pg_backup_group }}"
|
||||
|
||||
- name: Template systemd backup service
|
||||
template:
|
||||
src: backup.service.j2
|
||||
dest: /etc/systemd/system/backup.service
|
||||
notify: Daemon reload backup service
|
||||
register: backup_service
|
||||
|
||||
- name: Reload systemd backup service
|
||||
systemd:
|
||||
name: backup.service
|
||||
enabled: no
|
||||
masked: no
|
||||
daemon_reload: yes
|
||||
when: not backup_service.changed
|
15
tasks/backup_job_timer.yaml
Normal file
15
tasks/backup_job_timer.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
- name: Template systemd backup timer
|
||||
template:
|
||||
src: backup.timer.j2
|
||||
dest: /etc/systemd/system/backup.timer
|
||||
notify: Restart backup timer
|
||||
register: backup_timer
|
||||
|
||||
- name: Enable and start systemd backup timer
|
||||
systemd:
|
||||
name: backup.timer
|
||||
enabled: yes
|
||||
masked: no
|
||||
state: started
|
||||
daemon_reload: yes
|
||||
when: not backup_timer.changed
|
29
tasks/backup_permanent_job.yaml
Normal file
29
tasks/backup_permanent_job.yaml
Normal file
@ -0,0 +1,29 @@
|
||||
- name: Install curl and jq
|
||||
dnf:
|
||||
name:
|
||||
- jq
|
||||
- curl
|
||||
state: present
|
||||
|
||||
- name: Template backup permanent script
|
||||
template:
|
||||
src: backup-permanent.sh.j2
|
||||
dest: "{{ wal_g_pg_home_dir }}/backup-permanent.sh"
|
||||
mode: 0755
|
||||
owner: "{{ wal_g_pg_backup_owner }}"
|
||||
group: "{{ wal_g_pg_backup_group }}"
|
||||
|
||||
- name: Template systemd backup permanent service
|
||||
template:
|
||||
src: backup-permanent.service.j2
|
||||
dest: /etc/systemd/system/backup-permanent.service
|
||||
notify: Daemon reload backup permanent service
|
||||
register: backup_permanent_service
|
||||
|
||||
- name: Reload systemd backup permanent service
|
||||
systemd:
|
||||
name: backup-permanent.service
|
||||
enabled: no
|
||||
masked: no
|
||||
daemon_reload: yes
|
||||
when: not backup_permanent_service.changed
|
15
tasks/backup_permanent_job_timer.yaml
Normal file
15
tasks/backup_permanent_job_timer.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
- name: Template systemd backup permanent timer
|
||||
template:
|
||||
src: backup-permanent.timer.j2
|
||||
dest: /etc/systemd/system/backup-permanent.timer
|
||||
notify: Restart backup permanent timer
|
||||
register: backup_permanent_timer
|
||||
|
||||
- name: Enable and start systemd backup permanent timer
|
||||
systemd:
|
||||
name: backup-permanent.timer
|
||||
enabled: yes
|
||||
masked: no
|
||||
state: started
|
||||
daemon_reload: yes
|
||||
when: not backup_permanent_timer.changed
|
30
tasks/backup_retention_job.yaml
Normal file
30
tasks/backup_retention_job.yaml
Normal file
@ -0,0 +1,30 @@
|
||||
- name: Install curl and jq
|
||||
dnf:
|
||||
name:
|
||||
- jq
|
||||
- curl
|
||||
state: present
|
||||
|
||||
- name: Template backup retention script
|
||||
template:
|
||||
src: backup-retention.sh.j2
|
||||
dest: "{{ wal_g_pg_home_dir }}/backup-retention.sh"
|
||||
mode: 0755
|
||||
owner: "{{ wal_g_pg_backup_owner }}"
|
||||
group: "{{ wal_g_pg_backup_group }}"
|
||||
|
||||
- name: Template systemd backup retention service
|
||||
template:
|
||||
src: backup-retention.service.j2
|
||||
dest: /etc/systemd/system/backup-retention.service
|
||||
notify: Daemon reload backup retention service
|
||||
register: backup_retention_service
|
||||
|
||||
- name: Reload systemd backup retention service
|
||||
systemd:
|
||||
name: backup-retention.service
|
||||
enabled: no
|
||||
masked: no
|
||||
daemon_reload: yes
|
||||
when: not backup_retention_service.changed
|
||||
|
15
tasks/backup_retention_job_timer.yaml
Normal file
15
tasks/backup_retention_job_timer.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
- name: Template systemd backup retention timer
|
||||
template:
|
||||
src: backup-retention.timer.j2
|
||||
dest: /etc/systemd/system/backup-retention.timer
|
||||
notify: Restart backup retention timer
|
||||
register: backup_retention_timer
|
||||
|
||||
- name: Enable and start systemd backup retention timer
|
||||
systemd:
|
||||
name: backup-retention.timer
|
||||
enabled: yes
|
||||
masked: no
|
||||
state: started
|
||||
daemon_reload: yes
|
||||
when: not backup_retention_timer.changed
|
40
tasks/main.yml
Normal file
40
tasks/main.yml
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
- name: "Include install WAL-G {{ wal_g_version }} for PostgreSQL"
|
||||
include_tasks: pg.yaml
|
||||
when: wal_g_pg
|
||||
|
||||
- name: "Include backup job with WAL-G {{ wal_g_version }} for PostgreSQL"
|
||||
include_tasks: backup_job.yaml
|
||||
when:
|
||||
- wal_g_pg
|
||||
|
||||
- name: "Include backup job timer with WAL-G {{ wal_g_version }} for PostgreSQL"
|
||||
include_tasks: backup_job_timer.yaml
|
||||
when:
|
||||
- wal_g_pg
|
||||
- wal_g_backup_schedule is defined
|
||||
- wal_g_backup_schedule | length > 0
|
||||
|
||||
- name: "Include backup retention job with WAL-G {{ wal_g_version }} for PostgreSQL"
|
||||
include_tasks: backup_retention_job.yaml
|
||||
when:
|
||||
- wal_g_pg
|
||||
|
||||
- name: "Include backup retention job timer with WAL-G {{ wal_g_version }} for PostgreSQL"
|
||||
include_tasks: backup_retention_job_timer.yaml
|
||||
when:
|
||||
- wal_g_pg
|
||||
- wal_g_backup_retention_schedule is defined
|
||||
- wal_g_backup_retention_schedule | length > 0
|
||||
|
||||
- name: "Include permanent backup job with WAL-G {{ wal_g_version }} for PostgreSQL"
|
||||
include_tasks: backup_permanent_job.yaml
|
||||
when:
|
||||
- wal_g_pg
|
||||
|
||||
- name: "Include permanent backup job timer with WAL-G {{ wal_g_version }} for PostgreSQL"
|
||||
include_tasks: backup_permanent_job_timer.yaml
|
||||
when:
|
||||
- wal_g_pg
|
||||
- wal_g_backup_permanent_schedule is defined
|
||||
- wal_g_backup_permanent_schedule | length > 0
|
39
tasks/pg.yaml
Normal file
39
tasks/pg.yaml
Normal file
@ -0,0 +1,39 @@
|
||||
---
|
||||
- name: "Install EPEL"
|
||||
dnf:
|
||||
name: "epel-release"
|
||||
state: present
|
||||
|
||||
- name: "Install WAL-G for PostgreSQL"
|
||||
dnf:
|
||||
name: "wal-g{{ ('-' ~ wal_g_version) | default('') }}"
|
||||
state: installed
|
||||
update_cache: yes
|
||||
allow_downgrade: yes
|
||||
tags: wal-g, wal_g, wal_g_install
|
||||
|
||||
- name: "Gather packages"
|
||||
package_facts:
|
||||
manager: auto
|
||||
|
||||
- name: "Set fact about PostgreSQL package"
|
||||
set_fact:
|
||||
wal_g_postgresql_package: "{{ ansible_facts.packages | list | select('match', wal_g_pg_package_name_regex) | first }}"
|
||||
|
||||
- name: "Get PostgreSQL major version"
|
||||
set_fact:
|
||||
wal_g_postgresql_major_version: "{{ ansible_facts.packages[wal_g_postgresql_package][0]['version'] | split('.') | first }}"
|
||||
|
||||
- name: Merge user options for WAL-G part of config
|
||||
set_fact:
|
||||
wal_g_combined_config: "{{ wal_g_default_config | combine(wal_g_config|default({}), recursive=true) }}"
|
||||
|
||||
- name: "Generate conf file walg.json"
|
||||
copy:
|
||||
content: "{{ wal_g_combined_config | to_nice_json }}"
|
||||
dest: "{{ wal_g_pg_home_dir }}/.walg.json"
|
||||
owner: "{{ wal_g_pg_config_owner }}"
|
||||
group: "{{ wal_g_pg_config_group }}"
|
||||
mode: 0644
|
||||
tags: wal-g, wal_g, wal_g_conf
|
||||
|
Reference in New Issue
Block a user