diff options
Diffstat (limited to 'roles/vm/define/tasks')
-rw-r--r-- | roles/vm/define/tasks/main.yml | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/roles/vm/define/tasks/main.yml b/roles/vm/define/tasks/main.yml new file mode 100644 index 00000000..1dd5017a --- /dev/null +++ b/roles/vm/define/tasks/main.yml @@ -0,0 +1,49 @@ +--- +- name: check if vm already exists + virt: + name: "{{ hostname }}" + command: info + register: 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 + + when: hostname in vmhost_info + +- name: define vm + virt: + command: define + xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}" + +- when: vm_define_start | bool + 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 + virt: + name: "{{ hostname }}" + autostart: "{{ vm_define_autostart }}" + command: info ## virt module needs either command or state |