mirror of
https://github.com/borgbase/ansible-role-borgbackup.git
synced 2025-05-20 01:15:09 +02:00
reworked timer install logic
This commit is contained in:
parent
7414f85e39
commit
ea619be53f
71
tasks/noauto_create_cronjobs.yml
Normal file
71
tasks/noauto_create_cronjobs.yml
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
---
|
||||||
|
- name: Add cron-job for borgmatic (large repo, create and check separate)
|
||||||
|
when:
|
||||||
|
- install_backup is not defined or install_backup
|
||||||
|
- borgmatic_timer is defined and borgmatic_timer == "cron"
|
||||||
|
- borgmatic_large_repo
|
||||||
|
tags:
|
||||||
|
- install_backup
|
||||||
|
block:
|
||||||
|
# I don't like to re-do the installation of packages here, but cron
|
||||||
|
# should not be one of the automatically installed packages since there
|
||||||
|
# is systemd-timer as an alternative.
|
||||||
|
- name: Install general dependencies (cron)
|
||||||
|
ansible.builtin.package:
|
||||||
|
name: "{{ borg_cron_package }}"
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add cron job for regular create and prune
|
||||||
|
cron:
|
||||||
|
name: "{{ borgmatic_timer_cron_name }}"
|
||||||
|
hour: "{{ borgmatic_timer_hour }}"
|
||||||
|
minute: "{{ borgmatic_timer_minute }}"
|
||||||
|
user: "{{ borgbackup_user }}"
|
||||||
|
cron_file: "{{ borgmatic_timer_cron_name }}"
|
||||||
|
job: "/usr/local/bin/borgmatic -C -p -c /etc/borgmatic/{{ borgmatic_config_name }}"
|
||||||
|
|
||||||
|
- name: Add cron job for infrequent checks
|
||||||
|
cron:
|
||||||
|
name: "{{ borgmatic_timer_cron_name }}-check"
|
||||||
|
day: "{{ borgmatic_timer_checks_day }}"
|
||||||
|
hour: "{{ borgmatic_timer_checks_hour }}"
|
||||||
|
minute: "{{ borgmatic_timer_checks_minute }}"
|
||||||
|
user: "{{ borgbackup_user }}"
|
||||||
|
cron_file: "{{ borgmatic_timer_cron_name }}"
|
||||||
|
job: "/usr/local/bin/borgmatic -k -c /etc/borgmatic/{{ borgmatic_config_name }}"
|
||||||
|
|
||||||
|
- name: Add cron-job for borgmatic (normal-sized repo)
|
||||||
|
when:
|
||||||
|
- install_backup is not defined or install_backup
|
||||||
|
- borgmatic_timer is defined and borgmatic_timer == "cron"
|
||||||
|
- not borgmatic_large_repo
|
||||||
|
tags:
|
||||||
|
- install_backup
|
||||||
|
block:
|
||||||
|
- name: Add cron job for create, check and prune
|
||||||
|
cron:
|
||||||
|
name: "{{ borgmatic_timer_cron_name }}"
|
||||||
|
hour: "{{ borgmatic_timer_hour }}"
|
||||||
|
minute: "{{ borgmatic_timer_minute }}"
|
||||||
|
user: "{{ borgbackup_user }}"
|
||||||
|
cron_file: "{{ borgmatic_timer_cron_name }}"
|
||||||
|
job: "/usr/local/bin/borgmatic -c /etc/borgmatic/{{ borgmatic_config_name }}"
|
||||||
|
|
||||||
|
- name: Ensure separate check cron job is absent
|
||||||
|
cron:
|
||||||
|
name: "{{ borgmatic_timer_cron_name }}-check"
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Set PATH for borgmatic cron job.
|
||||||
|
when:
|
||||||
|
- install_backup is not defined or install_backup
|
||||||
|
- borgmatic_timer is defined and borgmatic_timer == "cron"
|
||||||
|
tags:
|
||||||
|
- install_backup
|
||||||
|
cron:
|
||||||
|
user: "{{ borgbackup_user }}"
|
||||||
|
cron_file: "{{ borgmatic_timer_cron_name }}"
|
||||||
|
name: PATH
|
||||||
|
env: yes
|
||||||
|
value: /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||||
|
...
|
90
tasks/noauto_create_timer.yml
Normal file
90
tasks/noauto_create_timer.yml
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
---
|
||||||
|
- name: Create borgbackup timer
|
||||||
|
when:
|
||||||
|
- install_backup is not defined or install_backup
|
||||||
|
- borgmatic_timer is defined and borgmatic_timer == "systemd"
|
||||||
|
tags:
|
||||||
|
- install_backup
|
||||||
|
block:
|
||||||
|
- name: Add systemd.timer for borgmatic (large repo, create and check separate)
|
||||||
|
when: borgmatic_large_repo
|
||||||
|
block:
|
||||||
|
- name: Copy systemd files
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: "{{ item.src }}"
|
||||||
|
dest: "{{ item.dest }}"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
backup: true
|
||||||
|
mode: "{{ item.mode }}"
|
||||||
|
with_items:
|
||||||
|
- { src: "backup_large_repo_check.timer.j2", dest: "/usr/lib/systemd/system/backup_large_repo_check.timer", mode: "0644" }
|
||||||
|
- { src: "backup_large_repo_check.service.j2", dest: "/usr/lib/systemd/system/backup_large_repo_check.service", mode: "0644" }
|
||||||
|
- { src: "backup_large_repo.timer.j2", dest: "/usr/lib/systemd/system/backup_large_repo.timer", mode: "0644" }
|
||||||
|
- { src: "backup_large_repo.service.j2", dest: "/usr/lib/systemd/system/backup_large_repo.service", mode: "0644" }
|
||||||
|
|
||||||
|
- name: Populate service facts (large repo, create and check separate)
|
||||||
|
ansible.builtin.service_facts:
|
||||||
|
|
||||||
|
- name: Restart borgmatic services (large repo, create and check separate)
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: restarted
|
||||||
|
enabled: true
|
||||||
|
masked: false
|
||||||
|
daemon_reload: true
|
||||||
|
when: "item in services"
|
||||||
|
with_items:
|
||||||
|
- "backup_large_repo_check.service"
|
||||||
|
- "backup_large_repo.service"
|
||||||
|
|
||||||
|
# bug: Need own section without masked else the timer are skipped
|
||||||
|
- name: Restart borgmatic timers (large repo, create and check separate)
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
daemon_reload: true
|
||||||
|
with_items:
|
||||||
|
- "backup_large_repo_check.timer"
|
||||||
|
- "backup_large_repo.timer"
|
||||||
|
|
||||||
|
- name: Add systemd.timer for borgmatic (normal-sized repo)
|
||||||
|
when: not borgmatic_large_repo
|
||||||
|
block:
|
||||||
|
- name: Copy systemd files (normal-sized repo)
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: "{{ item.src }}"
|
||||||
|
dest: "{{ item.dest }}"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
backup: true
|
||||||
|
mode: "{{ item.mode }}"
|
||||||
|
with_items:
|
||||||
|
- { src: "backup_normal_repo.timer.j2", dest: "/usr/lib/systemd/system/backup_normal_repo.timer", mode: "0644" }
|
||||||
|
- { src: "backup_normal_repo.service.j2", dest: "/usr/lib/systemd/system/backup_normal_repo.service", mode: "0644" }
|
||||||
|
|
||||||
|
- name: Populate service facts
|
||||||
|
ansible.builtin.service_facts:
|
||||||
|
|
||||||
|
- name: Restart borgmatic services (normal-sized repo)
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
masked: false
|
||||||
|
daemon_reload: true
|
||||||
|
when: "item in services"
|
||||||
|
with_items:
|
||||||
|
- backup_normal_repo.service
|
||||||
|
|
||||||
|
# bug: Need own section without masked else the timer ar skipped
|
||||||
|
- name: Restart borgmatic timers (normal-sized repo)
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
daemon_reload: true
|
||||||
|
with_items:
|
||||||
|
- "backup_normal_repo.timer"
|
||||||
|
...
|
Loading…
Reference in New Issue
Block a user