28. 自动化部署与镜像管理
本章节指导在 RHEL 9(主机名 LinuxDC)上使用 SecureCRT 进行自动化部署和镜像管理,配合 SecureFX 传输配置文件。内容涵盖 Kickstart 高级使用(编写脚本、网络安装)和 Image Builder 镜像构建(创建自定义镜像、验证分发),全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 LinuxDC 环境中测试,确保实验一致性。
28.1 前提条件
- RHEL 9 已安装(参考第 1 章),主机名设置为
LinuxDC。 - 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 9 章)。
- 使用 SecureFX 传输文件(SFTP 协议)。
- 具有 root 或 sudo 权限。
- 系统已订阅并启用 RHEL 仓库(参考第 2 章)。
- 防火墙和 SELinux 启用(参考第 12 章)。
- RHEL 9 ISO 文件已准备(参考第 1 章)。
- HTTP 服务器(如 Apache)已安装并运行(参考第 20 章)。
💡 提示:自动化部署需网络环境支持 PXE 或 HTTP。在 RHEL 10 中,Image Builder 支持更多模块化镜像和容器集成,提升云原生部署效率。
28.2 Kickstart 高级使用
28.2.1 编写 Kickstart 脚本
-
创建 Kickstart 文件:
vim /var/www/html/ks.cfg # 托管在 HTTP 服务器 # 示例内容: url --url=https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/os lang en_US.UTF-8 keyboard us timezone Asia/Shanghai rootpw --plaintext securepass user --name=testuser --password=securepass --groups=wheel network --bootproto=static --ip=192.168.1.100 --netmask=255.255.255.0 --gateway=192.168.1.1 --nameserver=8.8.8.8 zerombr clearpart --all --initlabel part / --fstype=ext4 --size=10000 part swap --size=2048 part /home --fstype=ext4 --size=5000 %packages @core httpd %end %post systemctl enable httpd %end -
验证脚本:
ksvalidator /var/www/html/ks.cfg # 检查语法 curl http://192.168.1.100/ks.cfg # 验证 HTTP 访问
🧠 知识点:Kickstart 支持
%pre、%post脚本自动化。url指定安装源。
28.2.2 配置 PXE 引导服务器
-
安装 PXE 工具:
dnf install -y tftp-server dhcp-server syslinux syslinux-tftpboot -
配置 DHCP(/etc/dhcp/dhcpd.conf):
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.150 192.168.1.200; option routers 192.168.1.1; option domain-name-servers 8.8.8.8; filename "pxelinux.0"; next-server 192.168.1.100; } -
配置 TFTP:
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ mkdir -p /var/lib/tftpboot/pxelinux.cfg vim /var/lib/tftpboot/pxelinux.cfg/default # 添加: default linux label linux kernel vmlinuz append initrd=initrd.img inst.repo=http://192.168.1.100 ks=http://192.168.1.100/ks.cfg -
启动服务:
systemctl enable --now tftp-server dhcp-server
🧠 知识点:PXE 使用 DHCP + TFTP 引导网络安装。测试:虚拟机设置为 PXE 引导。
28.3 Image Builder 镜像构建
28.3.1 安装 Image Builder
- 安装工具:
dnf install -y osbuild-composer composer-cli lorax # 安装 Image Builder systemctl enable --now osbuild-composer.socket systemctl enable --now composer-cli.socket
28.3.2 创建自定义镜像
-
创建 Blueprint(TOML 文件):
vim custom-rhel9.toml # 示例内容: name = "custom-rhel9" description = "Custom RHEL 9 with httpd" version = "0.0.1" modules = [] [[packages]] name = "httpd" version = "*" [[customizations.user]] name = "admin" password = "$6$...hashed..." # 使用 mkpasswd 生成 groups = ["wheel"] -
推送 Blueprint:
composer-cli blueprints push custom-rhel9.toml -
启动构建:
composer-cli compose start custom-rhel9 iso # 构建 ISO 镜像 composer-cli compose status # 检查状态 composer-cli compose image <uuid> # 下载镜像 -
验证镜像:
composer-cli compose status # 确认成功 mv <uuid>.iso /var/www/html/custom-rhel9.iso # 分发到 HTTP
🧠 知识点:Image Builder 支持 ISO、QCOW2 等格式。查看:
composer-cli blueprints list。✅ 检查点:镜像下载成功,
curl http://192.168.1.100/custom-rhel9.iso访问。
28.4 常见问题与排查
🔍 故障排查:
-
问题 1:Kickstart 语法错误
解决:ksvalidator ks.cfg,检查日志(journalctl -u httpd)。 -
问题 2:PXE 引导失败
解决:检查 DHCP(journalctl -u dhcpd)、TFTP(journalctl -u tftp-server)、网络。 -
问题 3:Image Builder 构建失败
解决:composer-cli compose status,检查日志(journalctl -u osbuild-composer)。 -
问题 4:镜像下载慢
解决:验证 HTTP 服务(curl http://192.168.1.100/ks.cfg),网络。
28.5 实践任务
- 使用 SecureCRT 通过 SSH(端口 2222)登录
LinuxDC,编写 Kickstart 脚本并托管在 HTTP 服务器。 - 配置 PXE 引导服务器以支持网络安装。
- 使用 Image Builder 创建自定义镜像包含
httpd包。 - 验证自定义镜像并分发到
/var/www/html。
✅ 检查点:Kickstart 文件访问正常,PXE 引导成功,镜像构建完成。
28.6 自测问题
-
问题 1:如何编写 Kickstart 脚本?
答案:编辑/var/www/html/ks.cfg,添加url,part,%packages等部分。 -
问题 2:如何启动 Image Builder 构建?
答案:composer-cli blueprints push blueprint.toml,composer-cli compose start custom-rhel9 iso。 -
问题 3:如何验证网络安装配置?
答案:curl http://192.168.1.100/ks.cfg检查文件访问。
🧾 总结:
本章完整介绍了 RHEL 9 自动化部署与镜像管理的流程,包括 Kickstart 网络安装和 Image Builder 自定义镜像。这些技能实现大规模部署,为后续系统迁移与升级提供自动化基础。