From e1d9aae46edb50d2a98588aea23e369843003537 Mon Sep 17 00:00:00 2001 From: Dieter Verhelst Date: Mon, 3 Sep 2018 20:48:47 +0200 Subject: [PATCH] Fixing restore-test --- molecule/clients/side_effect.yml | 2 +- molecule/commands/side_effect.yml | 2 +- molecule/folders/side_effect.yml | 2 +- molecule/generic_files/restore.sh.j2 | 37 +++++++++++++++++++++++++- molecule/generic_files/side_effect.yml | 17 ++++++++++++ molecule/lamp/side_effect.yml | 2 +- molecule/mgt/side_effect.yml | 2 +- molecule/multiple/side_effect.yml | 2 +- 8 files changed, 59 insertions(+), 7 deletions(-) mode change 120000 => 100644 molecule/generic_files/restore.sh.j2 create mode 100644 molecule/generic_files/side_effect.yml diff --git a/molecule/clients/side_effect.yml b/molecule/clients/side_effect.yml index 589163f..9bfbda0 120000 --- a/molecule/clients/side_effect.yml +++ b/molecule/clients/side_effect.yml @@ -1 +1 @@ -../restore/side_effect.yml \ No newline at end of file +../generic_files/side_effect.yml \ No newline at end of file diff --git a/molecule/commands/side_effect.yml b/molecule/commands/side_effect.yml index 589163f..9bfbda0 120000 --- a/molecule/commands/side_effect.yml +++ b/molecule/commands/side_effect.yml @@ -1 +1 @@ -../restore/side_effect.yml \ No newline at end of file +../generic_files/side_effect.yml \ No newline at end of file diff --git a/molecule/folders/side_effect.yml b/molecule/folders/side_effect.yml index 589163f..9bfbda0 120000 --- a/molecule/folders/side_effect.yml +++ b/molecule/folders/side_effect.yml @@ -1 +1 @@ -../restore/side_effect.yml \ No newline at end of file +../generic_files/side_effect.yml \ No newline at end of file diff --git a/molecule/generic_files/restore.sh.j2 b/molecule/generic_files/restore.sh.j2 deleted file mode 120000 index 7c4ac9c..0000000 --- a/molecule/generic_files/restore.sh.j2 +++ /dev/null @@ -1 +0,0 @@ -../restore/restore.sh.j2 \ No newline at end of file diff --git a/molecule/generic_files/restore.sh.j2 b/molecule/generic_files/restore.sh.j2 new file mode 100644 index 0000000..9367f00 --- /dev/null +++ b/molecule/generic_files/restore.sh.j2 @@ -0,0 +1,36 @@ +#!/bin/sh + +export BORG_PASSPHRASE="{{ borgbackup_passphrase }}" + +last_backup=`/usr/local/bin/borg-backup list | grep '^[0-9]' | awk ' { print $1 } ' | tail -1` + +if [ "$1" = "verify" ] + then +{% for b in borgbackup_servers %} +{% if b.type == 'hetzner' %} + REPOSITORY=ssh://{{ b.user }}@{{ b.fqdn }}:23/./{{ b.home }}{{ b.pool }}/{{ inventory_hostname }} +{% else %} + REPOSITORY={{ b.user }}@{{ b.fqdn }}:{{ b.home }}{{ b.pool }}/{{ inventory_hostname }} +{% endif %} + printf "verifying on {{ b.fqdn }} :\n" + /usr/local/bin/borg extract --list --dry-run $REPOSITORY::$last_backup root/sample.txt +{% endfor %} + exit 0 +fi + +if [ "$1" = "restore" ] + then + file="$2" +{% for b in borgbackup_servers %} +{% if b.type == 'hetzner' %} + REPOSITORY=ssh://{{ b.user }}@{{ b.fqdn }}:23/./{{ b.home }}{{ b.pool }}/{{ inventory_hostname }} +{% else %} + REPOSITORY={{ b.user }}@{{ b.fqdn }}:{{ b.home }}{{ b.pool }}/{{ inventory_hostname }} +{% endif %} + rm -rf /root/restore/{{ b.fqdn }} + mkdir -p /root/restore/{{ b.fqdn }} + cd /root/restore/{{ b.fqdn }} + /usr/local/bin/borg extract $REPOSITORY::$last_backup root/sample.txt +{% endfor %} + exit 0 +fi diff --git a/molecule/generic_files/side_effect.yml b/molecule/generic_files/side_effect.yml new file mode 100644 index 0000000..dcf0feb --- /dev/null +++ b/molecule/generic_files/side_effect.yml @@ -0,0 +1,17 @@ +--- +- hosts: all:!borgbackup_servers + gather_facts: false + tasks: + - name: generate random file + command: dd if=/dev/urandom of=/root/sample.txt bs=1M count=4 + args: + creates: /root/sample.txt + - name: template restore test + template: + src: restore.sh.j2 + dest: /root/restore.sh + mode: "0755" + - name: back up + command: /usr/local/bin/borg-backup backup + - name: restore test file + command: /root/restore.sh restore root/sample.txt diff --git a/molecule/lamp/side_effect.yml b/molecule/lamp/side_effect.yml index 589163f..9bfbda0 120000 --- a/molecule/lamp/side_effect.yml +++ b/molecule/lamp/side_effect.yml @@ -1 +1 @@ -../restore/side_effect.yml \ No newline at end of file +../generic_files/side_effect.yml \ No newline at end of file diff --git a/molecule/mgt/side_effect.yml b/molecule/mgt/side_effect.yml index 589163f..9bfbda0 120000 --- a/molecule/mgt/side_effect.yml +++ b/molecule/mgt/side_effect.yml @@ -1 +1 @@ -../restore/side_effect.yml \ No newline at end of file +../generic_files/side_effect.yml \ No newline at end of file diff --git a/molecule/multiple/side_effect.yml b/molecule/multiple/side_effect.yml index 589163f..9bfbda0 120000 --- a/molecule/multiple/side_effect.yml +++ b/molecule/multiple/side_effect.yml @@ -1 +1 @@ -../restore/side_effect.yml \ No newline at end of file +../generic_files/side_effect.yml \ No newline at end of file