aboutsummaryrefslogtreecommitdiffstats
path: root/molecule/delete/converge.yml
diff options
context:
space:
mode:
Diffstat (limited to 'molecule/delete/converge.yml')
-rw-r--r--molecule/delete/converge.yml143
1 files changed, 143 insertions, 0 deletions
diff --git a/molecule/delete/converge.yml b/molecule/delete/converge.yml
new file mode 100644
index 0000000..00de93d
--- /dev/null
+++ b/molecule/delete/converge.yml
@@ -0,0 +1,143 @@
+---
+- name: Setup - Fetch SSH key for server
+ 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: 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: Delete single repo backup (with data deletion)
+ hosts: borg-client-single-delete
+
+ roles:
+ - role: kliwniloc.borgbackup
+ vars:
+ state: absent
+ borg_server_host: borg-server-delete
+ borg_server_host_ssh_key: "{{ borg_server_host_ssh_key }}"
+ borg_repo_name: single-backup
+ borg_backup_argument: single-backup
+ borg_dangerously_delete_backups: true
+ borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml"
+
+- name: Delete one repo from multi-instance (keep data)
+ hosts: borg-client-multi-delete
+
+ roles:
+ - role: kliwniloc.borgbackup
+ vars:
+ state: absent
+ borg_server_host: borg-server-delete
+ borg_server_host_ssh_key: "{{ borg_server_host_ssh_key }}"
+ borg_repo_name: multi-repo-a
+ borg_backup_argument: multi-repo-a
+ borg_dangerously_delete_backups: false
+ borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml"
+
+- name: Delete one repo from per-repo (with data deletion)
+ hosts: borg-client-per-repo-delete
+
+ roles:
+ - role: kliwniloc.borgbackup
+ vars:
+ state: absent
+ borg_server_host: borg-server-delete
+ borg_server_host_ssh_key: "{{ borg_server_host_ssh_key }}"
+ borg_repo_name: per-repo-a
+ borg_backup_argument: per-repo-a
+ borg_ssh_key_per_repo: true
+ borg_ssh_key_type: ed25519
+ borg_dangerously_delete_backups: true
+ borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml"
+
+- name: Delete one repo from non-root shared-key setup
+ hosts: borg-client-nonroot-delete
+
+ roles:
+ - role: kliwniloc.borgbackup
+ vars:
+ state: absent
+ borg_server_host: borg-server-delete
+ borg_server_host_ssh_key: "{{ borg_server_host_ssh_key }}"
+ borg_client_user: backupuser
+ borg_repo_name: nonroot-a
+ borg_backup_argument: nonroot-a
+ borg_dangerously_delete_backups: false
+ borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml"
+
+- name: Delete never-configured backup with empty key file
+ hosts: borg-client-never-delete
+
+ roles:
+ - role: kliwniloc.borgbackup
+ vars:
+ state: absent
+ borg_server_host: borg-server-delete
+ borg_server_host_ssh_key: "{{ borg_server_host_ssh_key }}"
+ borg_repo_name: never-configured
+ borg_backup_argument: never-configured
+ borg_dangerously_delete_backups: false
+ borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_empty_delete.yml"
+
+- name: Re-run absent for idempotency
+ hosts:
+ - borg-client-single-delete
+ - borg-client-multi-delete
+ - borg-client-per-repo-delete
+ - borg-client-nonroot-delete
+ - borg-client-never-delete
+
+ roles:
+ - role: kliwniloc.borgbackup
+ vars:
+ state: absent
+ borg_server_host: borg-server-delete
+ borg_server_host_ssh_key: "{{ borg_server_host_ssh_key }}"
+ borg_repo_name: >-
+ {{
+ {
+ 'borg-client-single-delete': 'single-backup',
+ 'borg-client-multi-delete': 'multi-repo-a',
+ 'borg-client-per-repo-delete': 'per-repo-a',
+ 'borg-client-nonroot-delete': 'nonroot-a',
+ 'borg-client-never-delete': 'never-configured'
+ }[inventory_hostname]
+ }}
+ borg_backup_argument: >-
+ {{
+ {
+ 'borg-client-single-delete': 'single-backup',
+ 'borg-client-multi-delete': 'multi-repo-a',
+ 'borg-client-per-repo-delete': 'per-repo-a',
+ 'borg-client-nonroot-delete': 'nonroot-a',
+ 'borg-client-never-delete': 'never-configured'
+ }[inventory_hostname]
+ }}
+ borg_client_user: >-
+ {{ 'backupuser' if inventory_hostname == 'borg-client-nonroot-delete' else 'root' }}
+ borg_ssh_key_per_repo: "{{ inventory_hostname == 'borg-client-per-repo-delete' }}"
+ borg_ssh_key_type: "{{ 'ed25519' if inventory_hostname == 'borg-client-per-repo-delete' else 'rsa' }}"
+ borg_dangerously_delete_backups: >-
+ {{ inventory_hostname in ['borg-client-single-delete', 'borg-client-per-repo-delete'] }}
+ borg_decryption_keys_yaml_path: >-
+ {{
+ (playbook_dir ~ '/decryption_keys_empty_delete.yml')
+ if inventory_hostname == 'borg-client-never-delete'
+ else (playbook_dir ~ '/decryption_keys_delete.yml')
+ }}