diff options
Diffstat (limited to 'molecule/delete/prepare.yml')
| -rw-r--r-- | molecule/delete/prepare.yml | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/molecule/delete/prepare.yml b/molecule/delete/prepare.yml new file mode 100644 index 0000000..98a94a1 --- /dev/null +++ b/molecule/delete/prepare.yml @@ -0,0 +1,153 @@ +--- +- name: Prepare - Configure SSH keys for delete setup + hosts: + - borg-client-single-delete + - borg-client-multi-delete + - borg-client-per-repo-delete + - borg-client-nonroot-delete + - borg-client-never-delete + + pre_tasks: + - name: Start ssh on borg-server-delete + ansible.builtin.systemd: + name: sshd + state: started + become: true + delegate_to: borg-server-delete + + - name: Fetch ssh_key for borg-server-delete + ansible.builtin.command: >- + ssh-keyscan -t rsa borg-server-delete | sed "s/^[^ ]* //" + register: borg_server_ssh_keyscan + changed_when: false + + - name: Set ssh_key for borg-server-delete + ansible.builtin.set_fact: + borg_server_host_ssh_key: >- + {{ borg_server_ssh_keyscan.stdout + | split(" ") + | reject("search", "borg-server-delete") + | join(" ") }} + +- name: Create single repo backup + hosts: borg-client-single-delete + + roles: + - role: kliwniloc.borgbackup + vars: + state: present + borg_server_host: borg-server-delete + borg_server_host_ssh_key: "{{ hostvars[inventory_hostname].borg_server_host_ssh_key }}" + borg_repo_name: single-backup + borg_backup_argument: single-backup + borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml" + borg_included_dirs: + - /etc + borg_excluded_dirs: [] + +- name: Create multi-instance backup (shared key) + hosts: borg-client-multi-delete + + vars: + borg_server_host: borg-server-delete + borg_server_host_ssh_key: "{{ hostvars[inventory_hostname].borg_server_host_ssh_key }}" + borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml" + borg_ssh_key_per_repo: false + + roles: + - role: kliwniloc.borgbackup + vars: + state: present + borg_repo_name: multi-repo-a + borg_backup_argument: multi-repo-a + borg_included_dirs: + - /etc + borg_systemd_oncalendar: "*-*-* 02:00:00" + + - role: kliwniloc.borgbackup + vars: + state: present + borg_repo_name: multi-repo-b + borg_backup_argument: multi-repo-b + borg_included_dirs: + - /home + borg_systemd_oncalendar: "*-*-* 04:00:00" + +- name: Create per-repo SSH key backup + hosts: borg-client-per-repo-delete + + vars: + borg_server_host: borg-server-delete + borg_server_host_ssh_key: "{{ hostvars[inventory_hostname].borg_server_host_ssh_key }}" + borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml" + borg_ssh_key_per_repo: true + + roles: + - role: kliwniloc.borgbackup + vars: + state: present + borg_repo_name: per-repo-a + borg_backup_argument: per-repo-a + borg_ssh_key_type: ed25519 + borg_included_dirs: + - /etc + borg_systemd_oncalendar: "*-*-* 02:00:00" + + - role: kliwniloc.borgbackup + vars: + state: present + borg_repo_name: per-repo-b + borg_backup_argument: per-repo-b + borg_ssh_key_type: ed25519 + borg_included_dirs: + - /home + borg_systemd_oncalendar: "*-*-* 04:00:00" + +- name: Create non-root shared-key backup + hosts: borg-client-nonroot-delete + + pre_tasks: + - name: Create backup user for non-root delete test + ansible.builtin.user: + name: backupuser + home: /home/backupuser + shell: /bin/bash + state: present + become: true + + roles: + - role: kliwniloc.borgbackup + vars: + state: present + borg_server_host: borg-server-delete + borg_server_host_ssh_key: "{{ hostvars[inventory_hostname].borg_server_host_ssh_key }}" + borg_client_user: backupuser + borg_repo_name: nonroot-a + borg_backup_argument: nonroot-a + borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml" + borg_included_dirs: + - /etc + borg_excluded_dirs: [] + + - role: kliwniloc.borgbackup + vars: + state: present + borg_server_host: borg-server-delete + borg_server_host_ssh_key: "{{ hostvars[inventory_hostname].borg_server_host_ssh_key }}" + borg_client_user: backupuser + borg_repo_name: nonroot-b + borg_backup_argument: nonroot-b + borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml" + borg_included_dirs: + - /home + borg_excluded_dirs: [] + +- name: Prepare empty decryption keys file for never-configured host + hosts: localhost + gather_facts: false + tasks: + - name: Create empty decryption keys file + ansible.builtin.copy: + content: "" + dest: "{{ playbook_dir }}/decryption_keys_empty_delete.yml" + mode: "0600" |