add todoist backup job and role (#194)
Some checks failed
ansible-lint / gitleaks (push) Successful in 6s
ansible-lint / Ansible Lint (push) Failing after 54s

Reviewed-on: https://git.mgrote.net///mg/homeserver/pulls/194
Co-authored-by: Michael Grote <michael.grote@posteo.de>
Co-committed-by: Michael Grote <michael.grote@posteo.de>
This commit is contained in:
Michael Grote 2024-09-27 18:50:18 +02:00 committed by Michael Grote
parent 4e4aa19eb7
commit 6eb88c1c92
8 changed files with 94 additions and 0 deletions

Binary file not shown.

View file

@ -10,5 +10,7 @@
tags: "smb"
- role: mgrote_youtubedl
tags: "youtubedl"
- role: mgrote_todoist_backup
tags: "todoist"
- role: mgrote_disable_oom_killer
tags: "oom"

View file

@ -0,0 +1,5 @@
---
- name: systemctl daemon-reload
become: true
ansible.builtin.systemd:
daemon_reload: true

View file

@ -0,0 +1,51 @@
---
- name: 'Clone "full-offline-backup-for-todoist"'
become: true
ansible.builtin.git:
repo: 'https://github.com/joanbm/full-offline-backup-for-todoist'
dest: /shares_backup/full-offline-backup-for-todoist
- name: Ensure script is present
become: true
ansible.builtin.template:
src: "todoist_backup.sh.j2"
dest: "/usr/bin/todoist_backup.sh"
owner: root
group: root
mode: "0754"
- name: Ensure services are present
become: true
ansible.builtin.template:
src: "{{ item }}.j2"
dest: "/etc/systemd/system/{{ item }}"
owner: root
group: root
mode: "0644"
notify:
- systemctl daemon-reload
loop:
- todoist_backup.service
- todoist_backup.timer
- todoist_backup_mail.service
- name: Ensure timer unit is enabled
become: true
ansible.builtin.systemd:
name: todoist_backup.timer
enabled: true
masked: false
state: started
notify:
- systemctl daemon-reload
- name: Ensure service units are enabled
become: true
ansible.builtin.systemd:
name: "{{ item }}"
masked: false
enabled: true
loop:
- todoist_backup.service
- todoist_backup.timer
- todoist_backup_mail.service

View file

@ -0,0 +1,12 @@
{{ file_header | default () }}
[Unit]
Description=Create Todoist backups.
OnFailure=todoist_backup_mail.service
[Service]
Type=simple
Restart=on-failure
RestartSec=10min
ExecStart="/usr/bin/todoist_backup.sh"

View file

@ -0,0 +1,7 @@
#!/bin/bash
export TODOIST_TOKEN={{ lookup('viczem.keepass.keepass', 'todoist_backup_token', 'password') }}
cd /shares_backup/full-offline-backup-for-todoist || exit
python3 -m full_offline_backup_for_todoist --verbose download --with-attachments

View file

@ -0,0 +1,9 @@
{{ file_header | default () }}
[Unit]
Description=Timer for todoist_backup.
[Timer]
OnCalendar=daily
[Install]
WantedBy=timers.target multi-user.target zfs.target

View file

@ -0,0 +1,8 @@
{{ file_header | default () }}
[Unit]
Description=Send a Mail in case of an error in todoist_backup.service.
[Service]
Type=oneshot
ExecStart=/bin/bash -c '/bin/systemctl status todoist_backup.service | mail -aFROM:todoist_backup@mgrote.net -s "[ERROR] todoist_backup" {{ my_mail }}'