diff options
Diffstat (limited to 'roles/vm/define')
-rw-r--r-- | roles/vm/define/templates/libvirt-domain.xml.j2 | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/roles/vm/define/templates/libvirt-domain.xml.j2 b/roles/vm/define/templates/libvirt-domain.xml.j2 index 60027205..59037fd9 100644 --- a/roles/vm/define/templates/libvirt-domain.xml.j2 +++ b/roles/vm/define/templates/libvirt-domain.xml.j2 @@ -36,10 +36,14 @@ </rng> {% if 'virtio' in hostvars[hostname].install_cooked.disks %} -{% for device, lv in hostvars[hostname].install_cooked.disks.virtio.items() %} +{% for device, src in hostvars[hostname].install_cooked.disks.virtio.items() %} <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none' discard='unmap'/> - <source dev='/dev/mapper/{{ lv.vg | replace('-', '--') }}-{{ lv.lv | replace('-', '--') }}'/> +{% if src.type == 'lvm' %} + <source dev='/dev/mapper/{{ src.vg | replace('-', '--') }}-{{ src.lv | replace('-', '--') }}'/> +{% elif src.type == 'zfs' %} + <source dev='/dev/zvol/{{ srv.pool }}/{{ srv.name }}'/> +{% endif %} <target dev='{{ device }}' bus='virtio'/> </disk> {% endfor %} @@ -47,10 +51,14 @@ {% if 'scsi' in hostvars[hostname].install_cooked.disks %} <controller type='scsi' index='0' model='virtio-scsi'/> -{% for device, lv in hostvars[hostname].install_cooked.disks.scsi.items() %} +{% for device, src in hostvars[hostname].install_cooked.disks.scsi.items() %} <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none' discard='unmap'/> - <source dev='/dev/mapper/{{ lv.vg | replace('-', '--') }}-{{ lv.lv | replace('-', '--') }}'/> +{% if src.type == 'lvm' %} + <source dev='/dev/mapper/{{ src.vg | replace('-', '--') }}-{{ src.lv | replace('-', '--') }}'/> +{% elif src.type == 'zfs' %} + <source dev='/dev/zvol/{{ srv.pool }}/{{ srv.name }}'/> +{% endif %} <target dev='{{ device }}' bus='scsi'/> </disk> {% endfor %} |