ubuntu-20.04-server-cloudimg 的 Cloud-init 可以工作,但 ubuntu-20.04-minimal-cloudimg-amd64 不行

ubuntu-20.04-server-cloudimg 的 Cloud-init 可以工作,但 ubuntu-20.04-minimal-cloudimg-amd64 不行

因此,我尝试使用带有最小图像的 cloud-init (https://cloud-images.ubuntu.com/minimal/releases/focal/release/ubuntu-20.04-minimal-cloudimg-amd64.img),但似乎根本不起作用。完全相同的过程适用于服务器映像 (https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img)。

我正在使用元数据和用户数据genisoimage -output cloud-init.iso -volid cidata -joliet -rock meta-data user-data

然后我启动它virt-install --connect qemu:///system --virt-type kvm --os-type linux --os-variant ubuntu20.04 --disk path=image.qcow2,bus=scsi,format=qcow2 --disk path=cloud-init.iso,device=cdrom --controller type=scsi,model=virtio-scsi --import --network network:default

在用户数据中,我尝试仅使用用户数据中的 runcmd 来触摸 /debug 来调试它,但之后手动启动它进行调查时没有这样的文件,所以 runcmd 似乎根本无法运行。请记住,完全相同的过程可以很好地与 server-cloudimg 配合使用。dpkg -l在最小图像上运行显示正在安装的 cloud-init 包。

用户数据

#cloud-config
runcmd:
 - touch /debug

元数据

instance-id: iid-0

答案1

以防有人遇到同样的问题。

评论来自安德鲁是正确的。但是我们仍然可以启动系统进行 IP 分配。

  • 创建 cidata.iso

    mkisofs -o cidata.iso -V cidata -J -r user-data meta-data

  • 创建虚拟机。

    sudo virt-install
    --import
    --connect qemu:///system
    --name test
    --ram $MEM
    --vcpus $CPU
    --disk path=/kvm/test.qcow2,size=10
    --disk西数
    --os-type linux
    --os-variant ubuntu22.04
    --network bridge:virbr0,model=virtio
    --graphics none
    --noautoconsole

如果仍然想尝试网络启动,请python3 -m http.server从包含用户数据和元数据的文件夹运行,然后附加到 virt-install cmd。

--sysinfo type=smbios,system_serial=ds=nocloud-net;s=http://_gateway:8000/ //for network boot.

相关内容