qm-template¶
一个 Python CLI,用于下载 cloud image、创建支持 Cloud-Init 的 Proxmox VE 虚拟机模板, 并准备本地虚拟机产物。
特性¶
- 多发行版下载:Debian、Ubuntu、Rocky Linux、AlmaLinux、Fedora、 CentOS Stream、Alpine、openSUSE、Arch Linux、FreeBSD 和 Amazon Linux 2023。
- 校验和验证:从各发行版官方校验和文件获取 SHA-256/SHA-512,并与镜像一起保存为
<image>.sha256/.sha512。 - GPG 签名校验:对已签名的校验和或镜像进行验证,公钥来自发行版官方来源并校验 固定指纹。
- 断点续传:使用首个可用的
axel、aria2c、wget或curl,默认显示进度 (可用--quiet关闭),并支持失败重试。 - 单条
qm create ... --template 1命令,而不是一串qm set调用;自动选择 下一个空闲 VM ID,可配置 CPU 类型,并支持可选的 tags、pool、onboot 和 description。 - 远程 Proxmox VE 主机:
create --pve <name>通过 API(Proxmox VE >= 8.4) 和 API token 在远程主机上创建模板,镜像上传到import类型的存储并在后续运行中 复用。每台主机位于[pve.<name>]配置段,可覆盖该主机的[create]、[vmid]和[cloudinit]设置。 - 本地虚拟机产物:
qm-template prepare通过qemu-img转换磁盘格式 (VDI、VMDK、QCOW2、raw 或 VHDX),并用genisoimage/xorriso/mkisofs生成 NoCloud seed ISO,两者与源镜像同目录存放。 - 配置校验:设置及可选的
[distro.<name>]覆盖值由pydantic-settings校验, 可用QM_TEMPLATE_*环境变量覆盖配置文件,qm-template config会把起始配置 打印到 stdout。 - 镜像站友好:通过
[distro.<name>] base_url把任意发行版指向上游或镜像站, 已签名的校验和文件也来自同一 base。 - Shell 补全:由
argcomplete提供,包括每个发行版支持的参数值。 - 调试日志:任何命令都可以用
-v/-vv提高日志详细程度。
快速开始¶
uv tool install qm-template
qm-template download debian
qm-template create --vm-id 9000