Proxmox KVM 虚拟机模板 创建与导入

要求

虚拟机模板必须符合以下规范:

  • 资源配置:所有模板参数(CPU核心数、内存、系统磁盘大小)必须小于您计划向客户提供的最小软件包。该模块可以在部署期间扩展磁盘并增加CPU/内存,但无法缩小它们。
  • 多磁盘布局:如果您计划提供位于不同存储位置的多个磁盘的虚拟机,请在模板中预先在相应的存储位置创建这些磁盘。否则,Proxmox 可能会在克隆过程中将所有磁盘合并到同一存储位置。
  • Cloud-init 驱动器:克隆后,要自动配置虚拟机,必须使用 Cloud-init 磁盘。
  • 分区布局:系统磁盘的分区必须按照以下方式排列:根分区位于分区表中的最后一个cloud-initramfs-growroot分区。这是为了在首次启动时自动扩展根文件系统所必需的。

云初始化要求

虚拟机自动配置需要使用cloud-init 。该模块使用 cloud-init 进行以下设置:

  • 主机名
  • IP地址和网络配置
  • DNS服务器
  • 用户账号和密码
  • SSH密钥

如果没有 cloud-init,该模块在克隆后无法自动配置虚拟机的网络和凭据。

创建模板

步骤 1:创建基础虚拟机

在 Proxmox 中创建一个新的虚拟机,并安装所需的操作系统。对系统磁盘进行分区时,请确保根分区位于分区表的最后一个位置,以便在首次启动时自动扩展。

步骤 2:启用 root SSH 访问

该模块使用root用户推送 cloud-init 配置并管理虚拟机。在模板中启用通过 SSH 进行 root 登录:

步骤 3:安装 Cloud-Init

在虚拟机内安装 cloud-init、growroot 和实用程序软件包:

 
 

cloud-initramfs-growroot在部署过程中,根分区(/ cloud-utils-growpart)实际上会扩展以填充调整大小后的磁盘。如果没有它,客户端虚拟机将以原始模板磁盘大小启动。

步骤 4:启用 Cloud-Init 服务

Cloud-init 分为四个 systemd 服务——必须启用所有这些服务,以便虚拟机在每次启动时都能获取配置:

步骤 5:清理虚拟机

在转换为模板之前,请清理虚拟机,以便每个克隆实例都能从头开始:

 

步骤 6:添加 Cloud-Init 驱动器

在 Proxmox Web 用户界面中:

  1. 选择虚拟机
  2. 前往硬件
  3. 点击“添加”>“CloudInit 驱动器”
  4. 选择云初始化驱动器的存储位置

步骤 7:转换为模板

在 Proxmox Web 用户界面中:

  1. 右键单击虚拟机
  2. 选择“转换为模板”

模板配置提示

  • 为每个模板使用唯一的 VMID以避免冲突。
  • 如果您使用的是多节点集群,请将模板保存在共享存储中;或者使用本地存储,并在模块设置中启用迁移功能。
  • 安装 QEMU Guest Agentqemu-guest-agent软件包)以改进虚拟机管理和状态报告。
  • 如果希望 NoVNC 控制台访问正常工作,请配置串口控制台。
  • 尽量减小模板磁盘的大小——该模块可以在部署期间调整磁盘大小,但无法缩小磁盘。
  • 手动克隆模板并验证 cloud-init 是否正确应用配置,以此来测试模板。

预制模板

如果您不想从头开始构建模板,PUQcloud 发布了两套独立的现成 VM 模板,格式为 Proxmox 备份归档(VMA 格式.vma.zst):

  1. 预构建 Proxmox OS 模板— 由 PUQcloud 从零开始构建的自定义最小安装。
  2. 具有 root 访问权限的官方云镜像— 上游云镜像(Debian Cloud、Ubuntu Cloud、CentOS GenericCloud)经过修改,以便 root SSH 登录开箱即用。

两套数据集都托管在同一个根文件夹下:

下载预构建的 Proxmox 操作系统模板

自定义 PUQcloud 构建 — 5 GBvirtio磁盘,无交换空间,最小安装,启用 root SSH,默认密码puqcloud,时区 Europe/Warsaw。

Debian

Ubuntu

CentOS

Proxmox

具有 Root 访问权限的官方云镜像

这些是来自 Debian、Ubuntu 和 CentOS 的上游云镜像,由 PUQcloud 修改,开箱即用即可启用 root 用户 SSH 登录。如果您更喜欢官方发行版构建版本而不是自定义版本,请使用这些镜像。

默认的上游云镜像会禁用 root 用户 SSH 登录,并创建一个非 root 用户(debian,,)。该模块需要此帐户来推送 cloud- ubuntuinit配置并运行管理命令——这就是存在“具有 root 访问权限”变体的原因。centosroot

Debian

Ubuntu

CentOS

文件名可能会随时间更改。如果直接链接返回 404 错误,请在files.puqcloud.com上打开父文件夹,并下载适用于您所需操作系统版本的最新压缩包。

导入预制模板

  1. 将文件复制.vma.zst到您的 Proxmox 节点,例如复制到/var/lib/vz/dump/
     
  2. 将备份恢复到新的 VMID(选择一个空闲的 ID,例如 12344 9012)和目标存储(例如 12345 local-lvm):
     
     
     
    或者,使用 Proxmox Web UI:数据中心 > 存储 > 备份 > 恢复
  3. 打开已恢复的虚拟机,更改默认 root 密码(puqcloud针对预构建集),验证 cloud-init 驱动器是否存在,然后右键单击虚拟机并选择“转换为模板”

免责声明:使用这些操作系统需自行承担风险。不保证预置模板或 root 权限云镜像的正确运行或安全性。请务必在提供给客户之前对其进行审查、更新和加固。

支持的操作系统

该模块支持 Proxmox 可以作为 KVM 虚拟机运行的任何操作系统,前提是该操作系统已安装并运行 cloud-init(Windows 系统下为 cloudbase-init)。经测试,已知可正常工作:

  • Linux:Debian、Ubuntu、CentOS、AlmaLinux、Rocky Linux、openSUSE、Proxmox 备份服务器
  • Windows:服务器/桌面版本(已cloudbase-init安装)

posted @ 2026-05-07 11:32  木子欢儿  阅读(9)  评论(0)    收藏  举报