环境准备
前提条件
Rocky Linux 10系统模板封装需提前获取ISO镜像,并将其添加至ZStack Cloud,以备操作系统安装时使用。请注意以下内容:- 用户需在官网自行获取Rocky Linux 10安装镜像,并遵守相关授权许可。
- 本文档参考版本为:Rocky-10.2-x86_64-minimal.iso
操作步骤
-
添加安装镜像。
在ZStack Cloud主菜单,点击,进入镜像界面。点击添加镜像,弹出添加镜像界面。
参考以下示例输入相应内容:- 名称:设置镜像名称
- 简介:设置镜像简介
- 镜像类型:选择系统镜像
- 镜像格式:选择iso
- CPU架构:选择x86_64
- 平台:选择Linux
- 操作系统:选择Rocky Linux 10
- Virtio:开启Virtio
- 镜像服务器:选择已添加至云平台的镜像服务器
- 镜像路径:添加URL路径或上传本地文件,本示例选择本地文件并上传镜像Note: 添加本地文件作为镜像,采用了本地浏览器作为中转上传镜像,请勿刷新或关闭当前浏览器,也不可停止管理节点服务,否则将添加失败。
- BIOS模式:选择UEFI
Note: x86_64版本要求x86-64-v3,请选择满足要求的物理机和云主机CPU模式。
封装模板
安装操作系统
背景信息
安装操作系统包含以下步骤:- 创建云主机。
- 安装Rocky Linux 10。
操作步骤
-
创建云主机。
在ZStack Cloud创建云主机,并使用安装镜像引导云主机启动,详情可参考《用户手册》的创建云主机章节。本示例使用2个vCPU、4 GiB内存和40 GiB根云盘,启动模式与安装镜像保持一致。
-
安装Rocky Linux 10。
配置模板系统
背景信息
模板系统配置包含以下步骤:- 指定Hostname。
- 配置网络。
- (可选)安装性能优化工具。
- (可选)安装cloud-init。
操作步骤
-
指定Hostname。
执行以下命令指定主机名:
sudo hostnamectl set-hostname localhost.localdomain -
配置网络。
本教程采用单网卡IPv4 DHCP。选择实际以太网连接UUID,清除源系统的静态地址、DNS和网卡绑定。连接修改默认持久保存。
nmcli -f NAME,UUID,TYPE,DEVICE connection show --active PROFILE="REPLACE_WITH_CONNECTION_UUID"sudo nmcli connection modify "$PROFILE" \ connection.autoconnect yes connection.interface-name "" \ ipv4.method auto ipv4.addresses "" ipv4.gateway "" \ ipv4.routes "" ipv4.dns "" ipv4.dns-search "" \ ipv4.ignore-auto-dns no ipv4.ignore-auto-routes no \ ipv4.dhcp-client-id mac \ 802-3-ethernet.mac-address "" \ 802-3-ethernet.cloned-mac-address permanentsudo nmcli connection up "$PROFILE" nmcli device showNote: 通过控制台执行,避免网络切换中断SSH。确认DHCP提供的DNS可用,并停用不再使用的旧自动连接配置。 -
(可选)安装性能优化工具。
sudo dnf install -y tar在源云主机详情页挂载性能优化工具ISO。执行以下命令,将DEVICE替换为实际光驱设备(例如/dev/sr0)。安装失败时先处理错误;介质仍挂载时,确认未被使用后再卸载。
( set -e DEVICE="REPLACE_WITH_OPTICAL_DEVICE" test -b "$DEVICE" sudo mkdir -p /mnt/guesttools if mountpoint -q /mnt/guesttools; then printf '%s\n' 'Mount point already in use; inspect it before continuing.' exit 1 fi sudo mount -o ro "$DEVICE" /mnt/guesttools test -f /mnt/guesttools/zs-tools-install.sh cd /mnt/guesttools sudo bash ./zs-tools-install.sh cd / sudo umount /mnt/guesttools )图 6. GuestTools安装提示 
Note: 安装程序可能提示zs-tools is not verified for os: rocky10。请确认当前平台GuestTools对目标版本的支持情况;不要修改发行版标识绕过检测。若未安装QGA,从官方仓库补装,并确认Guest Agent通道存在后启动服务:
sudo dnf install -y qemu-guest-agent && test -e /dev/virtio-ports/org.qemu.guest_agent.0 && sudo systemctl start qemu-guest-agent -
(可选)安装cloud-init。
如需User Data或SSH公钥初始化功能,可安装cloud-init。使用root或具有sudo权限的账户,从官方仓库安装以下软件。
sudo dnf install -y cloud-init openssh-server && sudo systemctl enable --now sshd保留SELinux和防火墙策略。在/etc/cloud/cloud.cfg.d/99-template.cfg中添加以下配置,使NetworkManager管理网络,cloud-init管理初始化;同名文件已存在时合并修改。
network: config: disabled preserve_hostname: false ssh_deletekeys: true ssh_pwauth: falseNote: SSH密码认证关闭。请核对cloud-init默认登录用户,并在使用镜像创建云主机时为该用户提供SSH公钥。保存后重启源云主机。
sudo systemctl reboot
创建系统模板
背景信息
创建系统模板包含以下步骤:- 创建镜像。
- 导出镜像。
操作步骤
-
创建镜像。
移除临时文件、安装应答文件中的凭据、临时账户和命令历史,保留使用镜像所需的登录账户及认证配置。cloud-init清理不会清除本地账户密码。
已安装cloud-init时,确认其支持以下清理选项且已按前文配置首次启动生成SSH主机密钥。未安装时,以下命令仅重置机器ID,保留现有网络配置及SSH主机密钥,然后关机。未安装cloud-init的镜像需自行安排每台云主机SSH主机密钥的重新生成。
sudo bash <<'CLEANUP' set -e if command -v cloud-init >/dev/null 2>&1; then cloud-init clean --logs --machine-id --seed rm -f /etc/ssh/ssh_host_*_key /etc/ssh/ssh_host_*_key.pub else truncate -s 0 /etc/machine-id fi if [ -d /var/lib/dbus ]; then rm -f /var/lib/dbus/machine-id ln -s /etc/machine-id /var/lib/dbus/machine-id fi sync systemctl poweroff CLEANUPNote: 仅在模板源云主机执行。失败时先处理错误;清理后不要重新启动源云主机,否则需重新清理后再创建镜像。确认云主机已停止,并卸载安装ISO和性能优化工具ISO。
在所创建云主机详情页,点击,进入创建镜像界面。
可参考以下示例输入相应内容:- 名称:设置镜像名称
- 简介:可选项,可留空不填
- 镜像类型:选择系统镜像
- 镜像服务器:选择已创建的镜像服务器
图 7. 创建系统镜像 
-
导出镜像
导出镜像用于其他云平台直接使用该镜像创建云主机,不同类型镜像服务器的导出方法不同:
- ImageStore类型镜像服务器。
在镜像页面点击按钮,即可导出镜像。
镜像生成后,可以在总览页面复制已导出的镜像URL下载镜像,也可以在导出记录页面复制已导出的镜像URL或直接点击下载镜像。
- Ceph类型镜像服务器。支持在UI和镜像服务器上导出镜像。
- 在UI上导出:
在镜像页面点击按钮,即可导出镜像。
镜像导出后,可在总览页面复制已导出的镜像URL下载镜像,也可在导出记录页面复制已导出的镜像URL或直接点击下载镜像。
- 在镜像服务器上导出:
- 进入已创建镜像的总览页面,复制安装路径。
- 登录Ceph服务器终端,使用rbd
export命令导出,例如:假定获取到的安装路径为ceph://bak-t-cac5eee23a204c1a914d1743f1584644/7232237c0059409babcd1c7a69452b98,使用以下命令导出镜像:
[root@ceph-node1 ~]# rbd export bak-t-cac5eee23a204c1a914d1743f1584644/7232237c0059409babcd1c7a69452b98 /root/export-test.qcow2 [root@ceph-node1 ~]# # bak-t字段表示镜像安装路径 [root@ceph-node1 ~]# # /root/export-test.qcow2表示导出的目标路径及文件名Note: rbd export命令中不包含 ceph:// 前缀。
- 在UI上导出:
- ImageStore类型镜像服务器。





