--- - name: check if vm already exists virt: name: "{{ hostname }}" command: info register: vmhost_info - when: hostname in vmhost_info block: - name: destroy exisiting vm virt: name: "{{ hostname }}" state: destroyed - name: wait for vm to be destroyed wait_for_virt: name: "{{ hostname }}" states: shutdown,crashed timeout: 5 - name: undefining exisiting vm virt: name: "{{ hostname }}" command: undefine - name: redefine vm virt: name: "{{ hostname }}" command: define xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}" - when: vm_define_start block: - name: start vm virt: name: "{{ hostname }}" state: running - name: wait for VM to start wait_for_virt: name: "{{ hostname }}" states: running timeout: 10 - name: mark vm as autostarted when: vm_define_autostart virt: name: "{{ hostname }}" autostart: yes command: info ## virt module needs either command or state