玩儿 PVE 的小伙伴们肯定对虚拟机菜单栏中的“cloud-init”选项很眼熟了。cloud-init 是专为云环境中虚拟机的初始化而开发的工具,可以依据模板文件对虚拟机进行配置用户及密码,设置主机名,配置网络,扩容分区等功能。ubuntu cloud-image 是 ubuntu 专为云服务器编译的镜像,需要 cloud-init 或其他初始化工具初始化后正常使用。有了cloud-init 和cloud-image,我们可以很轻易地在 PVE 上批量克隆设置 ubuntu 虚拟机。
本文以 ubuntu 22.04 LTS 和 PVE 8.0.4 为例。
下载 ubuntu cloud-image
ubuntu 官网提供了多个版本的 cloud image 镜像,可依照要求选择下载。
https://cloud-images.ubuntu.com/releases/
以 ubuntu 22.04 LTS 为例,进入对应的文件夹,找到最下方的“release/”:
下载文件名为“ubuntu-22.04-server-cloudimg-amd64.img”的镜像:
将镜像导入 PVE 中
使用任意 ftp/sftp 软件,连接到 PVE 中,将刚刚下载的固件上传至 PVE 中。本文以上传至 PVE 的 root 目录为例。
上传完毕后,使用 ssh 连接 PVE,输入 ls 查看是否成功上传:
root@PVE:~# ls
ubuntu-22.04-server-cloudimg-amd64.img
有以上回显则说明上传成功。如果不是上传至 root 目录,需要先 cd 至上传目录:
root@PVE:~# cd demo
root@PVE:~/demo#
创建虚拟机并导入镜像
打开 PVE 的 web 界面,创建虚拟机,“操作系统”中,选择“不使用任何介质”,客户机操作系统的类别选择 Linux,版本选择 6.x – 2.6 Kernel
“系统”中,显卡和 SCSI 控制器保持默认,机型选择“q35”,BIOS 选择“OVMF (UEFI)”,勾选添加 EFI 磁盘和预注册密钥。可以选择勾选 Qemu 代理(虚拟机中安装相应软件后可以在 PVE web段的虚拟机详情中查看 IP 地址)。
磁盘无须自定,待会儿要删掉。CPU 和 内存 按照个人需求进行更改。网络保持默认即可。
创建完毕后,打开虚拟机的“硬件”选项,分离并移除硬盘:
回到 ssh 中,执行以下命令将 cloud image 导入到虚拟机中,其中,“vmid”是创建虚拟机后的虚拟机 ID,可在 PVE web端的侧边栏中看到,“ubuntu-22.04-server-cloudimg-amd64.img”为镜像文件名,可能需要更改。如果不是上传至 root 目录,则需要填写绝对路径。“local-lvm”是存储池,也可以自行更改。
qm importdisk vmid ubuntu-22.04-server-cloudimg-amd64.img local-lvm
导入成功后应该能看到回显:
transferred x GiB of x GiB (100.00%)
Successfully imported disk as 'unused0:local-lvm:vm-vmid-disk-1'
此时回到虚拟机的硬件菜单,可以看到一个新的硬盘:
选中她,单击上方的“编辑”,将“总线”更改为“SATA”,之后点击“添加”:
此时会有一个“硬盘0 (SATA)”,再次选中,选择上方的“磁盘操作”—“调整大小”:
在此可以输入增量大小:
添加一个“Cloud-init”设备:
之后点击左边栏的“Cloud-Init”,在这里可以编辑用户及密码,ssh公钥和 IP 地址了,编辑完成后,要点击上方的“重生成镜像”。建议大家生成一个ssh公钥连接ssh,cloud image 默认禁止以密码连接 ssh。
完成后,点击左边的“选项”—“引导顺序”,勾选“sata0”并拖到第一位:
然后就可以启动系统了!
如果不想将此转换成模板的话,教程到此就结束了。想要转换成模板便于以后多开的小伙伴们,可以继续往下看。
将虚拟机转换成模板
测试一下没有问题的话,关闭虚拟机。
执行下述步骤前,请先确保选择正确的虚拟机,此操作可能无法挽回。
点击右上角的“更多”—“转换成模板”:
此时概要会变成下图这样:
左边栏的图标也发生变化:
这时,刚刚的虚拟机变成为了“模板”,我们可以克隆该虚拟机来创建多个 ubuntu 系统。
克隆虚拟机
点击右上角的“更多”—“克隆”:
根据个人需要选择“链接克隆”或“完整克隆”。其中,“完整克隆”可以更改目标存储池。
链接克隆 与 完整克隆 的区别的话,一说链接克隆是从模板上创建一个快照,依靠这个快照继续运行的,如果模板被删除,则链接克隆的虚拟机也无法使用了;链接克隆的性能可能比完整克隆的低。完整克隆则是一个完全独立的虚拟机,其性能与克隆的虚拟机相同,但是克隆时间长。如需了解更多信息,建议小伙伴们自行查找。我本人是一直用“完整克隆”的。
本篇文章不可转载。
参考文献
嘟嘟琳 (2023). 一.链接克隆和完整克隆的区别?作业. Available at: https://blog.csdn.net/2301_76871571/article/details/129569857 (Accessed: 5th Oct. 2023)
封面插画选自 mocha@新刊委託中 (2023)的 Cross 。
Copyright secured by Digiprove © 2023 Never.