×

从零到可登录:PVE cloud-init魔法,Debian11虚拟机光速上线

hqy hqy 发表于2025-10-15 15:17:27 浏览6 评论0

抢沙发发表评论

   从零到可登录:PVE cloud-init魔法,Debian11虚拟机光速上线    


00 先说两句    装系统这件事,21 世纪了还要人肉点“下一步”属实离谱。

这篇把“下载 ISO → 分区 → 设置 root 密码 → 重启”整套祖传流程压缩成两条命令,3 min 内交出能 ssh 登录的 Debian11 虚拟机,剩下的时间摸鱼不香吗?


01 整体步骤脑图

下载官方 cloud 镜像创建空 VM导入 qcow2挂 cloud-init 驱动器写入用户/网络/密钥开机ssh 登录

02 资源准备


项目
推荐值
备注
PVE 版本
≥ 7.4
旧版 cloud-init 有 bug
镜像
debian-11-genericcloud-amd64.qcow2
官方直链[1]
存储
local-lvm
本文以此为例,NFS 同理
网络
vmbr0 桥接
能 DHCP 即可



03 CLI 速通(复制即可跑)

# 0. 进入模板目录cd /var/lib/vz/template/iso# 1. 拉镜像(2 min)wget -q https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-genericcloud-amd64.qcow2# 2. 建裸机qm create 9000 \  --name debian11-ci-template \  --memory 1024 \  --cores 1 \  --scsihw virtio-scsi-single \  --net0 virtio,bridge=vmbr0# 3. 导入系统盘qm importdisk 9000 debian-11-genericcloud-amd64.qcow2 local-lvmqm set 9000 --scsi0 local-lvm:vm-9000-disk-0,iothread=1qm set 9000 --boot order=scsi0# 4. 挂 cloud-init 驱动器qm set 9000 --ide2 local-lvm:cloudinit# 5. 注入配置(按自己环境改)qm set 9000 --ciuser debianqm set 9000 --cipassword $(openssl passwd -6 debian123)qm set 9000 --sshkey ~/.ssh/id_rsa.pubqm set 9000 --ipconfig0 ip=dhcp            # 静态写法见下qm set 9000 --nameserver 8.8.8.8qm set 9000 --searchdomain local# 6. 扩容 + 优化qm resize 9000 scsi0 +20Gqm set 9000 --serial0 socket --vga serial0qm set 9000 --agent enabled=1,fstrim_cloned_disks=1# 7. 模板化(以后只读)qm template 9000

一行注释都没有,就是让你直接粘。


04 静态 IP 写法示例

qm set 9000 --ipconfig0 "ip=192.168.1.99/24,gw=192.168.1.1"

多网卡继续加 --ipconfig1 ... 即可,cloud-init 会自己写 /etc/network/interfaces.d/50-cloud-init.cfg


05 Web 界面点鼠标对照表


CLI 动作
Web 路径
关键选项
qm importdisk
节点 → 存储 → 内容 → 上传
类型选“磁盘映像”
qm set --scsi0
VM → 硬件 → 未使用的磁盘 0 → 编辑
总线选 SCSI
qm set --ide2 cloudinit
VM → 硬件 → 添加 → CloudInit Drive
存储选 local-lvm
用户/密码/密钥
VM → Cloud-Init
下拉菜单全在一页
模板转换
VM → 更多 → 转换为模板
灰掉即成功



06 克隆 & 开机

# 从模板派生第一台生产机qm clone 9000 101 --name web01qm set 101 --ipconfig0 ip=192.168.1.101/24,gw=192.168.1.1qm start 101# 30 s 后ssh debian@192.168.1.101

第一次 ssh 会看到系统正在扩容根分区,debian-cloud 镜像自带 growpart + resize2fs,无需人工 fdisk


07 验证 checklist


检查项
命令
预期结果
cloud-init 完成
sudo cloud-init statusstatus: done
根分区大小
df -h /
≈ 20 G
密钥登录
ssh -i ~/.ssh/id_rsa debian@IP
免密进入
控制台
qm console 101
无需密码也能 login(serial)



08 排错速查


现象
90% 原因
秒修
开机卡 GRUB
用了 IDE 总线
改回 SCSI
DHCP 拿不到 IP
vmbr0 没桥接物理口
ip a
 看主接口是否 enslaved
ssh 拒绝密码
镜像默认禁止 root 密码
用普通用户 + 密钥,或 qm set --ciuser root
cloud-init 不执行
没挂 CloudInit Drive
确认 ide2 存在且容量 4 MB



09 一键清理脚本(误测后滚)

qm stop 101 2>/dev/null; qm destroy 101 2>/dev/null

模板机永远只读,随便折腾克隆体。


10 结语

把上面 30 行命令写成 Ansible playbook,就能在 5 台物理节点上批量吐出 200 台 Debian11,全程零 ISO、零交互。

下次再有人让你“进去装个系统”,直接把这篇甩给他——5 min 搞不定你去骂他。

引用链接

[1] 官方直链: https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-genericcloud-amd64.qcow2


打赏

本文链接:https://www.kinber.cn/post/5713.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客