91 lines
2.6 KiB
YAML
91 lines
2.6 KiB
YAML
---
|
|
- name: Destroy Home Assistant Dev Environment
|
|
hosts: pve_cluster
|
|
become: true
|
|
run_once: true
|
|
vars:
|
|
vm_name: homeassistant-dev
|
|
dns_zone_file: /etc/bind/zones/db.nerdcave.eu
|
|
|
|
tasks:
|
|
# -------------------------------------------------------
|
|
# 1. DNS Cleanup
|
|
# -------------------------------------------------------
|
|
- name: Remove CNAME Record from Bind
|
|
delegate_to: bind1.srv.renner.uno
|
|
lineinfile:
|
|
path: "{{ dns_zone_file }}"
|
|
regexp: "^{{ vm_name }} IN CNAME"
|
|
state: absent
|
|
register: dns_record_removed
|
|
ignore_unreachable: true
|
|
ignore_errors: true
|
|
|
|
- name: Increment Zone Serial
|
|
delegate_to: bind1.srv.renner.uno
|
|
shell: |
|
|
sed -i -r 's/([0-9]{10})(\s+;\s+Serial)/echo $((\1 + 1))\2/e' {{ dns_zone_file }}
|
|
args:
|
|
executable: /bin/bash
|
|
when:
|
|
- dns_record_removed.changed
|
|
- not dns_record_removed.failed | default(false)
|
|
ignore_unreachable: true
|
|
ignore_errors: true
|
|
notify: Reload Bind
|
|
|
|
# -------------------------------------------------------
|
|
# 2. Caddy Cleanup
|
|
# -------------------------------------------------------
|
|
- name: Remove Caddy Configuration
|
|
delegate_to: caddy.srv.renner.uno
|
|
blockinfile:
|
|
path: /etc/caddy/Caddyfile
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK {{ vm_name }}"
|
|
state: absent
|
|
notify: Reload Caddy
|
|
ignore_unreachable: true
|
|
ignore_errors: true
|
|
|
|
# -------------------------------------------------------
|
|
# 3. VM Cleanup
|
|
# -------------------------------------------------------
|
|
- name: Find VM IDs for {{ vm_name }}
|
|
shell: "qm list | grep ' {{ vm_name }} ' | awk '{print $1}'"
|
|
register: vm_ids_out
|
|
changed_when: false
|
|
ignore_errors: true
|
|
|
|
- name: Stop VMs
|
|
command: "qm stop {{ item }}"
|
|
loop: "{{ vm_ids_out.stdout_lines }}"
|
|
when:
|
|
- vm_ids_out.rc == 0
|
|
- vm_ids_out.stdout_lines | length > 0
|
|
ignore_errors: true
|
|
|
|
- name: Destroy VMs
|
|
command: "qm destroy {{ item }} --purge"
|
|
loop: "{{ vm_ids_out.stdout_lines }}"
|
|
when:
|
|
- vm_ids_out.rc == 0
|
|
- vm_ids_out.stdout_lines | length > 0
|
|
ignore_errors: true
|
|
|
|
handlers:
|
|
- name: Reload Bind
|
|
delegate_to: bind1.srv.renner.uno
|
|
service:
|
|
name: bind9
|
|
state: reloaded
|
|
ignore_unreachable: true
|
|
ignore_errors: true
|
|
|
|
- name: Reload Caddy
|
|
delegate_to: caddy.srv.renner.uno
|
|
service:
|
|
name: caddy
|
|
state: reloaded
|
|
ignore_unreachable: true
|
|
ignore_errors: true
|