diff options
Diffstat (limited to 'roles/vm/guest/define')
-rw-r--r-- | roles/vm/guest/define/defaults/main.yml | 2 | ||||
-rw-r--r-- | roles/vm/guest/define/tasks/main.yml | 49 | ||||
-rw-r--r-- | roles/vm/guest/define/templates/libvirt-domain.xml.j2 | 18 |
3 files changed, 37 insertions, 32 deletions
diff --git a/roles/vm/guest/define/defaults/main.yml b/roles/vm/guest/define/defaults/main.yml index f0bcc4fd..05aeaab6 100644 --- a/roles/vm/guest/define/defaults/main.yml +++ b/roles/vm/guest/define/defaults/main.yml @@ -1,5 +1,5 @@ --- -vm_define_autostart: "{{ not vm_define_installer and hostvars[install_hostname].install_cooked.vm.autostart | default(False) }}" +vm_define_autostart: "{{ not vm_define_installer and install_cooked.vm.autostart | default(False) }}" vm_define_start: yes vm_define_installer: no diff --git a/roles/vm/guest/define/tasks/main.yml b/roles/vm/guest/define/tasks/main.yml index d0790628..65094bbb 100644 --- a/roles/vm/guest/define/tasks/main.yml +++ b/roles/vm/guest/define/tasks/main.yml @@ -1,5 +1,6 @@ --- - name: check if vm already exists + delegate_to: "{{ vm_host_cooked.name }}" virt: name: "{{ install_hostname }}" command: info @@ -7,43 +8,47 @@ - name: remove old vm when: install_hostname in vmhost_info + delegate_to: "{{ vm_host_cooked.name }}" block: - - name: destroy exisiting vm - virt: - name: "{{ install_hostname }}" - state: destroyed + - 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: 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: undefining exisiting vm + virt: + name: "{{ install_hostname }}" + command: undefine - name: define vm + delegate_to: "{{ vm_host_cooked.name }}" virt: command: define xml: "{{ lookup('template', 'libvirt-domain.xml.j2') }}" - name: start new vm when: vm_define_start | bool + delegate_to: "{{ vm_host_cooked.name }}" block: - - name: start vm - virt: - name: "{{ install_hostname }}" - state: running + - 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: wait for VM to start + wait_for_virt: + name: "{{ install_hostname }}" + states: running + timeout: 10 - name: mark vm as autostarted + delegate_to: "{{ vm_host_cooked.name }}" virt: name: "{{ install_hostname }}" autostart: "{{ vm_define_autostart }}" diff --git a/roles/vm/guest/define/templates/libvirt-domain.xml.j2 b/roles/vm/guest/define/templates/libvirt-domain.xml.j2 index 05ad6750..ce8a48d4 100644 --- a/roles/vm/guest/define/templates/libvirt-domain.xml.j2 +++ b/roles/vm/guest/define/templates/libvirt-domain.xml.j2 @@ -1,8 +1,8 @@ <domain type='kvm'> <name>{{ install_hostname }}</name> - <memory>{{ ((hostvars[install_hostname].install_cooked.vm.memory | human_to_bytes) / 1024) | int }}</memory> - <currentMemory>{{ ((hostvars[install_hostname].install_cooked.vm.memory | human_to_bytes) / 1024) | int }}</currentMemory> - <vcpu>{{ hostvars[install_hostname].install_cooked.vm.numcpus }}</vcpu> + <memory>{{ ((install_cooked.vm.memory | human_to_bytes) / 1024) | int }}</memory> + <currentMemory>{{ ((install_cooked.vm.memory | human_to_bytes) / 1024) | int }}</currentMemory> + <vcpu>{{ install_cooked.vm.numcpus }}</vcpu> <os> <type arch='x86_64' machine='pc-0.12'>hvm</type> {% if vm_define_installer %} @@ -50,8 +50,8 @@ </disk> {% endif %} -{% if 'virtio' in hostvars[install_hostname].install_cooked.disks %} -{% for device, src in hostvars[install_hostname].install_cooked.disks.virtio.items() %} +{% if 'virtio' in install_cooked.disks %} +{% for device, src in install_cooked.disks.virtio.items() %} <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none' discard='unmap'/> {% if src.type == 'lvm' %} @@ -64,9 +64,9 @@ {% endfor %} {% endif %} -{% if 'scsi' in hostvars[install_hostname].install_cooked.disks %} +{% if 'scsi' in install_cooked.disks %} <controller type='scsi' index='0' model='virtio-scsi'/> -{% for device, src in hostvars[install_hostname].install_cooked.disks.scsi.items() %} +{% for device, src in install_cooked.disks.scsi.items() %} <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none' discard='unmap'/> {% if src.type == 'lvm' %} @@ -79,8 +79,8 @@ {% endfor %} {% endif %} -{% if hostvars[install_hostname].install_cooked.interfaces %} -{% for if in hostvars[install_hostname].install_cooked.interfaces %} +{% if install_cooked.interfaces %} +{% for if in install_cooked.interfaces %} <interface type='bridge'> {% if 'mac' in if %} <mac address='{{ if.mac }}'/> |