From a51ad7c129ec01bb52b547c133a843e733ef0033 Mon Sep 17 00:00:00 2001 From: Zhao Hang Date: Mon, 25 Nov 2024 13:55:37 +0800 Subject: [PATCH] Add ABS rebrand iso docs Signed-off-by: Zhao Hang --- INFRA_DOCS/menu.yaml | 1 + ...01\347\250\213\346\214\207\345\257\274.md" | 249 ++++++++++++++++++ 2 files changed, 250 insertions(+) create mode 100644 "INFRA_DOCS/\346\236\204\345\273\272\345\271\263\345\217\260ABS/Anolis OS Rebrand ISO \351\225\234\345\203\217\345\205\250\346\265\201\347\250\213\346\214\207\345\257\274.md" diff --git a/INFRA_DOCS/menu.yaml b/INFRA_DOCS/menu.yaml index 371c308..fb4b57e 100644 --- a/INFRA_DOCS/menu.yaml +++ b/INFRA_DOCS/menu.yaml @@ -14,6 +14,7 @@ INFRA_DOCS: 龙蜥操作系统漏洞评分定级说明: 安全管理系统/龙蜥操作系统漏洞评分定级说明.md 构建平台ABS: LifseaOS 镜像: ../构建平台ABS/LifseaOS 镜像.md + Anolis OS Rebrand ISO 镜像全流程指导: ../构建平台ABS/Anolis OS Rebrand ISO 镜像全流程指导.md 云原生: ../构建平台ABS/云原生.md 内核源码: ../构建平台ABS/内核源码.md 软件包构建: ../构建平台ABS/软件包构建.md diff --git "a/INFRA_DOCS/\346\236\204\345\273\272\345\271\263\345\217\260ABS/Anolis OS Rebrand ISO \351\225\234\345\203\217\345\205\250\346\265\201\347\250\213\346\214\207\345\257\274.md" "b/INFRA_DOCS/\346\236\204\345\273\272\345\271\263\345\217\260ABS/Anolis OS Rebrand ISO \351\225\234\345\203\217\345\205\250\346\265\201\347\250\213\346\214\207\345\257\274.md" new file mode 100644 index 0000000..4f5c364 --- /dev/null +++ "b/INFRA_DOCS/\346\236\204\345\273\272\345\271\263\345\217\260ABS/Anolis OS Rebrand ISO \351\225\234\345\203\217\345\205\250\346\265\201\347\250\213\346\214\207\345\257\274.md" @@ -0,0 +1,249 @@ +# 1. ABS rebrand 镜像 logo 替换 +## 1.1 使用背景 +通过 ABS 前端界面可以一键构建基于 Anolis OS 的用户自己的 ISO 镜像。目前该功能可以支持用户自定义替换 ISO 中的 logo 文字信息以及图片信息。最小化镜像只支持替换显示文字版 logo 信息,全量镜像支持替换文字版 logo 信息以及图形 logo 信息。 + +## 1.2 操作流程 +### 1.2.1 创建项目 +ABS 地址: [https://abs.openanolis.cn/all_project](https://abs.openanolis.cn/all_project) + +用户在[个人空间](https://abs.openanolis.cn/personSpace)页面,点击**创建项目**,创建一个用于构建 rebrand 镜像的项目。(如果已经创建过项目,则该步骤可以忽略) + +![](https://intranetproxy.alipay.com/skylark/lark/0/2022/png/51856433/1662348326410-c34a7b9f-5f6c-499a-8901-f4e2ee7f34f2.png) + + + +### 1.2.2 Rebrand 镜像 +1. 进入创建好的项目中,选择镜像,并在此页面会展示过往所 rebrand 构建的全部 ISO 镜像。![](https://intranetproxy.alipay.com/skylark/lark/0/2022/png/51856433/1662348560920-bce7fe7d-9a29-4664-8898-551825231843.png) +2. 点击 **Rebrand 镜像**后会打开参数配置页面,请按照参数说明填写对应参数。 + +![](https://intranetproxy.alipay.com/skylark/lark/0/2022/png/51856433/1662348809544-4e0d539c-a862-4402-895b-fa843d3ad761.png) + +3. 所有参数填写完毕,点击**确定**即可开始构建 + +> 注:每个用户同时只能构建一个镜像,如需构建多个镜像,请在上一个镜像构建完成之后,再次尝试构建。 +> + +### 1.2.3 参数说明 +#### 1.2.3.1 基本信息 ++ 镜像名称 + +> 必填项,生成镜像文件的名称。 +> + ++ OS 架构 + +> 必选项,生成的镜像能够在此架构上安装,支持 x86_64 和 aarch64,更多架构类型正在接入中。 +> + ++ 产品及版本 + +> 必选项,基于此产品进行镜像构建,支持 Anolis OS 8.4,更多产品类型正在接入中。 +> + ++ 镜像类型 + +> 必选项,生成镜像的文件格式,支持 ISO 镜像,更多镜像类型正在接入中。 +> + ++ 构建模式 + +> 必选项,生成镜像的模式,支持最小化镜像和全量镜像。 +> +> 最小化镜像:是指仅包含操作系统发行版的基础应用软件包的镜像,这些基础应用软件包可以保证操作系统正常启动,容量大约为 1 G 左右。 +> +> 全量镜像:是指包含了操作系统发行版的所有应用软件包的镜像,容量大约为 8 G 左右。 +> + ++ 描述 + +> 选填项,用于本次生成镜像的描述说明。 +> + +#### 1.2.3.2 系统配置信息 ++ 侧导航LOGO + +> 选填项,png 类型图片,大小不超过 1 MB,尺寸不限,推荐使用 114 x 32 px,其它尺寸可能造成显示的图片变形或模糊等问题。 +> +> 注:用户如果没有上传该图片,系统将会使用 Anolis OS 默认图片。 +> + ++ 系统信息 + +> 必选项,用于修改需要 rebrand 包的配置信息,包含名称配置和图标配置。 +> +> 名称配置:用于修改 anolis-release 包中的信息,包含产品名称,系统名称,系统ID,官方地址等参数。 +> +> 图标配置:用于修改 anolis-logos 包中的信息,包含产品名称,系统LOGO,系统ICON,桌面背景图等参数。 +> +> 注:系统信息至少选择其中一个,可以两个都勾选,如未勾选,则对应的参数会在页面上隐藏,只有勾选配置,才会在镜像 rebrand 中替换对应的信息。 +> + ++ 产品名称 + +> 必填项,对应 DIST 字段,例如 Anolis OS 8 的产品名称为 an8。 +> + ++ 系统名称 + +> 勾选名称配置后为必填项,在 os-release 中对应 NAME 字段。 +> + ++ 系统ID + +> 勾选名称配置后为必填项,在 os-release 中对应 ID 字段。 +> + ++ 官方地址 + +> 勾选名称配置后为必填项,在 os-release 中对应 HOME_URL 字段。 +> + ++ 系统LOGO + +> 勾选图标配置后为必填项,svg 类型图片,大小不超过 1 MB,尺寸不限。 +> + ++ 系统ICON + +> 勾选图标配置后为必填项,svg 类型图片,大小不超过 1 MB,尺寸不限。 +> + ++ 桌面背景图 + +> 勾选图标配置后为必填项,png 类型图片,大小不超过 10 MB,尺寸不限,推荐使用 1920 x 1200 px,其它尺寸可能造成显示的图片变形或模糊等问题。 +> +> 注:选择最小化镜像模式如果替换了图标配置,在镜像安装之后并不会立即显示图片信息,需要用户手动安装桌面应用之后(例如 KDE 或者 GNOME 等),才会正常显示替换之后的图片信息。 +> + +### 1.2.4 查看镜像 +1. 参数配置填写完毕,点击确定之后,可以在项目镜像中查看已经构建的镜像状态。 +![](https://intranetproxy.alipay.com/skylark/lark/0/2022/png/51856433/1662349326175-b7455f9d-7a55-42d3-a53e-5819427aa880.png) +2. 点击镜像名称,可以查看镜像的详细信息。如果构建成功,可以点击右上角**下载镜像**进行下载;如果构建失败,会在右侧显示失败的原因。 +![](https://intranetproxy.alipay.com/skylark/lark/0/2022/png/51856433/1662357367326-d8c0854a-95a7-4df2-ae51-a374caafb940.png) +3. 可以在 ABS 镜像页面查看其他用户公开构建成功的镜像: +![](https://intranetproxy.alipay.com/skylark/lark/0/2022/png/51856433/1662349639266-86548072-f753-4a7f-aee9-e7394889d5b1.png) + + + +# 2. 使用 mock 生成自定义包 +## 2.1. mock 环境搭建 ++ 启动安装 Anolis OS 8 设备或者实例 ++ 安装 EPAO(Extras Package For Anolis) YUM 仓库的 mock-core-configs 包(需要安装 epel-release) + +```bash +yum install -y anolis-epao-release +yum install -y mock-core-configs +``` + ++ 配置 build 用户 + +mock 不支持 root 用户,所以新建用户 build,用于执行构建。 + +```bash +useradd build +usermod -a -G mock build +``` + + + +## 2.2 mock 环境编译 +### 2.2.1 简单构建环境 +该构建环境仅仅提供了 `BaseOS`、`AppStream`、`PowerTools` 官方发布仓库。可以满足最小化的构建环境需求。mock 可以通过 `-r`参数直接指定如下 Anolis OS 8 的构建环境文件。请注意,若用户需要 aarch64 的本地构建环境需要在 aarch64 的设备或实例进行相应配置。 + +```bash +anolis-7-aarch64 +anolis-7-x86_64 +anolis-8-aarch64 +anolis-8-x86_64 +``` + +使用方法如下: + +```bash +# build 用户需要添加 root 权限 +su build +mock -r anolis-8-x86_64 *.src.rpm +``` + +### 2.2.2 社区本地构建环境 +该构建环境基本还原真实的社区构建环境,编译支撑的 Repo 远远大于 `BaseOS`、`AppStream`、`PowerTools` 。需要先下载一份 config 文件, 然后基于该文件编译相应包即可。 + +使用方法如下: + +#### x86_64 +使用方法如下: + +```bash +su build +wget https://build.openanolis.cn/kojifiles/repos/local-cfg/anolis-8.6-x86_64-local.cfg +# rpmbuild -bs mariadb.spec 先生成 src 包 +mock -r anolis-8.6-x86_64-local.cfg mariadb-*.src.rpm +``` + + + +# 3. ISO 加入自定义的 RPM 包 +## 3.1 解开 rebrand 的 ISO +```bash +mkdir mnt +mount -o loop xxx.iso mnt/ +# 需要 iso 文件夹不存在 +cp mnt iso -ra +``` + + + +## 3.2 增加或者替换 RPM 包 +### 3.2.1 替换 RPM 包 +```bash +# 用第二步 mock 生成的 RPM 包覆盖 BaseOS 或 AppStream 中同名 RPM 包 +cp xxx.rpm iso/BaseOS/Packages/ +or +cp xxx.rpm iso/AppStream/Packages/ +``` + +### 3.2.2 增加 RPM 包 +```bash +# 用第二步 mock 生成的 RPM 包放进 BaseOS +cp xxx.rpm iso/BaseOS/Packages/ + +增加新增包到 iso/BaseOS/repodata/ 中的 xxx-comps-os.x86_64.xml 中的 下,例如: +添加 xxx 下面,其中 xxx 替换为期待增加的包 +``` + + + +## 3.3 重新生成 repo +```bash +# 以 BaseOS 举例 +yum install createrepo -y + +cd iso/BaseOS/ +cp repodata/*comps-BaseOS.x86_64.xml comps-os.x86_64.xml +rm -rf repodata/ +createrepo -g comps-os.x86_64.xml . +rm -rf comps-os.x86_64.xml +``` + +## 3.4 重新压缩 ISO +```bash +yum install genisoimage -y + +cd ../ +cd ../ +# 以 x86_64 ISO 举例 +# -o 之后的 iso 镜像名称可以自定义 +genisoimage -joliet-long -V abs-dvd -o new-anolis.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -T -eltorito-alt-boot -e images/efiboot.img -no-emul-boot iso/ +``` + +## 3.5 增加 MD5 校验和 +```bash +yum install -y isomd5sum + +implantisomd5 new-anolis.iso +``` + +新生成的 new-anolis.iso 即可安装使用。 + + + -- Gitee