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