有没有一种简单的方法来创建“预先修补”的 RHEL 映像?

有没有一种简单的方法来创建“预先修补”的 RHEL 映像?

如今,几乎每个桌面操作系统都被设计为不断从互联网获取新的安全更新。这是一个很棒且非常必要的功能,并且在网络公司或实验室环境中管理更新的工具也相当成熟。

然而,我所处的环境与外界的连接有限或不存在,但系统安全性仍然是重中之重。

我们更新软件的标准程序是使用基于最新可用 RHEL 映像的 kickstart,在软件的每个新版本中重新映像所有工作站。但 RHEL 版本之间的间隔可能接近一年,而每天都会推出新的安全更新。考虑到我们的环境和要求,我们倾向于在发布当天发布尽可能接近“今天的完全修补的 RHEL”的镜像。

(出于稳定性和认证方面的考虑,在更新周期之间对系统进行适当的修补通常是最后的手段。能够分发最新的和经过充分测试形象就是目标。)

简而言之,

  • 有没有一种简单的方法可以下载或自行打包 RHEL 安装映像,该映像不仅包含最新版本,还包含所有增量安全补丁?
  • 以前是否做过类似的事情,或者我们基本上需要从头开始实施我们自己的解决方案?

答案1

我能够使用以下过程将 RHEL 安全更新集成到自定义启动映像中:

  1. 设置历史深度为 1 的 RHEL 镜像。

  2. 构建 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
    
  3. 告诉 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 上,则需要付出额外的努力来缩小映像大小。)

相关内容