Ansible
We provide a ready-to-use Ansible role to install Borg, Borgmatic and a cron job on a Linux client (tested on Ubuntu/Debian/CentOS/Fedora) client. Example usage in a playbook:
- hosts: webservers
roles:
- role: m3nu.ansible_role_borgbackup
borg_encryption_passphrase: CHANGEME
borg_repository: m5vz9gp4@m5vz9gp4.repo.borgbase.com:repo
borg_source_directories:
- /srv/www
- /var/lib/automysqlbackup
Steps to use this role:
- Install via Ansible Galaxy or clone Github repository into your
roles
folder. - Add a new repository without SSH key in BorgBase
- Replace Borg passphrase, repository URL and source directories in your playbook
- Run playbook against client host. A new SSH key will be created and displayed.
- Add new SSH key in BorgBase.
- Run
borgmatic init --encryption repokey-blake2
to validate the connection and initialize the new repository.
Learn more on the Github page of the project.
Interacting with the BorgBase API via Ansible
Andy Hawkins has created a range of Ansible modules that interact with the BorgBase API for a fully automated setup. They allow adding a repository or SSH key to BorgBase. Install it from Ansible Galaxy:
$ ansible-galaxy collection install adhawkins.borgbase
For more details see the Github repo or the module documentation.