- name: Setup Cleanup when: hypervisor == "proxmox" delegate_to: localhost become: false block: - name: Cleanup Setup Disks community.general.proxmox_disk: api_host: "{{ hypervisor_url }}" api_user: "{{ hypervisor_username }}" api_password: "{{ hypervisor_password }}" name: "{{ hostname }}" vmid: "{{ vm_id }}" disk: "{{ item }}" state: absent loop: - ide0 - ide1 - name: Remove CD-ROM from VM in vCenter when: hypervisor == "vmware" delegate_to: localhost ignore_errors: true vmware_guest: hostname: "{{ hypervisor_url }}" username: "{{ hypervisor_username }}" password: "{{ hypervisor_password }}" validate_certs: no datacenter: "{{ hypervisor_cluster }}" name: "{{ hostname }}" cdrom: - controller_number: 0 unit_number: 0 controller_type: "sata" type: iso iso_path: "{{ boot_iso }}" state: absent - name: Remove Archiso and cloud-init disks when: hypervisor == "libvirt" delegate_to: localhost become: false block: - name: Stop the VM community.libvirt.virt: name: "{{ hostname }}" state: shutdown - name: Remove cloud-init disk file: path: "{{ vm_path | default('/var/lib/libvirt/images/') }}{{ hostname }}-cloudinit.iso" state: absent - name: Get list of CD-ROM devices shell: virsh --connect qemu:///system domblklist {{ hostname }} --details | grep 'cdrom' | awk '{print $3}' changed_when: false register: cdrom_devices - name: Wait for VM to spin down wait_for: timeout: 15 - name: Remove CD-ROM devices when: cdrom_devices.stdout_lines | length > 0 command: virsh --connect qemu:///system detach-disk {{ hostname }} {{ item }} --persistent with_items: "{{ cdrom_devices.stdout_lines }}" - name: Start the VM community.libvirt.virt: name: "{{ hostname }}" state: running - name: Wait for VM to boot up delegate_to: "{{ inventory_hostname }}" wait_for_connection: timeout: 300