如今,几乎每个桌面操作系统都被设计为不断从互联网获取新的安全更新。这是一个很棒且非常必要的功能,并且在网络公司或实验室环境中管理更新的工具也相当成熟。
然而,我所处的环境与外界的连接有限或不存在,但系统安全性仍然是重中之重。
我们更新软件的标准程序是使用基于最新可用 RHEL 映像的 kickstart,在软件的每个新版本中重新映像所有工作站。但 RHEL 版本之间的间隔可能接近一年,而每天都会推出新的安全更新。考虑到我们的环境和要求,我们倾向于在发布当天发布尽可能接近“今天的完全修补的 RHEL”的镜像。
(出于稳定性和认证方面的考虑,在更新周期之间对系统进行适当的修补通常是最后的手段。能够分发最新的和经过充分测试形象就是目标。)
简而言之,
- 有没有一种简单的方法可以下载或自行打包 RHEL 安装映像,该映像不仅包含最新版本,还包含所有增量安全补丁?
- 以前是否做过类似的事情,或者我们基本上需要从头开始实施我们自己的解决方案?
答案1
我能够使用以下过程将 RHEL 安全更新集成到自定义启动映像中:
设置历史深度为 1 的 RHEL 镜像。
构建 kickstart 映像时,将存储库数据复制到磁盘上其自己的目录中。
ISO构建脚本伪代码:
#!/bin/bash pseudo-code # make a copy of the RHEL system image mount rhel-7-server-dvd.iso /tmp/rhelbaseiso cp -a /tmp/rhelbaseiso /tmp/rheliso # add your own custom kickstart files cp myimage/ks.cfg /tmp/rheliso/. cp -f myimage/isolinux.bin /tmp/rheliso/isolinux/isolinux.bin # copy files from repo mirror mkdir /tmp/rheliso/rhelUpdatePackages cp -a /myrhelmirror/repos/rhel7/rhel-7-server-rpms/* rhelUpdatePackages # TODO add any custom packages to their own directory, and run createrepo on it # build the iso image mkisofs -rDfJV "DISK NAME" -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot \ -boot-load-size 4 \ -boot-info-table \ -graft-points \ -eltorito-alt-boot \ -e images/efiboot.img \ -no-emul-boot \ -o custom_rhel.iso /tmp/rheliso # TODO unmount and clean up
告诉 kickstart 使用更新存储库作为附加存储库:
... repo --name="rhel_update" --baseurl="file:///run/install/repo/rhelUpdatePackages" repo --name="your_own_software" --baseurl="file:///run/install/repo/customPackages" ...
这似乎足以让 Yum/Anaconda 在系统安装期间引入适当更新的软件包。安装后,系统将拥有“开箱即用”的最新软件,无需连接到更新存储库。
(这适用于可启动蓝光、USB-HD 或基于 LAN 的安装。如果您需要将其放入可启动 DVD 上,则需要付出额外的努力来缩小映像大小。)