Newer
Older
---
# file: roles/borgbackup/tasks/app.yml
- block:
- name: Ensure directories
file:
path: '{{ application_root }}/{{ item }}'
state: directory
mode: 0775
with_items:
- borgconfig
- borgdata/ssh
- name: Environment file
copy:
content: BORG_PASSPHRASE={{ borg_passphrase }}
dest: '{{ application_root }}/borgconfig/.env'
owner: root
group: root
mode: 0644
- name: SSH Key
copy:
content: '{{ borg_ssh_key }}'
dest: '{{ application_root }}/borgdata/ssh/id_rsa'
owner: root
group: root
mode: 0600
notify:
- Init Borg App
- name: SSH Config
copy:
content: StrictHostKeyChecking no
dest: '{{ application_root }}/borgdata/ssh/config'
owner: root
group: root
mode: 0600
- name: Configuration file
template:
src: app.yaml
dest: '{{ application_root }}/borgconfig/config.yaml'
mode: 0600
- name: Crontabs
copy:
content: |
55 */6 * * * PATH=$PATH:/usr/bin /usr/bin/borgmatic --stats -v 0 2>&1 && {{ lookup('healthchecks', '', user='root', jobname=['Backup', application, application_id]|join(' '), schedule='55 */6 * * *', disabled=crons_disabled|default(false)) }}
30 23 1 * * PATH=$PATH:/usr/bin /usr/local/bin/borgmatic --check -v 0 2>&1 && {{ lookup('healthchecks', '', user='root', jobname=['Check Backup', application, application_id]|join(' '), schedule='30 23 1 * *', disabled=crons_disabled|default(false)) }}
dest: '{{ application_root }}/borgconfig/crontab.txt'
owner: root
group: root
mode: 0644
- name: Docker compose service
set_fact:
docker_compose_borgmatic_service:
image: 'b3vis/borgmatic:base-1.2.0-1.6.0'
restart: unless-stopped
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /usr/local/bin/alertalerta.py:/usr/local/bin/alertalerta.py
- '{{ application_backup_source }}:/mnt/source:ro'
- '{{ application_root }}/borgconfig:/etc/borgmatic.d/'
- '{{ application_root }}/borgdata/files:/mnt/borg-repository'
- '{{ application_root }}/borgdata/config:/root/.config/borg'
- '{{ application_root }}/borgdata/ssh:/root/.ssh'
- '{{ application_root }}/borgdata/cache:/root/.cache/borg'
env_file: './borgconfig/.env'
tags:
- deploy