From 885f686ce73bf103de29e1f78dd32356db451afb Mon Sep 17 00:00:00 2001 From: Holger Mueller Date: Mon, 15 Jun 2026 23:51:50 +0200 Subject: [PATCH] Fix setup for flatcar --- .../roles/vm_provision/tasks/main.yml | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/ansible-kvm-vms/roles/vm_provision/tasks/main.yml b/ansible-kvm-vms/roles/vm_provision/tasks/main.yml index 6680215..9068bf7 100644 --- a/ansible-kvm-vms/roles/vm_provision/tasks/main.yml +++ b/ansible-kvm-vms/roles/vm_provision/tasks/main.yml @@ -22,18 +22,18 @@ - name: Handle compressed or raw images shell: | DOWNLOAD_FILE="{{ vm_images_dir }}/{{ vm_name }}.download" - FINAL_FILE="{{ vm_images_dir }}/{{ vm_name }}.qcow2" + FINAL_FILE="{{ vm_images_dir }}/{{ vm_name }}" # 1. Handle XZ compression if [[ "{{ os_images[os_type] }}" == *.xz ]]; then echo "Decompressing XZ image..." - unxz -c "$DOWNLOAD_FILE" > "$FINAL_FILE" + unxz -c "$DOWNLOAD_FILE" > "$FINAL_FILE".qcow2 elif [[ "{{ os_images[os_type] }}" == *.img ]]; then - echo "Converting RAW image to QCOW2..." - qemu-img convert -f raw -O qcow2 "$DOWNLOAD_FILE" "$FINAL_FILE" + echo "Moving IMG image to final destination..." + mv "$DOWNLOAD_FILE" "$FINAL_FILE".img else echo "Moving QCOW2 image to final destination..." - mv "$DOWNLOAD_FILE" "$FINAL_FILE" + mv "$DOWNLOAD_FILE" "$FINAL_FILE".qcow2 fi rm -f "$DOWNLOAD_FILE" become: yes @@ -42,7 +42,7 @@ - name: Provision VM using virt-install shell: | - {% if os_type == 'coreos' or os_type == 'flatcar' %} + {% if os_type == 'coreos' %} virt-install \ --connect qemu:///system \ --name {{ vm_name }} \ @@ -55,6 +55,20 @@ --noautoconsole \ --boot uefi \ --sysinfo type=fwcfg,entry0.name=opt/com.coreos/config,entry0.file={{ vm_images_dir }}/{{ vm_name }}.ign + {% elif os_type == 'flatcar' %} + virt-install \ + --connect qemu:///system \ + --name {{ vm_name }} \ + --vcpus {{ cpu | default(default_cpu) }} \ + --memory {{ ram | default(default_ram) }} \ + --disk path={{ vm_images_dir }}/{{ vm_name }}.img,format=qcow2,bus=virtio \ + --import \ + --os-variant {{ os_variant }} \ + --network network=default \ + --graphics none \ + --noautoconsole \ + --sysinfo system.serial=flatcar.first_boot=1 \ + --qemu-commandline="-fw_cfg name=opt/org.flatcar-linux/config,file=/{{ vm_images_dir }}/{{ vm_name }}.ign" {% elif os_type == 'microos' %} virt-install \ --name {{ vm_name }} \