From 1a529cf7870f4ef5507507c08524535bbc6e1d65 Mon Sep 17 00:00:00 2001 From: Hoan To Date: Fri, 16 Sep 2022 12:53:38 +0200 Subject: [PATCH] DEV-553: added remove hcloud volumes at the end of restore playbook --- restore-remote-database-backup.yml | 14 +++++++ .../tasks/_remove_hetzner_volumes.yml | 39 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 roles/lvm_with_hetzner_volumes/tasks/_remove_hetzner_volumes.yml diff --git a/restore-remote-database-backup.yml b/restore-remote-database-backup.yml index 9b2608d..53a2bcc 100644 --- a/restore-remote-database-backup.yml +++ b/restore-remote-database-backup.yml @@ -211,6 +211,20 @@ when: - database_engine == 'maria' + +############################################################# +# Deleting volumes for created inventory +############################################################# +- hosts: "restore" + serial: "{{ serial_number | default(5) }}" + gather_facts: false + + tasks: + - name: "Delete volumes for <{{ inventory_hostname }}>" + include_role: + name: lvm_with_hetzner_volumes + tasks_from: _remove_hetzner_volumes + ############################################################# # Deleting servers/domains for created inventory ############################################################# diff --git a/roles/lvm_with_hetzner_volumes/tasks/_remove_hetzner_volumes.yml b/roles/lvm_with_hetzner_volumes/tasks/_remove_hetzner_volumes.yml new file mode 100644 index 0000000..ddbae62 --- /dev/null +++ b/roles/lvm_with_hetzner_volumes/tasks/_remove_hetzner_volumes.yml @@ -0,0 +1,39 @@ +--- + +- name: "Getting all hcloud volumes for {{ inventory_hostname }}" + hcloud_volume_info: + api_token: "{{ hetzner_authentication_ansible }}" + label_selector: "stage={{ stage }},bound_on={{ inventory_hostname }}" + register: hcloud_volumes_found + delegate_to: localhost + become: false + +- name: "Getting all hcloud volumes for {{ inventory_hostname }}" + debug: + msg: "{{ hcloud_volumes_found }}" + +- name: "Setting all hcloud volumes for {{ inventory_hostname }}" + set_fact: + hcloud_volumes: "{{ hcloud_volumes_found.hcloud_volume_info | json_query(jmesquery) }}" + vars: + jmesquery: "[*].name" + +- name: "remove delete protection for all hcloud volumes for {{ inventory_hostname }}" + hcloud_volume: + api_token: "{{ hetzner_authentication_ansible }}" + name: "{{ item }}" + delete_protection: no + delegate_to: 127.0.0.1 + loop: "{{ hcloud_volumes }}" + +- name: "Delete all hcloud volumes for {{ inventory_hostname }}" + hcloud_volume: + api_token: "{{ hetzner_authentication_ansible }}" + name: "{{ item }}" + state: absent + delegate_to: 127.0.0.1 + loop: "{{ hcloud_volumes }}" + + + +