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:


- 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:

- ansible.builtin.lineinfile:
    path: "/backup-dirs"
    line: "{{juice_sqlite_path}}"
Description
No description provided
Readme 48 KiB
Languages
Jinja 100%