文档目录

环境准备

前提条件

Kylin V10 SP3和V11系统模板封装需提前获取ISO镜像,并将其添加至ZStack Cloud,以备操作系统安装时使用。请注意以下内容:
  • 用户需在官网自行获取安装镜像,并遵守相关授权许可。
  • 本文档参考版本为Kylin-Server-V10-SP3-General-Release-2303-X86_64.iso和Kylin-Server-V11-2503-Release-General-20250715-X86_64.iso。

操作步骤

  1. 添加安装镜像。
    在ZStack Cloud主菜单,点击资源中心 > 云资源池 > 计算配置 > 镜像,进入镜像界面。点击添加镜像,弹出添加镜像界面。
    参考以下示例输入相应内容:
    • 名称:设置镜像名称
    • 简介:设置镜像简介
    • 镜像类型:选择系统镜像
    • 镜像格式:选择iso
    • CPU架构:选择CPU架构,本示例选择x86_64
    • 平台:选择Linux
    • 操作系统:选择Kylin-Kylin 10
    • Virtio:开启Virtio
    • 镜像服务器:选择已添加至云平台的镜像服务器
    • 镜像路径:通过URL路径或本地文件上传镜像,本示例通过URL路径上传
    • BIOS模式:选择BIOS模式,支持Legacy、UEFI两种模式,本示例选择Legacy
    如图 1所示:
    图 1. 添加Kylin V10 SP3镜像


    注: V11的操作系统选择Kylin 11,BIOS模式选择UEFI。源云主机与使用模板创建的云主机需使用相同启动模式。
    图 2. V11安装镜像


模板封装

安装操作系统

背景信息

安装操作系统包含以下步骤:
  1. 创建云主机。
  2. 安装Kylin V10 SP3或V11。

操作步骤

  1. 创建云主机。

    在ZStack Cloud云平台创建云主机,并使用安装镜像引导云主机启动,详情可参考《用户手册》的创建云主机章节。

  2. 安装KylinV10 SP3。
    1. 选择启动项。

      打开控制台,进入KylinV10 SP3安装界面,选择Install Linux Advanced Server V10,开始安装系统。

      如图 3所示:
      图 3. KylinV10 SP3安装界面


    2. 选择安装语言。

      选择安装语言,本示例选择简体中文做为安装程序和系统默认语言,用户可按需选择。

    3. 安装信息摘要。
      该页面展示系统安装配置,用户可按需配置以下内容:
      • 本地化配置:键盘、语言支持、时间和日期
      • 软件配置:安装源、软件选择
      • 系统配置:安装目的地、网络和主机名
      • 用户配置:root密码、自定义用户
      本章节使用配置如图 4所示:
      图 4. 安装信息摘要


    4. (可选)磁盘分区。

      本教程使用自动分区方式进行安装,如需自定义,用户可在安装信息摘要界面,点击安装目的地,进入磁盘分区页面进行自定义配置。

      如图 5所示:
      图 5. 磁盘分区


    5. 安装系统。

      设置完成后,返回安装信息摘要界面,点击右下角开始安装,开始安装系统。等待系统安装完成,点击重启系统重启,点击接受License信息后进入系统。

  3. 安装Kylin V11。

    使用V11安装镜像创建云主机,本示例选择2核CPU、4 GB内存、40 GB系统盘和UEFI模式。打开控制台,选择Install Kylin Linux Advanced Server V11,开始安装。

    选择English (United States)作为安装语言。在Installation Summary页面,Software Selection选择Minimal Install,Installation Destination选择目标系统盘并使用Automatic自动分区,Network & Host Name启用网卡,并设置root密码。

    图 6. V11安装信息摘要


    图 7. V11磁盘分区


    点击Begin Installation开始安装。安装完成后点击Reboot System重启,卸载安装ISO后登录系统。

配置模板系统

前提条件

请在云主机控制台以root权限执行以下命令。

背景信息

模板系统配置包含以下步骤:
  1. 指定Hostname。
  2. 配置网络。
  3. 检查SELinux。
  4. (可选)安装性能优化工具。
  5. 如已安装性能优化工具,确认安装结果。
  6. (可选) 安装cloud-init。

操作步骤

  1. 指定Hostname。

    执行hostnamectl set-hostname localhost.localdomain,设置模板的默认主机名。

  2. 配置网络。

    查询连接名称,执行read命令后输入所需连接名称,再配置DHCP和开机自动连接。以下命令清除手工IPv4地址、路由和DNS,并使用平台分配的网卡MAC;需要保留静态配置的网络不适用。V10 SP3安装后需特别确认自动连接已开启。

    nmcli connection show
    read -r KYLIN_CONNECTION
    nmcli connection modify "$KYLIN_CONNECTION" \
        connection.autoconnect yes ipv4.method auto \
        ipv4.addresses "" ipv4.gateway "" ipv4.dns "" \
        ipv4.routes "" ipv4.ignore-auto-routes no ipv4.never-default no \
        ipv4.ignore-auto-dns no 802-3-ethernet.mac-address "" \
        802-3-ethernet.cloned-mac-address permanent
    nmcli connection up "$KYLIN_CONNECTION"
    注: 激活连接可能中断SSH,请使用控制台操作。保留与目标网卡名称匹配的连接设置,IPv6按实际网络配置。
  3. 检查SELinux。

    执行getenforce检查SELinux状态。保留现有配置;仅在应用明确要求时调整。

  4. (可选) 安装性能优化工具。
    1. 挂载性能优化工具ISO。
      在云主机详情页点击安装性能优化工具,完成ISO挂载。
    2. 执行安装命令。
      进入云主机控制台,执行以下命令完成性能优化工具安装:
      [root@localhost ~]# mkdir /mnt/cdrom    #创建挂载点
      [root@localhost ~]# mount /dev/cdrom /mnt/cdrom    #挂载CD-ROM镜像
      [root@localhost ~]# cd /mnt/cdrom/
      bash ./zs-tools-install.sh     #安装性能优化工具
      [root@localhost ~]# cd ~
      umount /mnt/cdrom    #卸载CD-ROM镜像 (可选)
    注: 请注意以下内容:
    • 安装性能优化工具前请使用yum install tar -y安装tar命令。
    • 创建Linux系统的镜像时,若挂载数据云盘,请勿在/etc/fstab文件中写入数据云盘挂载信息,否则会导致使用该模板所创建的云主机无法正常启动。
    • 如需启动时挂载数据云盘,推荐使用以下方式:
      [root@localhost ~]# echo "mount -t ext4 -U "d0shC2-2GO1-Vyuc-XKXf-Pb3c-uvG5-92Fzeu" /mnt" >> /etc/rc.d/rc.local
      [root@localhost ~]# # -t表示该磁盘的文件系统,-U表示使用UUID方式挂载磁盘,/mnt表示挂载路径
      [root@localhost ~]# # 设备UUID可使用blkid命令获取
      [root@localhost ~]# chmod +x /etc/rc.d/rc.local
      [root@localhost ~]# # 建议使用设备的UUID挂载磁盘,而非使用/dev/vdb类似盘符。
  5. 如已安装性能优化工具,确认安装结果。
    图 8. V11性能优化工具安装结果


    注: V11安装器可能提示zs-tools is not verified for os: kylinV11。工具已安装不代表厂商已验证该版本的完整兼容性。
  6. (可选)安装cloud-init。

    如需User Data、SSH公钥等初始化功能,安装并配置cloud-init。下节初始化清理命令适用于已完成此配置的模板。

    从对应系统官方仓库安装cloud-init,用于主机名、User Data和SSH公钥初始化。保留现有SELinux、防火墙及密码策略。

    dnf install cloud-init

    编辑/etc/cloud/cloud.cfg.d/99-template.cfg,合并以下配置,不覆盖需要保留的设置。网络由NetworkManager管理:

    network:
      config: disabled
    preserve_hostname: false
    ssh_deletekeys: true
    ssh_pwauth: false
    注: 此配置关闭SSH密码认证。先确认初始化公钥对应的账户和控制台登录方式可用。

    启用服务并重启:

    systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
    systemctl reboot
    重新登录后执行
    cloud-init status --long
    ,确认初始化完成且无错误。

创建系统模板

背景信息

创建系统模板包含以下步骤:
  1. 清理初始化状态并关机。
  2. 创建镜像。
  3. 导出镜像。

操作步骤

  1. 清理初始化状态并关机。

    若已安装cloud-init,按以下命令清理。未安装cloud-init时,保留SSH主机密钥,执行truncate -s 0 /etc/machine-id后正常关机;同样需满足以下机器身份文件条件。

    已安装cloud-init时,确认其已完成初始化,/etc/cloud/cloud.cfg包含ssh初始化模块,并保留前章的ssh_deletekeys: true。以下命令要求D-Bus机器身份链接到/etc/machine-id,且该文件不是独立挂载点;若不满足,先调整清理方案。启动参数不得设置固定的systemd.machine_id=。

    V10 SP3:cloud-init 19.4不支持--machine-id,清理缓存后手动清空机器身份文件:

    (
        set -e
        test "$(id -u)" -eq 0
        test -f /etc/machine-id
        test ! -L /etc/machine-id
        test -L /var/lib/dbus/machine-id
        test "$(readlink -f /var/lib/dbus/machine-id)" = /etc/machine-id
        command -v mountpoint >/dev/null
        if mountpoint -q /etc/machine-id; then
            exit 1
        fi
        cloud-init clean --logs
        truncate -s 0 /etc/machine-id
        rm -f /etc/ssh/ssh_host_*_key /etc/ssh/ssh_host_*_key.pub
        sync
        systemctl poweroff
    )

    V11:cloud-init 23.4.1支持--machine-id,使用以下分支:

    (
        set -e
        test "$(id -u)" -eq 0
        test -f /etc/machine-id
        test ! -L /etc/machine-id
        test -L /var/lib/dbus/machine-id
        test "$(readlink -f /var/lib/dbus/machine-id)" = /etc/machine-id
        command -v mountpoint >/dev/null
        if mountpoint -q /etc/machine-id; then
            exit 1
        fi
        cloud-init clean --logs --machine-id
        rm -f /etc/ssh/ssh_host_*_key /etc/ssh/ssh_host_*_key.pub
        sync
        systemctl poweroff
    )
    注: 清理后不要重新启动源云主机。已按前章配置cloud-init时,它会在新云主机首次启动时重新生成SSH主机密钥,不要在配置或User Data中预置固定主机密钥。
  2. 创建镜像。

    确认云主机已关机并卸载安装ISO后,再创建镜像。清理后不要重新启动源云主机。

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

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


    图 10. V11创建镜像


  3. 导出镜像
    导出镜像用于其他云平台直接使用该镜像创建云主机,不同类型镜像服务器的导出方法不同:
    • 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表示导出的目标路径及文件名
          注: rbd export命令中不包含 ceph:// 前缀。

后续操作

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