summaryrefslogtreecommitdiff
path: root/roles/vm/guest/define/tasks/main.yml
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2020-07-07 22:09:19 +0200
committerChristian Pointner <equinox@spreadspace.org>2020-07-11 02:29:02 +0200
commit6eacc2ad5539abf37dc90cd378b44320f7758869 (patch)
treeeacbf207b610a8ee93f830b381d91491671f6ae5 /roles/vm/guest/define/tasks/main.yml
parentch-oulu: interface config (diff)
refactor vm role names
Diffstat (limited to 'roles/vm/guest/define/tasks/main.yml')
-rw-r--r--roles/vm/guest/define/tasks/main.yml50
1 files changed, 50 insertions, 0 deletions
diff --git a/roles/vm/guest/define/tasks/main.yml b/roles/vm/guest/define/tasks/main.yml
new file mode 100644
index 00000000..d0790628
--- /dev/null
+++ b/roles/vm/guest/define/tasks/main.yml
@@ -0,0 +1,50 @@
+---
+- name: check if vm already exists
+ virt:
+ name: "{{ install_hostname }}"
+ command: info
+ register: vmhost_info
+
+- name: remove old vm
+ when: install_hostname in vmhost_info
+ block:
+ - name: destroy exisiting vm
+ virt:
+ name: "{{ install_hostname }}"
+ state: destroyed
+
+ - name: wait for vm to be destroyed
+ wait_for_virt:
+ name: "{{ install_hostname }}"
+ states: shutdown,crashed
+ timeout: 5
+
+ - name: undefining exisiting vm
+ virt:
+ name: "{{ install_hostname }}"
+ command: undefine
+
+- name: define vm
+ virt:
+ command: define
+ xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}"
+
+- name: start new vm
+ when: vm_define_start | bool
+ block:
+ - name: start vm
+ virt:
+ name: "{{ install_hostname }}"
+ state: running
+
+ - name: wait for VM to start
+ wait_for_virt:
+ name: "{{ install_hostname }}"
+ states: running
+ timeout: 10
+
+- name: mark vm as autostarted
+ virt:
+ name: "{{ install_hostname }}"
+ autostart: "{{ vm_define_autostart }}"
+ command: info ## virt module needs either command or state