基于 KVM 的 Cloudbase-init 使用教程(01):Windows 镜像模板制作
最近在研发 KVM 虚拟化管理平台,需要在新建实例时自动初始化主机名、实例 ID、IP 等配置。本来打算自己开发一套初始化流程,调研后发现社区已有成熟方案:
- Linux:使用 cloud-init
- Windows:使用 cloudbase-init
两者在配置模型上高度兼容(尤其是 NoCloud/ConfigDrive 这类场景),能显著降低维护成本。
本篇(01)主要讲 Windows 模板镜像制作;下一篇会基于该模板演示如何创建实例并下发初始化数据。
准备
你将得到什么
- 一个可复用的 Windows Server 2022 模板镜像(qcow2)
- 模板内已安装并配置好 cloudbase-init(后续可通过 ConfigDrive/NoCloud 注入初始化信息)
环境与材料
- 宿主机:已安装 KVM + libvirt,并可使用
virt-install - 网络:示例使用 Linux bridge
br0(请按你的实际环境替换) - Windows ISO:Windows Server 2022 Standard(示例为中文 ISO)
- VirtIO 驱动 ISO:VirtIO Windows Drivers ISO(示例使用
virtio-win-0.1.285.iso) - cloudbase-init 安装包:cloudbase-init Releases(示例使用
1.1.6)
提示
如果你希望 cloudbase-init 输出日志到串口(便于宿主机采集),请确保虚拟机设备里存在 COM1(serial port)。没有也不影响功能,只是少了串口日志。
1. 创建 Windows 模板虚拟机
在宿主机创建一个用于制作模板的虚拟机。我这里使用 virt-install,Windows 安装过程(分区/账号等)请按你的习惯完成即可。