如何制作一个定制的CentOS7 ISO镜像?

摘要:背景: 随着业务形态,业务种类的不断拓展,使用公版 ISO 安装树 与 ISO 镜像存在较大的不便与弊端; 存在安装配置不统一,溯源难等特点;给后期的系统运维带来很高的复杂度 目的: 解决业务需要多种不同系统需求,版本管理困难,溯源难, 运
背景: 随着业务形态,业务种类的不断拓展,使用公版 ISO 安装树 与 ISO 镜像存在较大的不便与弊端; 存在安装配置不统一,溯源难等特点;给后期的系统运维带来很高的复杂度 目的: 解决业务需要多种不同系统需求,版本管理困难,溯源难, 运维排障复杂度高等痛点问题 适应新型态下的多种类装机需求,灵活支持,便于迭代更新 自定义的软件包组设置,结合 kickstart 应答控制文件 结合 沙箱技术与 iPXE 技术可以使用大规模自动化装机部署 术语与缩写: 术语名称 术语解释 RHEL 全称为 Redhat Enterprise Linux ,为红帽子公司推出的免费开源的 Linux 商业发行版 CentOS CentOS 为基于 RHEL 上游释放的源码去掉 RHEL logo 与商业软件后重新编码的再发行版,CentOS 社区已被 RHEL 收编,目前 CentOS-7 版本于2020年结束主流支持 Fedora Fedora 目前已被 Redhat 收编,红帽子用来实验一些新技术在此发行版,稳定后移植到 RHEL kickstart 红帽系发行版操作系统的自动化部署控制脚本与方法 ISO 一种文件格式与标准 BIOS 基本输入输出系统,为X86架构的计算机的底层的软件 EFI/UEFI 统一可扩展固件;为全新的一种计算机的底层软件,支持多种新处理器架构 RPM redhat package management 红帽子包管理系统 Anaconda anaconda 为红帽系发行版的 安装器(installer)程序 grub 当代 linux发行版的主流的引导程序 xml 一种文件格式与标准 dd linux 下的一种操作裸磁盘块的工具 yum yellowdog package management 黄狗包管理系统,是红帽系自动管理RPM依赖关系,自动安装软件包的一种工具,python 编写 python 当代的流行的一种解释性的语言 GPL 一种开源协议 原 CentOS 社区官方基于 RHEL 构建二进制兼容版本的基本流程: 根据实际需求出发,选择基本CentOS 社区版本进行二次定制开发 二次定制开发的流程大致如下: 分析公版 minimal 镜像 ISO 文件结构 抽取拷贝原公版 ISO 中的所有文件与目录结构到 二次定制开发路径,并需要留意修复抽取 ISO 后部分长文件名文件后缀名丢失的问题 根据需求收集需要的 RPM 软件包与依赖包放置在 Packages 目录下 根据需求收集需求的 RPM 名字,修改适配软件组的主控文件 XML 文件 repodata/cca56f3cffa18f1e52302dbfcf2f0250a94c8a37acd8347ed6317cb52c8369dc-c7-x86_64-comps.xml 根据上述修改后的 XML 与 Packages 中的包重新生成 repodatas 中的 ISO RPM包的 repo 数据库 定制修改 anaconda installer 安装器。
阅读全文