Refactor VM definition playbook and template to a separate role
[noc.git] / ansible / roles / vm / define / tasks / main.yml
1 ---
2 - name: check if vm already exists
3   virt:
4     name: "{{ hostname }}"
5     command: info
6   register: vmhost_info
7
8 - when: hostname in vmhost_info
9   block:
10     - name: destroy exisiting vm
11       virt:
12         name: "{{ hostname }}"
13         state: destroyed
14
15     - name: wait for vm to be destroyed
16       wait_for_virt:
17         name: "{{ hostname }}"
18         states: shutdown,crashed
19         timeout: 5
20
21     - name: undefining exisiting vm
22       virt:
23         name: "{{ hostname }}"
24         command: undefine
25
26
27 - name: redefine vm
28   virt:
29     name: "{{ hostname }}"
30     command: define
31     xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}"
32
33 - when: vm_define_start
34   block:
35     - name: start vm
36       virt:
37         name: "{{ hostname }}"
38         state: running
39
40     - name: wait for VM to start
41       wait_for_virt:
42         name: "{{ hostname }}"
43         states: running
44         timeout: 10
45
46 - name: mark vm as autostarted
47   when: vm_define_autostart
48   virt:
49     name: "{{ hostname }}"
50     autostart: yes
51     command: info ## virt module needs either command or state