diff --git a/roles/borgbackup-client/tasks/main.yml b/roles/borgbackup-client/tasks/main.yml new file mode 100644 index 00000000..2e68a2ae --- /dev/null +++ b/roles/borgbackup-client/tasks/main.yml @@ -0,0 +1,55 @@ +--- +- name: Install borgbackup + apt: + update_cache: true + name: + - borgbackup + state: present + register: apt_result + retries: 3 + until: apt_result is succeeded + +- name: Install borgbackup + apt: + update_cache: true + name: + - borgmatic + state: present + register: apt_result + retries: 3 + until: apt_result is succeeded + when: ansible_lsb.release >= 10 + +- name: Ensures /etc/borgbackup exists + file: + path: /etc/borgbackup + state: directory + mode: 0700 + owner: root + +- name: Deploy ssh private key + template: + src: "borgbackup/id_ed25519.j2" + dest: "/etc/borgbackup/id_ed25519" + mode: 0600 + owner: root + +- name: Deploy borgbackup script + template: + src: "borgbackup/backup.sh.j2" + dest: "/etc/borgbackup/backup.sh" + mode: 0700 + owner: root + when: ansible_lsb.release <= 9 + +- name: Deploy borgmatic config + template: + src: "borgbackup/config.yaml.j2" + dest: "/etc/borgbackup/config.yaml" + when: ansible_lsb.release >= 10 + +- name: Deploy borg cron + template: + src: "cron.d/borgbackup.j2" + dest: "/etc/cron.d/borgbackup" + diff --git a/roles/borgbackup-client/templates/borgbackup/backup.sh.j2 b/roles/borgbackup-client/templates/borgbackup/backup.sh.j2 new file mode 100644 index 00000000..e69de29b diff --git a/roles/borgbackup-client/templates/borgbackup/id_ed25519.j2 b/roles/borgbackup-client/templates/borgbackup/id_ed25519.j2 new file mode 100644 index 00000000..e69de29b diff --git a/roles/borgbackup-client/templates/cron.d/borgbackup b/roles/borgbackup-client/templates/cron.d/borgbackup new file mode 100644 index 00000000..e69de29b