文档目录

环境准备

前提条件

Debian 13系统模板封装需提前获取ISO镜像,并将其添加至ZStack Cloud云平台,以备操作系统安装时使用。请注意以下内容:
  • 用户需在官网自行获取Debian 13安装镜像,并遵守相关授权许可。
  • 本文档参考版本为:debian-13.6.0-amd64-netinst.iso。

背景信息

本章节分为以下流程:
  1. 添加安装镜像。
  2. 创建云盘规格。

操作步骤

  1. 添加安装镜像。

    在ZStack Cloud主菜单,点击资源中心 > 云资源池 > 计算配置 > 镜像,进入镜像界面。点击添加镜像,弹出添加镜像界面。

    参考以下示例输入相应内容:
    • 名称:设置镜像名称
    • 简介:可选项,可留空不填
    • 镜像类型:选择系统镜像
    • 镜像格式:选择iso
    • CPU架构:选择x86_64
    • 平台:选择Linux平台
    • 操作系统:选择Debian 13
    • Virtio:默认打开
    • 镜像服务器:选择已创建的镜像服务器
    • 镜像路径:添加URL路径或上传本地文件,本示例选择本地文件并上传镜像
      Note: 添加本地文件作为镜像,采用了本地浏览器作为中转上传镜像,请勿刷新或关闭当前浏览器,也不可停止管理节点服务,否则将添加失败。
    • BIOS模式:选择Legacy
    如图 1所示:
    图 1. 添加镜像


  2. 创建云盘规格。

    在ZStack Cloud主菜单,点击资源中心 > 云资源池 > 计算配置 > 云盘规格,进入云盘规格界面。点击创建云盘规格,弹出创建云盘规格界面。

    可参考以下示例输入相应内容:
    • 名称:设置云盘规格名称
    • 简介:可选项,可留空不填
    • 容量:设置云盘容量大小
      Note: 本例使用40 GiB系统云盘。
    • 设置磁盘带宽:可选项,可设置云盘的I/O带宽上限
    • 设置磁盘IOPS:可选项,可设置云盘每秒的读写次数上限
    • 高级参数:可选项,可通过JSON格式配置高级参数
    如图 2所示:
    图 2. 创建云盘规格


模板封装

安装操作系统

背景信息

安装操作系统包含以下步骤:
  1. 创建云主机。
  2. 安装Debian 13。

操作步骤

  1. 创建云主机。

    在ZStack Cloud创建云主机,并使用安装镜像引导云主机启动,详情可参考《用户手册》的创建云主机章节。本例使用2核CPU、4 GiB内存、40 GiB系统云盘及单网卡IPv4 DHCP网络。

  2. 安装Debian 13。
    1. 进入图形安装程序。

      从ISO启动,在引导菜单中选中Graphical install,及时按Enter进入图形安装程序。

      如图 3所示:

      图 3. Debian图形安装入口

      选中Graphical install的Debian BIOS引导菜单
    2. 选择语言、区域和键盘。

      本示例选择English语言,通过other、Asia选择China。在Configure locales中选择United States对应的en_US.UTF-8,键盘选择American English。

      如图 4所示:

      图 4. 选择en_US.UTF-8

      英文安装器中选中United States和en_US.UTF-8
    3. 安装Debian。

      使用DHCP配置网络,设置主机名;没有域时保留Domain为空。创建管理员账户;若未设置root密码,需确认首个用户具备sudo权限。随后按以下页面划分新建根云盘。

      在分区方式中选择Guided - use entire disk,点击Continue。

      核对目标仅为新建的根云盘,选择后点击Continue。本例为vda,安装器显示42.9 GB,对应创建时的40 GiB。

      选择All files in one partition (recommended for new users),点击Continue。

      核对自动生成的分区。本例为40.7 GB ext4根分区(挂载点/)和2.2 GB swap;实际大小以所选磁盘和安装器结果为准。选择Finish partitioning and write changes to disk,点击Continue。

      Important: 本例根分区后还有swap分区,适用于固定容量模板;增加云盘容量不会自动使根分区获得磁盘末尾的空间。若需要根分区自动扩容,应在安装时另行规划根分区位于磁盘末尾的布局,并验证分区及文件系统扩容;不要直接移动或删除本例已安装系统的分区。

      如图 5所示:

      图 5. 核对自动分区摘要

      核对自动分区摘要

      再次确认待格式化的分区仅属于目标新建磁盘。选择Yes,点击Continue写入更改并开始基础系统安装;该操作会覆盖目标分区的数据。

      后续软件选择中选择SSH server和standard system utilities,不安装桌面环境。网络安装需要可访问的Debian镜像源。将GRUB安装到目标根磁盘。

      若网络镜像不可用,可返回并在Continue without a network mirror中选择Yes继续离线安装。此时软件列表可能只有standard system utilities,没有SSH server选项;选择可用的标准工具继续。系统启动后需查询并补齐模板组件,不能将该离线选择视为已安装SSH服务。

      如图 6所示:

      图 6. 无网络镜像时的软件选择

      离线软件列表仅显示standard system utilities

      安装GRUB时选择已安装系统所在的根磁盘,本例为/dev/vda,点击Continue。

      等待出现Installation complete提示。按提示移除安装介质,将HardDisk设为首个启动项,再点击Continue重启。下一步确认从根云盘启动,无需重复关机和启动。

      如图 7所示:

      图 7. Debian安装完成

      Debian安装完成
    4. 从根云盘启动并检查系统。

      卸载安装ISO,将HardDisk设为首个启动项。启动后通过控制台登录已安装的系统,再进行模板配置。

配置模板系统

前提条件

通过控制台以root登录,或使用具备sudo权限的账户执行sudo -i。以下命令逐条执行,失败时修复后再继续。

背景信息

模板系统配置包含以下步骤:
  1. 指定Hostname。
  2. (可选)安装cloud-init。
  3. 配置网络。
  4. (可选)安装性能优化工具。

操作步骤

  1. 指定Hostname。
    执行以下命令指定模板系统的主机名:
    hostnamectl set-hostname localhost.localdomain
  2. (可选)安装cloud-init。

    如需通过User Data或SSH公钥初始化云主机,使用与操作系统版本匹配的软件源安装cloud-init。

    apt-get update
    apt-get install -y cloud-init isc-dhcp-client cloud-guest-utils
    Note: 离线安装需准备同版本软件源及完整依赖;netinst安装介质不包含全部组件。
    Note: 如需通过SSH登录云主机,还需安装并启用openssh-server;未安装cloud-init时,User Data和SSH公钥自动注入不可用。
  3. 配置网络。

    已安装cloud-init时,按以下步骤配置网络。未安装时保留安装器的网络配置,确保网卡使用DHCP并自动连接,不执行本步骤中的cloud-init配置和清理命令。

    本例采用ifupdown管理单网卡IPv4 DHCP网络。执行ip -br link确认网卡名,在/etc/cloud/cloud.cfg.d/99-ipv4-only.cfg中写入以下配置,以实际网卡名替换ens3。

    network:
      version: 2
      ethernets:
        ens3:
          dhcp4: true
          dhcp6: false
    Note: 此配置覆盖数据源的网络配置,仅适用于单网卡IPv4场景;多网卡、静态IP或双栈环境需按实际需求调整。检查/etc/network/interfaces及interfaces.d,避免重复定义同一网卡。
    若cloud-init已生成旧网络配置,先备份网络配置,再执行:
    cloud-init clean --configs network
    将未清理的旧生成文件移出interfaces.d,例如50-cloud-init,保留loopback及source配置。该操作会重新执行初始化,仅用于当前模板构建云主机。

    配置完成后执行systemctl reboot重启云主机。

  4. (可选)安装性能优化工具。

    安装性能优化工具前,安装以下依赖:

    apt-get update
    apt-get install -y --no-install-recommends \
      python3 tar libglib2.0-0t64 libatomic1 sudo

    在云主机详情页挂载当前平台的GuestTools ISO。确认/dev/cdrom对应该介质,且/mnt/cdrom未挂载其他介质,再执行以下命令。

    mkdir -p /mnt/cdrom
    mount /dev/cdrom /mnt/cdrom
    cd /mnt/cdrom
    bash ./zs-tools-install.sh

    若安装器询问是否将python3链接为python,按提示输入y。安装完成后退出目录并卸载介质。

    cd ~
    umount /mnt/cdrom
    图 8. GuestTools安装输出及兼容性提示

    安装器成功输出及Debian 13未经验证的提示
    Note: 若出现zs-tools is not verified for os提示,表示该操作系统尚未经过工具验证,不能据安装成功判断官方兼容性。

创建系统模板

背景信息

创建系统模板包含以下步骤:
  1. 创建镜像。
  2. 导出镜像。

操作步骤

  1. 创建镜像。

    以root执行以下命令清理模板身份并关机。清理前删除临时凭据,保留新云主机可使用的登录账户;清理后不要再次启动模板云主机。

    Note: 未安装cloud-init时,以下命令保留SSH主机密钥,避免缺少密钥生成机制导致SSH无法启动;此类镜像需自行安排每台云主机的密钥重新生成,不具备cloud-init自动初始化能力。

    已安装cloud-init时,确认初始化成功且ssh模块会在首次启动生成SSH主机密钥,再执行清理。

    sh -eu <<'CLEANUP'
    test "$(id -u)" -eq 0
    dbus_id=/var/lib/dbus/machine-id
    if [ -L "$dbus_id" ]; then
        test "$(readlink -f "$dbus_id")" = /etc/machine-id
    elif [ -e "$dbus_id" ]; then
        test -f "$dbus_id"
    fi
    if command -v cloud-init >/dev/null 2>&1; then
        cloud-init clean --logs --machine-id
        rm -f /etc/ssh/ssh_host_*
    else
        printf 'uninitialized\n' > /etc/machine-id
    fi
    if [ -d /var/lib/dbus ] && [ ! -L "$dbus_id" ]; then
        rm -f "$dbus_id"
        ln -s /etc/machine-id "$dbus_id"
    fi
    sync
    systemctl poweroff
    CLEANUP

    在所创建云主机详情页,点击更多操作 > 镜像与ISO > 创建镜像,进入创建镜像界面。

    可参考以下示例输入相应内容:
    • 名称:设置镜像名称
    • 简介:可选项,可留空不填
    • 镜像类型:选择系统镜像
    • 镜像服务器:选择已创建的镜像服务器
    如图 9所示:
    图 9. 创建镜像


  2. 导出镜像
    导出镜像用于其他云平台直接使用该镜像创建云主机,不同类型镜像服务器的导出方法不同:
    • ImageStore类型镜像服务器。

      在镜像页面点击操作 > 导出镜像按钮,即可导出镜像。

      镜像生成后,可以在总览页面复制已导出的镜像URL下载镜像,也可以在导出记录页面复制已导出的镜像URL或直接点击下载镜像。

    • Ceph类型镜像服务器。支持在UI和镜像服务器上导出镜像。
      • 在UI上导出:

        在镜像页面点击操作 > 导出镜像按钮,即可导出镜像。

        镜像导出后,可在总览页面复制已导出的镜像URL下载镜像,也可在导出记录页面复制已导出的镜像URL或直接点击下载镜像。

      • 在镜像服务器上导出:
        1. 进入已创建镜像的总览页面,复制安装路径。
        2. 登录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:// 前缀。

后续操作

至此,Debian 13系统模板封装已完成,可使用该镜像批量生成云主机。
Debian 13系统模板封装教程 | 5.5.38 | ZStack Cloud · ZCF | ZStack 资源中心