1
0
Fork 0
mirror of https://github.com/roles-ansible/ansible_role_restic_archiver.git synced 2024-08-16 10:09:49 +02:00

replace template with better fitting content

This commit is contained in:
L3D 2020-11-20 15:56:30 +01:00
parent 154b659318
commit a075ace31b
No known key found for this signature in database
GPG key ID: 5215C3441797AB2B
3 changed files with 30 additions and 32 deletions

View file

@ -13,11 +13,16 @@
## Description
Description
----------------
[Restic](https://github.com/restic/restic) is a versatile Go based backup
solution which supports multiple backends, deduplication and incremental
backups.
This role is **only intended to clean up a restick backup**. So for example to keep only backups of the last 7 days and monthly backups. And if necessary to copy the backups again to an external storage.
----------------------
This role installs restic on a client, configures the backup repositories
and optionally sets up cronjobs to run said backups.
Aditionally, it will setup executable scripts to run a Backup manually.

View file

@ -39,12 +39,13 @@
- name: Setup CRON jobs
cron:
name: 'arillso.restic backup {{ item.name }}'
name: 'do1jlr.restic_archiver {{ item.name }}'
job: 'CRON=true {{ restic_script_dir }}/backup-{{ item.name }}.sh'
minute: '{{ item.schedule_minute | default("*") }}'
hour: '{{ item.schedule_hour | default("*") }}'
weekday: '{{ item.schedule_weekday | default("*") }}'
month: '{{ item.schedule_month | default("*") }}'
cron_file: '/etc/crontab'
state: present
become: true
no_log: true

View file

@ -1,30 +1,20 @@
#!/usr/bin/env bash
# {{ ansible_managed }}
# Backup script for {{ item.src|default('stdin') }}
# Use this file to create a Backup and prune existing data with one execution.
# This file is to cleanup your backup archive and move some snapshots to a external storage.
export RESTIC_REPOSITORY={{ restic_repos[item.repo].location }}
export RESTIC_PASSWORD='{{ restic_repos[item.repo].password | regex_replace('\'', '\'\\\'\'') }}'
BACKUP_NAME={{ item.name }}
{% if restic_repos[item.repo].aws_access_key is defined %}
export AWS_ACCESS_KEY_ID={{ restic_repos[item.repo].aws_access_key }}
{% endif %}
{% if restic_repos[item.repo].aws_secret_access_key is defined %}
export AWS_SECRET_ACCESS_KEY='{{ restic_repos[item.repo].aws_secret_access_key | regex_replace('\'', '\'\\\'\'') }}'
{% endif %}
{% if restic_repos[item.repo].aws_default_region is defined %}
export AWS_DEFAULT_REGION={{ restic_repos[item.repo].aws_default_region }}
{% endif %}
{% if restic_repos[item.repo].b2_account_id is defined %}
export B2_ACCOUNT_ID={{ restic_repos[item.repo].b2_account_id }}
{% endif %}
{% if restic_repos[item.repo].b2_account_key is defined %}
export B2_ACCOUNT_KEY={{ restic_repos[item.repo].b2_account_key }}
{% endif %}
{% if item.src is defined %}
BACKUP_SOURCE={{ item.src }}
{% endif %}
{% if item.src is defined -%}
# BACKUP_SOURCE={{ item.src }}
{%- endif %}
set -euxo pipefail
{#
Define Tags
#}
@ -37,6 +27,8 @@ set -euxo pipefail
{% macro keep_tags(tags) -%}
{% if tags is defined and (tags|length>0) %}{% for tag in tags %} --keep-tag {{ tag }}{% endfor %}{% endif %}
{%- endmacro %}
{#
Define Hostname
#}
@ -103,19 +95,19 @@ else
MODE_TAG="--tag cron"
fi
{% if item.stdin is defined and item.stdin == true %}
#{{ item.stdin_cmd }} | {{ restic_install_path }}/restic backup \
--stdin $MODE_TAG \
{{ tags(item.tags) }} \
{{ stdin_filename(item.stdin_filename) }} \
{% if item.exclude is defined %}{{ exclude(item.exclude) }}{% endif %} \
$@
# {{ item.stdin_cmd }} | {{ restic_install_path }}/restic backup \
# --stdin $MODE_TAG \
# {{ tags(item.tags) }} \
# {{ stdin_filename(item.stdin_filename) }} \
# {% if item.exclude is defined %}{{ exclude(item.exclude) }}{% endif %} \
# $@
{% else %}
#{{ restic_install_path }}/restic backup $BACKUP_SOURCE $MODE_TAG \
{{ tags(item.tags) }} \
{% if item.exclude is defined %}{{ exclude(item.exclude) }}{% endif %} \
$@
# {{ restic_install_path }}/restic backup $BACKUP_SOURCE $MODE_TAG \
# {{ tags(item.tags) }} \
# {% if item.exclude is defined %}{{ exclude(item.exclude) }}{% endif %} \
# $@
{% endif %}
{#
Define stdin forget commands
#}
{{ restic_install_path }}/restic forget --path {{ path(item) }} {{ retention_pattern(item) }} {% if item.prune is defined and item.prune == true %}--prune{% endif %}
{{ restic_install_path }}/restic forget {{ retention_pattern(item) }} {% if item.prune is defined and item.prune == true %}--prune{% endif %}