From baa9bd7bed3e60854c34dbdd59c26b3a466bac81 Mon Sep 17 00:00:00 2001 From: nd <git@notandy.de> Date: Sat, 13 Mar 2021 21:00:27 +0100 Subject: [PATCH] added systemd services --- handlers/main.yml | 3 +++ tasks/main.yml | 17 ++++++++++++++++- templates/backup-check.j2 | 14 ++++++++++++++ templates/backup-check.service.j2 | 10 ++++++++++ templates/backup-full.j2 | 4 ---- templates/backup-retention.j2 | 4 ++++ templates/backup-retention.service.j2 | 10 ++++++++++ templates/backup-run.service.j2 | 10 ++++++++++ 8 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 handlers/main.yml create mode 100755 templates/backup-check.j2 create mode 100644 templates/backup-check.service.j2 create mode 100644 templates/backup-retention.service.j2 create mode 100644 templates/backup-run.service.j2 diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..c8e1021 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,3 @@ +- name: reload systemd + systemd: + daemon_reload: True diff --git a/tasks/main.yml b/tasks/main.yml index 45cd959..3674652 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -47,13 +47,28 @@ - backup-all-vms - backup-full - backup-cronjob + - backup-check template: src: "{{ item }}.j2" dest: "/usr/local/bin/{{ item }}" owner: root group: root - mode: 0700 + mode: 0755 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 file: path: /var/backup-client/ diff --git a/templates/backup-check.j2 b/templates/backup-check.j2 new file mode 100755 index 0000000..dd31399 --- /dev/null +++ b/templates/backup-check.j2 @@ -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 %} diff --git a/templates/backup-check.service.j2 b/templates/backup-check.service.j2 new file mode 100644 index 0000000..9f1dfb3 --- /dev/null +++ b/templates/backup-check.service.j2 @@ -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 + diff --git a/templates/backup-full.j2 b/templates/backup-full.j2 index ac525d0..a5956b8 100755 --- a/templates/backup-full.j2 +++ b/templates/backup-full.j2 @@ -7,7 +7,3 @@ set -euo pipefail {% if backups.mode in ['hypervisor-restic'] %} backup-all-vms {% endif %} -{% if backup_executor %} - backup-retention -{% endif %} - diff --git a/templates/backup-retention.j2 b/templates/backup-retention.j2 index 1a76bc4..478631d 100755 --- a/templates/backup-retention.j2 +++ b/templates/backup-retention.j2 @@ -7,6 +7,7 @@ source /etc/backup-client/retention.env # restic backend source /etc/backup-client/restic.env restic forget \ + --cleanup-cache \ --verbose \ --prune \ --group-by "host,paths,tags" \ @@ -17,3 +18,6 @@ restic forget \ --keep-yearly ${BACKUP_RETENTION_YEARS} {% endif %} +{% if not backup_backend %} +echo "Noop, backup is handled external" +{% endif %} diff --git a/templates/backup-retention.service.j2 b/templates/backup-retention.service.j2 new file mode 100644 index 0000000..1900494 --- /dev/null +++ b/templates/backup-retention.service.j2 @@ -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 + diff --git a/templates/backup-run.service.j2 b/templates/backup-run.service.j2 new file mode 100644 index 0000000..9f277f4 --- /dev/null +++ b/templates/backup-run.service.j2 @@ -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 + -- GitLab