2019-10-06 22:55:56 +02:00
|
|
|
---
|
|
|
|
|
# Server/Borgbackup: Install and Setup Borgbackup Backup Crobjob
|
|
|
|
|
# Variables (must be set!):
|
2019-11-12 21:06:04 +01:00
|
|
|
# - borgbackup_passphrase
|
|
|
|
|
# - borgbackup_repo
|
|
|
|
|
# - borgbackup_hostname
|
2019-10-06 22:55:56 +02:00
|
|
|
|
2023-04-28 23:25:21 +02:00
|
|
|
- name: Borgbackup - Install
|
2020-03-08 17:56:50 +01:00
|
|
|
when:
|
|
|
|
|
- borgbackup_passphrase is defined
|
|
|
|
|
- borgbackup_repo is defined
|
|
|
|
|
- borgbackup_hostname is defined
|
2022-02-13 20:52:02 +01:00
|
|
|
block:
|
2023-04-28 23:25:21 +02:00
|
|
|
- name: Borgbackup - Install application
|
2022-02-13 20:52:02 +01:00
|
|
|
ansible.builtin.include_tasks: "{{ item }}"
|
|
|
|
|
with_first_found:
|
2025-12-20 21:08:31 +01:00
|
|
|
- "borgbackup-{{ ansible_facts['distribution'] }}.{{ ansible_facts['distribution_release'] }}.yml"
|
|
|
|
|
- "borgbackup-{{ ansible_facts['distribution'] }}.yml"
|
|
|
|
|
- "borgbackup-{{ (override_os_family is defined) | ternary(override_os_family, ansible_facts['os_family']) }}.yml"
|
2022-02-13 20:52:02 +01:00
|
|
|
ignore_errors: true
|
2019-10-06 22:55:56 +02:00
|
|
|
|
2022-02-13 20:52:02 +01:00
|
|
|
# copy backup script and enable cronjob
|
2023-04-28 23:25:21 +02:00
|
|
|
- name: Borgbackup - Copy Borgbackup script
|
|
|
|
|
become: true
|
2022-02-13 20:52:02 +01:00
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: "{{ role_path }}/templates/borgbackup.sh"
|
|
|
|
|
dest: /usr/local/bin/borgbackup.sh
|
2025-12-20 21:08:31 +01:00
|
|
|
owner: "{{ ansible_facts['user_id'] }}"
|
|
|
|
|
group: "{{ ansible_facts['user_id'] }}"
|
2023-04-28 23:25:21 +02:00
|
|
|
mode: "0775"
|
|
|
|
|
- name: Borgbackup - Run Borgbackup script at 1:00 daily
|
|
|
|
|
become: true
|
2022-02-13 20:52:02 +01:00
|
|
|
ansible.builtin.cron:
|
|
|
|
|
name: "Create Backup"
|
|
|
|
|
minute: "0"
|
|
|
|
|
hour: "1"
|
|
|
|
|
job: "/usr/local/bin/borgbackup.sh"
|
2019-10-06 22:55:56 +02:00
|
|
|
|
|
|
|
|
# safeguard, if the host variables were removed
|
2023-04-28 23:25:21 +02:00
|
|
|
- name: Borgbackup - Uninstall
|
2022-02-13 20:52:02 +01:00
|
|
|
when: (borgbackup_passphrase is not defined) or (borgbackup_repo is not defined) or (borgbackup_hostname is not defined)
|
2019-11-12 21:06:04 +01:00
|
|
|
block:
|
2023-04-28 23:25:21 +02:00
|
|
|
- name: Borgbackup - Remove Borgbackup script if no borgbackup config
|
|
|
|
|
become: true
|
2021-08-28 16:50:37 +02:00
|
|
|
ansible.builtin.file:
|
2019-11-12 21:06:04 +01:00
|
|
|
path: /usr/local/bin/borgbackup.sh
|
|
|
|
|
state: absent
|
2023-04-28 23:25:21 +02:00
|
|
|
- name: Borgbackup - Remove Cronjob if no borgbackup config
|
|
|
|
|
become: true
|
2021-08-28 16:50:37 +02:00
|
|
|
ansible.builtin.cron:
|
2019-11-12 21:06:04 +01:00
|
|
|
name: "Create Backup"
|
|
|
|
|
minute: "0"
|
|
|
|
|
hour: "1"
|
|
|
|
|
job: "/usr/local/bin/borgbackup.sh"
|
|
|
|
|
state: absent
|