Skip to main content

启用和排定维护模式

一些标准维护程序(例如升级 你的 GitHub Enterprise Server 实例 或还原备份)要求实例进入脱机状态才能正常使用。

关于维护模式

某些操作类型要求你让 你的 GitHub Enterprise Server 实例 进入脱机状态并将其置于维护模式:

  • 升级到新版本的 GitHub Enterprise Server
  • 增加分配给虚拟机的 CPU、内存或存储资源
  • 将数据从一台虚拟机迁移到另一台虚拟机
  • 通过 GitHub Enterprise Server Backup Utilities 快照还原数据
  • 排查某些类型的关键应用程序问题

我们建议你至少将维护窗口排定在 30 分钟后,以便用户提前作好准备。 排定维护窗口后,所有用户在访问站点时都会看到横幅。

在实例进入维护模式后,所有正常 HTTP 和 Git 访问都会遭到拒绝。 这包括 Web 和 API 请求,设备对此进行响应并显示状态代码 503(服务不可用)。 Git 提取、克隆和推送操作也会被拒绝,并显示一条错误消息,指示网站暂时不可用。在高可用性配置中,Git 复制将暂停。 GitHub Actions 作业将不会执行。 在浏览器中访问该站点会显示维护页面。

可以通过配置 IP 例外列表来执行维护操作的初始验证,以仅允许从提供的 IP 地址和范围访问 你的 GitHub Enterprise Server 实例。 尝试从未在 IP 例外列表中指定的 IP 地址访问 你的 GitHub Enterprise Server 实例 时收到的响应与实例处于维护模式时发送的响应一致。

立即启用维护模式或排定在未来的某个时间进行维护

  1. 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

  3. 在“ 站点管理”边栏中,单击“管理控制台”。

  4. 在顶部导航栏中,单击“维护”。

    管理控制台 标头的屏幕截图。 标有“维护”的选项卡以橙色轮廓突出显示。

  5. 在“启用和计划”下,选择“启用维护模式”****,然后决定是立即启用维护模式还是排定在未来的某个时间进行维护。

    • 若要立即启用维护模式,请选择下拉菜单,然后单击“立即”。
    • 若要排定在未来的某个时间进行维护,请选择下拉菜单,然后单击开始时间。
  6. 若要在维护时段内为用户设置自定义消息,可在“设置维护模式消息”字段中输入消息。

  7. 如果满意时段的时间安排和可选消息,请单击“保存”****。 如果选择了“立即”,实例将立即进入维护模式。

使用 IP 例外列表在维护模式下验证更改

IP 例外列表提供对 你的 GitHub Enterprise Server 实例 的受控和受限访问,这非常适合在执行维护操作后对服务器运行状况进行初始验证。 启用后,你的 GitHub Enterprise Server 实例 将退出维护模式,并且仅适用于配置的 IP 地址。 维护模式复选框将更新,以反映状态更改。

如果重新启用维护模式,将禁用 IP 例外列表,并且 你的 GitHub Enterprise Server 实例 将恢复维护模式。 如果只是禁用 IP 例外列表,你的 GitHub Enterprise Server 实例 将恢复正常操作。

还可以使用命令行实用程序配置 IP 异常列表。 有关详细信息,请参阅“命令行实用程序”和“访问管理 shell (SSH)”。

  1. 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

  3. 在“ 站点管理”边栏中,单击“管理控制台”。

  4. 在顶部导航栏中,单击“维护”,然后确认已启用维护模式。

    管理控制台 标头的屏幕截图。 标有“维护”的选项卡以橙色轮廓突出显示。

  5. 在“启用和配置 IP 例外列表”下,选择“启用 IP 例外列表”。

  6. 在启用列表的复选框的右侧,键入应允许其访问 你的 GitHub Enterprise Server 实例 的 IP 地址或 CIDR 块的有效列表,以空格分隔。

  7. 若要在维护时段内为用户设置自定义消息,可在“设置维护模式消息”字段中输入消息。

  8. 单击“ 保存”。

使用 REST API 管理维护模式

可以使用 REST API 在 你的 GitHub Enterprise Server 实例 上管理维护模式。 有关详细信息,请参阅“适用于管理 GitHub Enterprise Server 的 REST API 终结点”。

使用 GitHub CLI 管理维护模式

可以使用 GitHub CLI gh es 扩展管理 你的 GitHub Enterprise Server 实例 上的维护模式。 有关详细信息,请参阅 gh es maintenance setgh es maintenance get 的 GH ES CLI 使用情况文档。

有关详细信息,请参阅“使用 GitHub CLI 管理实例”。

使用 SSH 管理维护模式

如果具有 SSH 访问权限,则可以使用 ghe-maintenance 命令行实用程序设置或取消设置高可用性配置中具有一个节点或多个节点的 GitHub Enterprise Server 实例的维护模式。 有关详细信息,请参阅“访问管理 shell (SSH)”和“命令行实用程序”。

使用 SSH 管理群集的维护模式

如果对 GitHub Enterprise Server 实例具有 SSH 访问权限,则可以使用 ghe-cluster-maintenance 命令行实用程序为群集中的每个节点设置或取消设置维护模式。 有关详细信息,请参阅“访问管理 shell (SSH)”和“命令行实用程序”。

$ ghe-cluster-maintenance -h
# Shows options
$ ghe-cluster-maintenance -q
# Queries the current mode
$ ghe-cluster-maintenance -s
# Sets maintenance mode
$ ghe-cluster-maintenance -s "MESSAGE"
# Sets maintenance mode with a custom message
$ ghe-cluster-maintenance -m "MESSAGE"
# Updates the custom message
$ ghe-cluster-maintenance -u
# Unsets maintenance mode