Make create_vm work on all OS versions in use

Makes it work with the same cloudinit code on Ubuntu 20.04 by mounting
it from a custom ISO as CD-ROM
This commit is contained in:
2026-07-24 15:19:59 +02:00
parent 093a98b753
commit 7386de86d7
2 changed files with 37 additions and 1 deletions
@@ -64,6 +64,7 @@ EOS
popd
fi
<% if @modern_virt_install -%>
virt-install \
--name "$VMNAME" \
--ram "$RAM" \
@@ -83,3 +84,30 @@ virt-install \
--autostart \
--import \
--cloud-init root-password-generate=off,disable=on,meta-data=$CIDATA_PATH/meta-data,user-data=$CIDATA_PATH/user-data
<% else -%>
# Legacy path for hosts running virt-install < 4.0.0 (e.g. Ubuntu 20.04,
# virt-install 2.2.x). These versions predate the --osinfo/--cloud-init
# options, so we build a NoCloud seed ISO from the same user-data and
# meta-data files and attach it as a cdrom. The guest receives the
# exact same cloud-init configuration as on modern hosts.
cloud-localds "$CIDATA_PATH/seed.iso" "$CIDATA_PATH/user-data" "$CIDATA_PATH/meta-data"
virt-install \
--name "$VMNAME" \
--ram "$RAM" \
--vcpus "$CPUS" \
--cpu host \
--arch x86_64 \
--hvm \
--virt-type kvm \
--disk "$IMAGE_PATH" \
--disk "$CIDATA_PATH/seed.iso,device=cdrom" \
--boot hd \
--network=bridge=virbr0,model=virtio \
--graphics none \
--serial pty \
--console pty \
--channel unix,mode=bind,path=/var/lib/libvirt/qemu/$VMNAME.guest_agent.0,target_type=virtio,name=org.qemu.guest_agent.0 \
--autostart \
--import
<% end -%>