49 lines
1.2 KiB
Markdown

Sets up backups to Cloudflare R2
# Instalation
In requirements.yml:
```
roles:
- src: git+https://git.internet-czas-dzialac.pl/kuba/ansible-setup-backups.git
version: master
name: setup-backups
```
# Setup
Create a Cloudflare R2 account and create an admin token.
Create a file under `templates/backup-scripts/<hostname>.sh.j2` that
is a shell script that prepares the data for backup - leave empty if
not necessary.
Then in your playbook run:
```yml
- name: "Setup backups"
hosts: ansible1
roles:
- setup-backups
vars:
backup_bucket_prefix: "backup"
extra_backup_paths: # most sealcode-roles automatically register their backup dirs in the /backup-dirs txt file, but we can add anything not covered by that here
- /var/homebox/data
cloudflare_r2_access_key: "cloudflare R2 Access key (for S3-type API)"
cloudflare_r2_secret_key: "cloudflare R2 secret key (for S3-type API)"
cloudflare_r2_endpoint: https://some_endpoint.r2.cloudflarestorage.com
BACKUP_PASSWORD: password
```
If you are implementing a role that has to register a directory for
automatic backups, add a task in your role's `tasks/backup.yml`:
```yml
- ansible.builtin.lineinfile:
path: "/backup-dirs"
line: "{{juice_sqlite_path}}"
```