This PR adds in a new role to setup backup for all hosts via restic with an rclone backend.
Added new host_vars to all host for both rclone and restic settings. All secrets are saved via ansible-vault encrypted strings.
New role creates rclone.conf to correctly map remotes. This conf file uses client id and client secret for google cloud project to allow for faster api access and better security.
Ran ansible-lint aganist local copy to verify syntax
Ran new role against testing environment to verify functionality.
Verified created backup service runs via triggering manually
Verified systemd timers trigger correctly
Checklist
My code follows the project's style guidelines.
I have performed a self-review of my own code.
### Description
This PR adds in a new role to setup backup for all hosts via restic with an rclone backend.
Added new host_vars to all host for both rclone and restic settings. All secrets are saved via ansible-vault encrypted strings.
New role creates `rclone.conf` to correctly map remotes. This conf file uses client id and client secret for google cloud project to allow for faster api access and better security.
### Related Issue
Closes #10
### Testing Done
- [x] Ran `ansible-lint` aganist local copy to verify syntax
- [x] Ran new role against testing environment to verify functionality.
- [x] Verified created backup service runs via triggering manually
- [x] Verified systemd timers trigger correctly
### Checklist
- [x] My code follows the project's style guidelines.
- [x] I have performed a self-review of my own code.
Added new templates related to backup tasks
`rclone.conf.j2` - rclone.conf template to set up remotes for restic repos. these are setup specifically for gdrive with a private client id.
`restic-backup.service.j2` and `restic-prune.service.j2` are used to define daily backups and weekly prunes as systemd services respecfully.
These systemd timers are used to run the backup and prune services on a daily and weekly basis respecfully.
They are intended to be used for all hosts to keep them all on the same schedule.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Description
This PR adds in a new role to setup backup for all hosts via restic with an rclone backend.
Added new host_vars to all host for both rclone and restic settings. All secrets are saved via ansible-vault encrypted strings.
New role creates
rclone.confto correctly map remotes. This conf file uses client id and client secret for google cloud project to allow for faster api access and better security.Related Issue
Closes #10
Testing Done
ansible-lintaganist local copy to verify syntaxChecklist
10 add restic backup planto feat: add restic backup plan