3.2. Greenboot 如何使用目录运行脚本
健康检查脚本从四个 /etc/greenboot 目录运行。这些脚本按字母顺序运行。当您为工作负载配置脚本时请注意这一点。
当系统启动时,greenboot 在 required.d 和 want .d 目录中运行脚本。根据这些脚本的结果,greenboot 会继续启动或尝试回滚,如下所示:
-
系统如预期:当
required.d目录中的所有脚本都成功运行时,greenboot 会运行/etc/greenboot/green.d目录中存在的任何脚本。 -
系统问题:如果
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健康检查脚本安装在这个目录中。
-
如果脚本失败,greenboot 默认会重试三次。您可以通过将
/etc/greenboot/check/wanted.d包含允许失败的健康脚本,而不会导致回滚系统。- 如果这些脚本失败,greenboot 会记录失败,但不会启动一个回滚。
-
/etc/greenboot/green.d包含在 greenboot 声明开始成功后运行的脚本。 -
/etc/greenboot/red.d包含在 greenboot 声明启动失败时运行的脚本,包括40_microshift_pre_rollback.shprerollback 脚本。这个脚本会在系统回滚前执行。该脚本执行 MicroShift pod 和 OVN-Kubernetes 清理,以避免在将系统回滚到以前的版本后出现潜在的冲突。
重要
如果您自定义 /etc/greenboot/greenboot.conf 文件中任何环境变量的值,则当 greenboot RPM 软件包被更新或降级时,这些更改可能会丢失。
-
要在使用 MicroShift 构建系统镜像时保留自定义,请将
greenboot.conf文件添加到蓝图中。 -
要在使用 RPM 安装时保留自定义,请在安装 MicroShift 和 greenboot RPM 后对
greenboot.conf文件应用更改。