add rsnapshot timers
Signed-off-by: Frank Villaro-Dixon <frank@villaro-dixon.eu>
This commit is contained in:
parent
849d7c5fad
commit
7873f0e724
5 changed files with 80 additions and 0 deletions
|
@ -30,6 +30,7 @@
|
||||||
enabled: yes
|
enabled: yes
|
||||||
when: systemd_mount.changed
|
when: systemd_mount.changed
|
||||||
|
|
||||||
|
|
||||||
- name: Generate ssh key
|
- name: Generate ssh key
|
||||||
ansible.builtin.openssh_keypair:
|
ansible.builtin.openssh_keypair:
|
||||||
path: /root/.ssh/id_rsa_rsnapshot
|
path: /root/.ssh/id_rsa_rsnapshot
|
||||||
|
@ -56,6 +57,41 @@
|
||||||
register: rsnapshot_conf
|
register: rsnapshot_conf
|
||||||
tags: rsnapshot
|
tags: rsnapshot
|
||||||
|
|
||||||
|
- name: Copy systemd unit files
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: files/{{ item }}
|
||||||
|
dest: /etc/systemd/system/
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
with_items:
|
||||||
|
- rsnapshot@.service
|
||||||
|
- rsnapshot-daily.timer
|
||||||
|
- rsnapshot-weekly.timer
|
||||||
|
- rsnapshot-monthly.timer
|
||||||
|
register: rsnapshot_service
|
||||||
|
|
||||||
|
- name: Reload systemd
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
daemon_reload: yes
|
||||||
|
when: rsnapshot_service.changed
|
||||||
|
|
||||||
|
- name: Enable rsnapshot timers
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: '{{ item }}'
|
||||||
|
enabled: yes
|
||||||
|
with_items:
|
||||||
|
- rsnapshot-daily.timer
|
||||||
|
- rsnapshot-weekly.timer
|
||||||
|
- rsnapshot-monthly.timer
|
||||||
|
register: rsnapshot_timers
|
||||||
|
when: rsnapshot_service.changed
|
||||||
|
|
||||||
|
- name: Reboot ## IDK how to start a timer
|
||||||
|
ansible.builtin.reboot:
|
||||||
|
when: rsnapshot_timers.changed
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- hosts: backup_clients
|
- hosts: backup_clients
|
||||||
gather_facts: no
|
gather_facts: no
|
||||||
|
|
11
ansible/files/rsnapshot-daily.timer
Normal file
11
ansible/files/rsnapshot-daily.timer
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Unit]
|
||||||
|
Description=rsnapshot daily backup
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
# Run every day at 3:30 AM local time
|
||||||
|
OnCalendar=03:30
|
||||||
|
Persistent=true
|
||||||
|
Unit=rsnapshot@daily.service
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
11
ansible/files/rsnapshot-monthly.timer
Normal file
11
ansible/files/rsnapshot-monthly.timer
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Unit]
|
||||||
|
Description=rsnapshot monthly backup
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
# Run once per month at 0:30 local time, before daily and weekly runs
|
||||||
|
OnCalendar=*-*-1 00:30:00
|
||||||
|
Persistent=true
|
||||||
|
Unit=rsnapshot@monthly.service
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
11
ansible/files/rsnapshot-weekly.timer
Normal file
11
ansible/files/rsnapshot-weekly.timer
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Unit]
|
||||||
|
Description=rsnapshot weekly backup
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
# Run once per week on Monday at 4:30 local time, before daily
|
||||||
|
OnCalendar=Monday *-*-* 01:30:00
|
||||||
|
Persistent=true
|
||||||
|
Unit=rsnapshot@weekly.service
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
11
ansible/files/rsnapshot@.service
Normal file
11
ansible/files/rsnapshot@.service
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Unit]
|
||||||
|
Description=rsnapshot (%I) backup
|
||||||
|
# Like Cron would, send an email if this fails
|
||||||
|
# XXX TODO
|
||||||
|
#OnFailure=status-email-admin@%n.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
Nice=19
|
||||||
|
IOSchedulingClass=3
|
||||||
|
ExecStart=/usr/bin/rsnapshot %I
|
Loading…
Reference in a new issue