
我们现在基于你提供的环境要求:
-
下载目录:
/var/lib/vz/template/iso -
模板虚拟机编号:
999011 -
镜像格式:
.qcow2 -
目标: 制作一个支持
cloud-init的 Ubuntu 24.04 LTS 模板,禁用公钥登录、启用密码登录、启用 SSH、安装 QEMU Guest Agent、清理历史。
✅ 目录结构调整建议
虽然你把镜像放到 /var/lib/vz/template/iso,但 导入 .qcow2 镜像时并不要求一定在该目录。PVE 会从那里拷贝一份。如果你喜欢集中管理镜像,可以继续使用该目录。
?️ 完整制作步骤(基于 .qcow2 格式镜像)
第 1 步:下载 Ubuntu 24.04 LTS .qcow2 格式 Cloud Image
cd /var/lib/vz/template/iso
wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img -O ubuntu-24.04.qcow2
第 2 步:创建虚拟机(不分配磁盘)
qm create 999011 \
--name ubuntu-24.04-template \
--memory 2048 \
--cores 2 \
--net0 virtio,bridge=vmbr0 \
--serial0 socket \
--vga serial0 \
--ostype l26
第 3 步:导入 qcow2 磁盘到虚拟机
qm importdisk 999011 /var/lib/vz/template/iso/ubuntu-24.04.qcow2 local-lvm
local-lvm是你的存储池名称,请根据实际情况修改。
第 4 步:挂载磁盘并配置启动项
qm set 999011 \
--scsihw virtio-scsi-pci \
--scsi0 local-lvm:vm-999011-disk-0 \
--boot c \
--bootdisk scsi0
第 5 步:添加 cloud-init 支持磁盘
qm set 999011 --ide2 local-lvm:cloudinit
第 6 步:配置 cloud-init 网络和密码
# 使用 DHCP 分配 IP
qm set 999011 --ipconfig0 ip=dhcp
# 设置默认登录用户和密码(cloud-init)
qm set 999011 --ciuser cloudadmin --cipassword Secure@123456
第 7 步:启动虚拟机并登录初始配置
qm start 999011
qm terminal 999011
? 第 8 步:虚拟机内配置(复制以下命令执行)
# 切换为 root
sudo -i
# 更新系统
apt update && apt upgrade -y
# 安装 QEMU Guest Agent
apt install -y qemu-guest-agent
systemctl enable qemu-guest-agent
systemctl start qemu-guest-agent
# 启用 SSH 服务
systemctl enable ssh
systemctl start ssh
# 启用密码登录,禁用公钥登录
sed -i 's/^#\?PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
sed -i 's/^#\?PubkeyAuthentication yes/PubkeyAuthentication no/' /etc/ssh/sshd_config
sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
systemctl restart ssh
# 清理日志、历史记录、cloud-init 状态
apt autoremove --purge -y
apt clean
cloud-init clean --logs
truncate -s 0 /var/log/*.log
rm -f /var/log/wtmp /var/log/btmp
history -c && unset HISTFILE
? 第 9 步:关闭并转换为模板
qm shutdown 999011
# 等待关机完成后执行:
qm template 999011
✅ 克隆虚拟机测试
# 克隆模板为测试虚拟机
qm clone 999011 100 --name ubuntu-test-vm --full
qm start 100
你现在拥有一个可大规模部署的 Ubuntu 24.04 模板,默认支持:
-
cloud-init自动注入 IP、用户、密码 -
启用了 SSH 密码登录
-
禁用了公钥认证
-
开启了 QEMU Guest Agent
-
自动获取 IP(DHCP)
-
清除了所有历史和日志
