6.3.3. 为非网络部署手动部署 RHEL for Edge 镜像更新

编辑 RHEL for Edge 蓝图后,您可以更新镜像提交。镜像构建器为更新的 RHEL for Edge 镜像生成新的提交。使用此新提交来部署具有最新软件包版本或附加软件包的镜像。

要部署 RHEL for Edge 镜像更新,请确保您满足先决条件,然后按照以下步骤操作。

先决条件

  • RHEL for Edge 系统已启动且正在运行。
  • OSTree 存储库通过 HTTP 提供。
  • 您已创建了 RHEL for Edge 镜像蓝图。
  • 您编辑了 RHEL for Edge 镜像蓝图。请参阅 ???

流程

  1. 在 Image Builder 仪表板中,针对您编辑的蓝图,点 Create Image
  2. Create Image 窗口中,执行以下步骤:

    1. 类型 下拉列表中,选择 RHEL for Edge 容器(.tar)。
    2. 父提交 文本框中,指定之前生成的父提交 ID。请参阅 第 5.1 节 “提取 RHEL for Edge 镜像提交”
    3. Repository 文本框中,指定要嵌入到镜像中的提交 OSTree 存储库的 URL。例如:http://10.0.2.2:8080/repository/
    4. Ref textbox 中,指定您在创建 RHEL for Edge 容器提交时提供的相同参考,以嵌入到镜像中。例如,'rhel/edge/test'。
    5. Create。镜像构建器为更新的蓝图创建一个 RHEL for Edge 镜像。

      要查看 RHEL for Edge 镜像的进度,请点击 breadcrumbs 中的蓝图名称,然后单击 Images 选项卡。

      注意

      完成镜像创建过程需要几分钟时间。

      生成的镜像包含您添加的最新软件包(若有),并且具有原始 提交 ID 作为父项。

  3. 下载生成的 RHEL for Edge 镜像。有关下载 RHEL for Edge 镜像的详情请参考 第 3.6 节 “下载 RHEL for Edge 镜像”
  4. 将 RHEL for Edge 容器镜像加载到 Podman 中,这一次提供子提交 ID。

    $ cat ./child-commit_ID-container.tar | sudo podman load
  5. 运行 Podman

    #  sudo podman run -p 8080:80 localhost/edge-test
  6. 在置备的 RHEL 系统上,从原始边缘镜像验证当前状态。

    $ rpm-ostree status

    如果没有新的提交 ID,请运行以下命令验证是否有可用的升级:

    $ rpm-ostree upgrade --check

    如果有可用的更新,命令输出提供关于 OSTree 存储库中可用更新的信息,如当前活动的 OSTree 提交 ID。否则,它会提示一条信息通知没有可用的更新。

  7. 更新 OSTree,使新 OSTree 提交 ID 可用。

    $ rpm-ostree upgrade

    ostree 验证存储库是否有更新。如果是,它将获取您重新引导系统的更新和请求,以便您可以激活此新提交更新的部署。

  8. 检查当前状态:

    $ rpm-ostree status

    现在,您可以看到有 2 个提交可用:

    • 活跃的父级提交。
    • 个未激活且包含 1 添加差异的新提交。
  9. 要激活新部署并使新提交处于活动状态,请重启您的系统。

    # systemctl reboot

    Anaconda 安装程序将重新引导至新部署。在登录屏幕上,您可以看到可供您引导的新部署。

  10. 如果要引导进入最新的提交/部署,rpm -ostree upgrade 命令会自动订购引导条目,以便新部署在列表中第一个。(可选)您可以使用键盘中的箭头键选择 GRUB 菜单条目并按 Enter
  11. 提供您的登录用户帐户凭证。
  12. 验证 OSTree 状态:

    $ rpm-ostree status

    命令输出提供活动的提交 ID。

  13. 要查看更改的软件包(如果有),请在父提交和新提交之间运行差异:

    $ rpm-ostree db diff parent_commit new_commit

    更新显示您已安装的软件包可用并可供使用。