From 71391ce32385bcabf1606feea2feaf6f87fcd8cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A2u=20Cao?= Date: Fri, 3 Nov 2023 18:11:31 +0100 Subject: [PATCH] Use Ubuntu 22.04 for new VMs Also, remove the custom config image generation and replace it with `--cloud-init` options. --- .../kosmos_kvm/attributes/default.rb | 8 ++++---- .../kosmos_kvm/templates/create_vm.erb | 18 ++++++------------ 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/site-cookbooks/kosmos_kvm/attributes/default.rb b/site-cookbooks/kosmos_kvm/attributes/default.rb index 4783c7e..63ae50a 100644 --- a/site-cookbooks/kosmos_kvm/attributes/default.rb +++ b/site-cookbooks/kosmos_kvm/attributes/default.rb @@ -1,9 +1,9 @@ -ubuntu_server_cloud_image_release = "20230506" +ubuntu_server_cloud_image_release = "20231026" node.default["kosmos_kvm"]["host"]["qemu_base_image"] = { - "url" => "https://cloud-images.ubuntu.com/releases/focal/release-#{ubuntu_server_cloud_image_release}/ubuntu-20.04-server-cloudimg-amd64-disk-kvm.img", - "checksum" => "27d2b91fd2b715729d739e2a3155dce70d1aaae4f05c177f338b9d4b60be638c", - "path" => "/var/lib/libvirt/images/base/ubuntu-20.04-server-cloudimg-amd64-disk-kvm-#{ubuntu_server_cloud_image_release}.qcow2" + "url" => "https://cloud-images.ubuntu.com/releases/jammy/release-#{ubuntu_server_cloud_image_release}/ubuntu-22.04-server-cloudimg-amd64-disk-kvm.img", + "checksum" => "b5d1f937341fbb3afb50d28c4a17f41419df4d87a96d5e737a39b6cb42e1dff3", + "path" => "/var/lib/libvirt/images/base/ubuntu-22.04-server-cloudimg-amd64-disk-kvm-#{ubuntu_server_cloud_image_release}.qcow2" } # A systemd.timer OnCalendar config value diff --git a/site-cookbooks/kosmos_kvm/templates/create_vm.erb b/site-cookbooks/kosmos_kvm/templates/create_vm.erb index 7d155e0..2060359 100644 --- a/site-cookbooks/kosmos_kvm/templates/create_vm.erb +++ b/site-cookbooks/kosmos_kvm/templates/create_vm.erb @@ -17,7 +17,7 @@ DISKSIZE=${4:-10} # 10GB default # Directory where image files will be stored IMAGE_DIR=/var/lib/libvirt/images IMAGE_PATH=$IMAGE_DIR/${VMNAME}.qcow2 -CIDATA_PATH=${IMAGE_DIR}/cidata-${VMNAME}.iso +CIDATA_PATH=${IMAGE_DIR}/${VMNAME}-cloudinit BASE_FILE=<%= @base_image_path %> # Create the VM image if it does not already exist @@ -38,9 +38,8 @@ qemu-img info "$IMAGE_PATH" # Check if the cloud-init metadata file exists # if not, generate it if [ ! -r $CIDATA_PATH ]; then - pushd $(dirname $CIDATA_PATH) - mkdir -p $VMNAME - cd $VMNAME + mkdir -p $CIDATA_PATH + pushd $CIDATA_PATH cat > user-data <<-EOS #cloud-config @@ -62,25 +61,19 @@ instance-id: $VMNAME local-hostname: $VMNAME EOS - genisoimage -output "$CIDATA_PATH" -volid cidata -joliet -rock user-data meta-data - chown libvirt-qemu:kvm "$CIDATA_PATH" - chmod 600 "$CIDATA_PATH" popd fi -# setting --os-variant to ubuntu20.04 and ubuntu18.04 breaks SSH and networking virt-install \ --name "$VMNAME" \ --ram "$RAM" \ --vcpus "$CPUS" \ --cpu host \ --arch x86_64 \ - --os-type linux \ - --os-variant ubuntu16.04 \ + --osinfo detect=on,name=ubuntujammy \ --hvm \ --virt-type kvm \ --disk "$IMAGE_PATH" \ - --cdrom "$CIDATA_PATH" \ --boot hd \ --network=bridge=virbr0,model=virtio \ --graphics none \ @@ -88,4 +81,5 @@ virt-install \ --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 + --import \ + --cloud-init root-password-generate=off,disable=on,meta-data=$CIDATA_PATH/meta-data,user-data=$CIDATA_PATH/user-data