added systemd services
This commit is contained in:
parent
420be44f56
commit
baa9bd7bed
8 changed files with 67 additions and 5 deletions
3
handlers/main.yml
Normal file
3
handlers/main.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
- name: reload systemd
|
||||||
|
systemd:
|
||||||
|
daemon_reload: True
|
||||||
|
|
@ -47,13 +47,28 @@
|
||||||
- backup-all-vms
|
- backup-all-vms
|
||||||
- backup-full
|
- backup-full
|
||||||
- backup-cronjob
|
- backup-cronjob
|
||||||
|
- backup-check
|
||||||
template:
|
template:
|
||||||
src: "{{ item }}.j2"
|
src: "{{ item }}.j2"
|
||||||
dest: "/usr/local/bin/{{ item }}"
|
dest: "/usr/local/bin/{{ item }}"
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: 0700
|
mode: 0755
|
||||||
validate: /bin/bash -n %s
|
validate: /bin/bash -n %s
|
||||||
|
- name: copy systemd services
|
||||||
|
notify:
|
||||||
|
- reload systemd
|
||||||
|
loop:
|
||||||
|
- backup-check
|
||||||
|
- backup-retention
|
||||||
|
- backup-run
|
||||||
|
template:
|
||||||
|
src: "{{ item }}.service.j2"
|
||||||
|
dest: "/etc/systemd/system/{{ item }}.service"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
# validate: /usr/bin/systemd-analyze verify %s
|
||||||
- name: create data folder
|
- name: create data folder
|
||||||
file:
|
file:
|
||||||
path: /var/backup-client/
|
path: /var/backup-client/
|
||||||
|
|
|
||||||
14
templates/backup-check.j2
Executable file
14
templates/backup-check.j2
Executable file
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
{% if backup_backend == 'restic' %}
|
||||||
|
# restic backend
|
||||||
|
source /etc/backup-client/restic.env
|
||||||
|
|
||||||
|
restic check --read-data
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if not backup_backend %}
|
||||||
|
echo "Noop, backup is handled external"
|
||||||
|
{% endif %}
|
||||||
10
templates/backup-check.service.j2
Normal file
10
templates/backup-check.service.j2
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Check backup consistency
|
||||||
|
OnFailure=status-email-root@%n.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Nice=19
|
||||||
|
IOSchedulingClass=idle
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/bin/backup-check
|
||||||
|
|
||||||
|
|
@ -7,7 +7,3 @@ set -euo pipefail
|
||||||
{% if backups.mode in ['hypervisor-restic'] %}
|
{% if backups.mode in ['hypervisor-restic'] %}
|
||||||
backup-all-vms
|
backup-all-vms
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if backup_executor %}
|
|
||||||
backup-retention
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ source /etc/backup-client/retention.env
|
||||||
# restic backend
|
# restic backend
|
||||||
source /etc/backup-client/restic.env
|
source /etc/backup-client/restic.env
|
||||||
restic forget \
|
restic forget \
|
||||||
|
--cleanup-cache \
|
||||||
--verbose \
|
--verbose \
|
||||||
--prune \
|
--prune \
|
||||||
--group-by "host,paths,tags" \
|
--group-by "host,paths,tags" \
|
||||||
|
|
@ -17,3 +18,6 @@ restic forget \
|
||||||
--keep-yearly ${BACKUP_RETENTION_YEARS}
|
--keep-yearly ${BACKUP_RETENTION_YEARS}
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if not backup_backend %}
|
||||||
|
echo "Noop, backup is handled external"
|
||||||
|
{% endif %}
|
||||||
|
|
|
||||||
10
templates/backup-retention.service.j2
Normal file
10
templates/backup-retention.service.j2
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Delete no longer needed backups
|
||||||
|
OnFailure=status-email-root@%n.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Nice=19
|
||||||
|
IOSchedulingClass=idle
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/bin/backup-retention
|
||||||
|
|
||||||
10
templates/backup-run.service.j2
Normal file
10
templates/backup-run.service.j2
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Backup system
|
||||||
|
OnFailure=status-email-root@%n.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Nice=19
|
||||||
|
IOSchedulingClass=idle
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/bin/backup-full
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue