aboutsummaryrefslogtreecommitdiffstats
path: root/molecule/delete/prepare.yml
diff options
context:
space:
mode:
authorColin Wilk <colin@wilk.cx>2026-07-02 18:10:04 +0200
committerColin Wilk <colin@wilk.cx>2026-07-02 18:10:04 +0200
commit50b914e77695fd1cdb294653f20143747e7e3b01 (patch)
treeb667145cd04e39abb52d1680fc61a17513ae0af6 /molecule/delete/prepare.yml
parent66e46df3d2a840bf62ef8084ad171041772db65e (diff)
downloadansible-role-borgbackup-50b914e77695fd1cdb294653f20143747e7e3b01.tar.gz
ansible-role-borgbackup-50b914e77695fd1cdb294653f20143747e7e3b01.zip
Add state: absent variable
Allow removing configuration for repositories.
Diffstat (limited to 'molecule/delete/prepare.yml')
-rw-r--r--molecule/delete/prepare.yml153
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"