基于 Ubuntu Cloud Image 在 Proxmox VE 上创建一个 可用于制作模板的虚拟机 。
注意!如果未将 local-lvm 和 local 分区合并, --scsi0 参数的值应该是 local-lvm
Proxmox VE Linux 模板创建规范(Ubuntu 22.04 Cloud Image 示例)
1. 下载 Cloud Image
bash
wget https://cloud-images.ubuntu.com/releases/jammy/release/ubuntu-22.04-server-cloudimg-amd64.img -P /var/lib/vz/template/iso/
- 建议保存到
/var/lib/vz/template/iso/,方便统一管理模板。 - Cloud Image 已经最小化,适合 Cloud-Init 和模板使用。
2. 创建虚拟机(VMID: 9000)
bash
qm create 9000 \
--name ubuntu-22.04-cloud-base-v1.0 \
--memory 2048 \
--cores 2 \
--net0 virtio,bridge=vmbr0
- VMID:唯一标识 VM(模板一般使用 9000+ 避免和生产 VM 冲突)
- 内存/CPU:模板可以根据默认需求设置,克隆后可调整
- 网卡类型 :virtio,桥接到
vmbr0
3. 导入 Cloud Image 磁盘
bash
qm importdisk 9000 \
/var/lib/vz/template/iso/ubuntu-22.04-server-cloudimg-amd64.img \
local \
--format qcow2
- 格式 qcow2:支持快照,节省存储空间
- 存储 local :可根据实际存储选择
local-lvm或其他存储池
4. 配置磁盘与启动顺序
bash
qm set 9000 \
--scsihw virtio-scsi-pci \
--scsi0 local:9000/vm-9000-disk-0.qcow2 \
--ostype l26 \
--boot order=scsi0
- SCSI 控制器 :推荐
virtio-scsi-pci(高性能、支持热迁移和快照) - boot order:指定从 SCSI 磁盘启动
5. 添加 Cloud-Init 磁盘
bash
qm set 9000 --ide2 local:cloudinit
qm set 9000 --agent enabled=1
- Cloud-Init 磁盘:用于自动化初始化 VM(hostname、IP、SSH key)
- QEMU Guest Agent :开启后支持
qm agent获取信息、优雅关机、文件系统冻结
6. 启动并登录 VM(可选)
bash
qm start 9000
qm terminal 9000
- 进入 VM 后,可以执行以下步骤进一步规范化模板:
bash
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装 QEMU Guest Agent
sudo apt install -y qemu-guest-agent
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent
# 清理 Cloud-Init 信息(保证模板通用)
sudo cloud-init clean
# 清理日志和临时文件
sudo rm -rf /tmp/*
sudo rm -f /var/log/*.log
注:保持最小化系统,去除特定主机信息,提高模板通用性。
7. 关闭虚拟机并制作模板
bash
sudo shutdown now
qm template 9000
- VM 转为模板后,可以通过克隆创建生产 VM
- 克隆时可以通过 Cloud-Init 自动分配 hostname、IP 和 SSH key
8.调整磁盘大小
shell
qm resize 100 scsi0 100G