3.2. Greenboot 如何使用目录运行脚本


健康检查脚本从四个 /etc/greenboot 目录运行。这些脚本按字母顺序运行。当您为工作负载配置脚本时请注意这一点。

当系统启动时,greenboot 在 required.d 和 want .d 目录中运行脚本。根据这些脚本的结果,greenboot 会继续启动或尝试回滚,如下所示:

  1. 系统如预期:当 required.d 目录中的所有脚本都成功运行时,greenboot 会运行 /etc/greenboot/green.d 目录中存在的任何脚本。
  2. 系统问题:如果 required.d 目录中任何脚本失败,greenboot 会运行 red.d 目录中存在的任何预滚动脚本,然后重新启动系统。
注意

Greenboot 将脚本和健康检查输出重定向到系统日志。登录后,每日消息将提供整体系统健康输出。

3.2.1. Greenboot 目录详情

从任何脚本返回非零退出代码意味着该脚本已失败。Greenboot 会在尝试回滚到以前的版本前重启系统来重试脚本。

  • /etc/greenboot/check/required.d 包含不能失败的健康检查。

    • 如果脚本失败,greenboot 默认会重试三次。您可以通过将 GREENBOOT_MAX_BOOTS 参数设置为所需的重试次数,在 /etc/greenboot/greenboot.conf 文件中配置重试次数。
    • 在所有重试失败后,如果可用,greenboot 会自动启动回滚。如果没有可用的回滚,系统日志输出显示需要手动干预。
    • MicroShift 的 40_microshift_running_check.sh 健康检查脚本安装在这个目录中。
  • /etc/greenboot/check/wanted.d 包含允许失败的健康脚本,而不会导致回滚系统。

    • 如果这些脚本失败,greenboot 会记录失败,但不会启动一个回滚。
  • /etc/greenboot/green.d 包含在 greenboot 声明开始成功后运行的脚本。
  • /etc/greenboot/red.d 包含在 greenboot 声明启动失败时运行的脚本,包括 40_microshift_pre_rollback.sh prerollback 脚本。这个脚本会在系统回滚前执行。该脚本执行 MicroShift pod 和 OVN-Kubernetes 清理,以避免在将系统回滚到以前的版本后出现潜在的冲突。
重要

如果您自定义 /etc/greenboot/greenboot.conf 文件中任何环境变量的值,则当 greenboot RPM 软件包被更新或降级时,这些更改可能会丢失。

  • 要在使用 MicroShift 构建系统镜像时保留自定义,请将 greenboot.conf 文件添加到蓝图中。
  • 要在使用 RPM 安装时保留自定义,请在安装 MicroShift 和 greenboot RPM 后对 greenboot.conf 文件应用更改。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat