80 lines
2.3 KiB
YAML
80 lines
2.3 KiB
YAML
---
|
|
- name: Delete VMware VM
|
|
when: hypervisor_type == "vmware"
|
|
delegate_to: localhost
|
|
community.vmware.vmware_guest:
|
|
hostname: "{{ hypervisor_cfg.url }}"
|
|
username: "{{ hypervisor_cfg.username }}"
|
|
password: "{{ hypervisor_cfg.password }}"
|
|
validate_certs: "{{ hypervisor_cfg.certs | bool }}"
|
|
datacenter: "{{ hypervisor_cfg.datacenter }}"
|
|
name: "{{ hostname }}"
|
|
folder: "{{ system_cfg.path if system_cfg.path | string | length > 0 else omit }}"
|
|
state: absent
|
|
force: true
|
|
no_log: true
|
|
|
|
- name: Delete Proxmox VM
|
|
when: hypervisor_type == "proxmox"
|
|
delegate_to: localhost
|
|
community.proxmox.proxmox_kvm:
|
|
api_host: "{{ hypervisor_cfg.url }}"
|
|
api_user: "{{ hypervisor_cfg.username }}"
|
|
api_password: "{{ hypervisor_cfg.password }}"
|
|
node: "{{ hypervisor_cfg.node }}"
|
|
vmid: "{{ system_cfg.id | default(omit, true) }}"
|
|
name: "{{ hostname }}"
|
|
state: absent
|
|
force: true
|
|
no_log: true
|
|
|
|
- name: Destroy libvirt VM
|
|
when: hypervisor_type == "libvirt"
|
|
delegate_to: localhost
|
|
block:
|
|
- name: Stop libvirt VM
|
|
community.libvirt.virt:
|
|
name: "{{ hostname }}"
|
|
state: destroyed
|
|
uri: "{{ libvirt_uri | default('qemu:///system') }}"
|
|
failed_when: false
|
|
|
|
- name: Undefine libvirt VM
|
|
community.libvirt.virt:
|
|
name: "{{ hostname }}"
|
|
command: undefine
|
|
uri: "{{ libvirt_uri | default('qemu:///system') }}"
|
|
failed_when: false
|
|
|
|
- name: Remove libvirt disk images
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: absent
|
|
loop: "{{ virtualization_libvirt_disks | default([]) }}"
|
|
loop_control:
|
|
label: "{{ item.path | default('unknown') }}"
|
|
|
|
- name: Remove libvirt cloud-init disk
|
|
ansible.builtin.file:
|
|
path: "{{ virtualization_libvirt_cloudinit_path | default('/dev/null') }}"
|
|
state: absent
|
|
when: virtualization_libvirt_cloudinit_path is defined
|
|
|
|
- name: Destroy Xen VM
|
|
when: hypervisor_type == "xen"
|
|
delegate_to: localhost
|
|
block:
|
|
- name: Stop Xen VM
|
|
ansible.builtin.command:
|
|
argv:
|
|
- xl
|
|
- destroy
|
|
- "{{ hostname }}"
|
|
failed_when: false
|
|
|
|
- name: Remove Xen VM config
|
|
ansible.builtin.file:
|
|
path: "/etc/xen/{{ hostname }}.cfg"
|
|
state: absent
|
|
failed_when: false
|