维护模式
注意:使用此功能至少需要19.1.0
的 GoCD 服务器。
GoCD 系统包含许多内部子系统和进程,它们持续运行。一些例子包括负责轮询材料的材料子系统、自动启动管道和阶段的调度子系统、持续跟踪代理状态并为它们提供作业运行的代理子系统等。
维护模式是一种维护模式,GoCD 系统管理员可以利用它安全地重启或升级 GoCD 服务器,而无需在服务器恢复后重新安排任何正在运行的作业。
维护模式实现:
-
停止材料子系统,以便不再轮询新材料。
-
等待当前正在轮询的材料完成。
-
不允许对代码即流水线仓库进行轮询。
-
停止调度子系统,以便不再触发新的流水线(自动触发或通过计时器)。
-
防止用户触发流水线。
-
防止用户修改配置。
-
防止用户进行几乎所有的可能修改数据库或文件系统状态的活动。
-
停止代理子系统,以便空闲的代理无法获取工作。
-
允许所有当前正忙于运行作业的代理完成其任务。
-
提供一个单一位置来将 GoCD 置于维护模式或将它移出维护模式。
-
提供一个单一位置查看在维护模式下所有子系统的状态。
-
提供一个 API 调用来将 GoCD 置于维护模式或将它移出维护模式。
-
显示当前被轮询材料的状态。
-
显示当前运行作业的代理的状态。
-
在所有页面的页脚附近显示横幅,告知所有人服务器处于维护模式。
-
指示何时服务器可以安全重启或升级(已完成维护)。
进行中的维护模式:
在启动维护模式之后,GoCD 的几个子系统可能仍在运行中。例如:已计划的作业、正在构建的作业、材料更新等。在这种情况下,GoCD 管理员可以选择取消构建、已计划的作业或等待其完成。
取消正在进行的材料更新可能会由于部分克隆导致存储库损坏,并对流水线调度产生副作用。因此,即使在维护模式下,GoCD 也不允许取消 MDU。GoCD 管理员应等待所有材料更新完成。
维护模式完成:
在维护模式期间,GoCD 的所有子系统停止后,GoCD 服务器可以被认为完全处于维护状态,并准备好重启或升级。
注意: Upon a restart, the GoCD server will no longer be in maintenance mode and will start all subsystems.
The 维护模式 API允许 GoCD 管理员启用、禁用和监控服务器维护模式状态。
启动处于维护模式下的 GoCD 服务器
注意:使用此功能至少需要20.9.0
的 GoCD 服务器。
GoCD 系统包含许多内部子系统和进程,这些进程在服务器启动时启动。一些例子包括负责轮询材料的材料子系统、自动启动管道和阶段的调度子系统、持续跟踪代理状态并为它们提供作业运行的代理子系统等。
在 GoCD 服务器重启或系统升级后,GoCD 系统管理员可能希望在恢复 GoCD 的工作之前确认系统升级或配置更改是否正常。为此,GoCD 允许以维护模式启动 GoCD 服务器。
启动 GoCD 服务器在维护模式下的步骤:
- 停止正在运行的 GoCD 服务器。
- 指定系统属性
gocd.server.start.in.maintenance.mode
并设置值true
。要配置系统属性,请编辑 GoCD 服务器上的文件wrapper-properties.conf
,以添加上述系统属性。参见安装文档中的wrapper-properties.conf
参考资料: - 位置。启动 GoCD 服务器。
注意: Specifying the system property 'gocd.server.start.in.maintenance.mode=true' will always start the GoCD server in maintenance mode.