0

我正在尝试使用 cloud-init 和 qemu-kvm 作为管理程序来构建 VM。我有以下使用用户数据构建 VM 的脚本:

# Create an overlay image
qemu-img create -f qcow2 -b "$CLOUD_BASE_IMG" "$1".img

qemu-img resize "$1".img +22G

# Build seed image with the user data and the networking config
cloud-localds "$CUR_PATH"/seed_"$1".img "$CUR_PATH"/user-data.yaml

# Boot the VM
if [ "$1" == "vm2" ]; then
    sudo qemu-system-x86_64 \
        -hda "$CUR_PATH"/"$1".img \
        -hdb "$CUR_PATH"/seed_"$1".img \
        -m 2G --enable-kvm \
        -serial file:"$1".log \
        -device e1000,netdev=mgmt,mac=00:AA:BB:CC:01:99 -netdev user,id=mgmt,hostfwd=tcp::2022-:22 \
        -device virtio-net-pci,netdev=data1,mac=00:0a:0a:0a:02:01,ioeventfd=on,mrg_rxbuf=on -netdev tap,ifname=vm2.1,id=data1,script=no,downscript=no
fi

这工作正常,但现在我想通过 cloud-init 构建 VM 并配置网络。我已经读到(refrefcloud-localds可以像这样传递网络配置:

cloud-localds -v --network-config=network-config-v1.yaml \
    seed.img user-data.yaml meta-data.yaml

如果我尝试这样做,则会加载 VM,但未正确加载用户数据,然后我将无法访问 VM。

另外,我在官方文档中找不到任何-v标志和--network-config标志的信息

关于如何以这种方式传递网络配置的任何建议?

4

0 回答 0