diff options
Diffstat (limited to 'roles/vm/guest')
-rw-r--r-- | roles/vm/guest/define/templates/libvirt-domain.xml.j2 | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/roles/vm/guest/define/templates/libvirt-domain.xml.j2 b/roles/vm/guest/define/templates/libvirt-domain.xml.j2 index e526d38d..2287dd0b 100644 --- a/roles/vm/guest/define/templates/libvirt-domain.xml.j2 +++ b/roles/vm/guest/define/templates/libvirt-domain.xml.j2 @@ -50,39 +50,27 @@ </disk> {% endif %} -{% 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' %} - <source dev='/dev/mapper/{{ src.vg | replace('-', '--') }}-{{ src.lv | replace('-', '--') }}'/> -{% elif src.type == 'zfs' %} - <source dev='/dev/zvol/{{ vm_host_cooked.zfs[src.backend | default('default')].pool }}/{{ vm_host_cooked.zfs[src.backend | default('default')].name }}/{{ inventory_hostname }}/{{ src.name }}'/> -{% elif src.type == 'blockdev' %} - <source dev='{{ src.path }}'/> -{% endif %} - <target dev='{{ device }}' bus='virtio'/> - </disk> -{% endfor %} -{% endif %} - -{% if 'scsi' in install_cooked.disks %} +{% if install_cooked.disks %} +{% if 'scsi' in install_cooked.disks %} <controller type='scsi' index='0' model='virtio-scsi'/> -{% for device, src in install_cooked.disks.scsi.items() %} +{% endif %} +{% for bus in ['virtio', 'scsi'] %} +{% for device, src in (install_cooked.disks[bus] | default({})).items() %} <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none' discard='unmap'/> -{% if src.type == 'lvm' %} +{% if src.type == 'lvm' %} <source dev='/dev/mapper/{{ src.vg | replace('-', '--') }}-{{ src.lv | replace('-', '--') }}'/> -{% elif src.type == 'zfs' %} +{% elif src.type == 'zfs' %} <source dev='/dev/zvol/{{ vm_host_cooked.zfs[src.backend | default('default')].pool }}/{{ vm_host_cooked.zfs[src.backend | default('default')].name }}/{{ inventory_hostname }}/{{ src.name }}'/> -{% elif src.type == 'blockdev' %} +{% elif src.type == 'blockdev' %} <source dev='{{ src.path }}'/> -{% endif %} - <target dev='{{ device }}' bus='scsi'/> +{% endif %} + <target dev='{{ device }}' bus='{{ bus }}'/> </disk> +{% endfor %} {% endfor %} -{% endif %} +{% endif %} {% if install_cooked.interfaces %} {% for if in install_cooked.interfaces %} <interface type='bridge'> @@ -94,8 +82,8 @@ <address type='pci' domain='0x0000' bus='0x{{ "%02x" | format(loop.index0 + 16) }}' slot='0x00' function='0x0'/> </interface> {% endfor %} -{% endif %} +{% endif %} <serial type='pty'> <target port='0'/> </serial> |