Skip to main content

此版本的 GitHub Enterprise 将停止服务 2023-01-18. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

升级集群

使用管理 shell (SSH) 将 GitHub Enterprise Server 集群升级到最新版本。

使用热补丁升级

You can upgrade GitHub Enterprise Server to the latest patch release using a hotpatch.

You can use hotpatching to upgrade to a newer patch release, but not a feature release. For example, you can upgrade from 2.10.1 to 2.10.5 because they are in the same feature series, but not from 2.10.9 to 2.11.0 because they are in a different feature series.

Hotpatches do not generally require a reboot. If a hotpatch does require a reboot, the GitHub Enterprise Server release notes will indicate the requirement.

Hotpatches require a configuration run, which can cause a brief period of errors or unresponsiveness for some or all services on your GitHub Enterprise Server instance. You are not required to enable maintenance mode during installation of a hotpatch, but doing so will guarantee that users see a maintenance page instead of errors or timeouts. For more information, see "Enabling and scheduling maintenance mode." 热补丁安装脚本可在集群中的每个节点上安装热补丁,并按正确顺序重新启动服务以避免停机。

  1. 使用 GitHub Enterprise Server Backup Utilities 备份数据。
  2. 在任何节点的管理 shell 中,使用 ghe-cluster-hotpatch 命令安装最新的热补丁。 您可以为热补丁提供 URL,也可以手动下载该热补丁并指定本地文件名。
    $ ghe-cluster-hotpatch https://HOTPATCH-URL/FILENAME.hpkg

使用升级包升级

使用升级包将 GitHub Enterprise Server 集群升级到最新功能版本。 例如,可从 2.11 升级到 2.13

准备升级

  1. 查看要升级到的版本的群集网络配置,并根据需要更新配置。
  2. 使用 GitHub Enterprise Server Backup Utilities 备份数据。
  3. 为 GitHub Enterprise Server 集群的最终用户排定维护窗口,因为它在升级期间无法正常使用。 在群集群升级过程中,维护模式会阻止用户访问并防止数据更改。
  4. GitHub Enterprise Server 下载页面上,将 .pkg 升级文件的 URL 复制到剪贴板。
  5. 在任何节点的管理 shell 中,将 ghe-cluster-each 命令与 curl 结合使用,只需一步即可将发布包下载到每个节点。 使用您在上一步中复制的 URL 作为参数。
    $ ghe-cluster-each -- "cd /home/admin && curl -L -O  https://PACKAGE-URL.pkg"
    > ghe-app-node-1:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    > ghe-app-node-1:                                  Dload  Upload   Total   Spent    Left  Speed
    > 100  496M  100  496M    0     0  24.2M      0  0:00:20  0:00:20 --:--:-- 27.4M
    > ghe-data-node-2:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    > ghe-data-node-2:                                  Dload  Upload   Total   Spent    Left  Speed
    > 100  496M  100  496M    0     0  21.3M      0  0:00:23  0:00:23 --:--:-- 25.8M
    > ghe-data-node-1:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    > ghe-data-node-1:                                  Dload  Upload   Total   Spent    Left  Speed
    > 100  496M  100  496M    0     0  19.7M      0  0:00:25  0:00:25 --:--:-- 25.6M
    > ghe-app-node-2:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    > ghe-app-node-2:                                  Dload  Upload   Total   Spent    Left  Speed
    > 100  496M  100  496M    0     0  19.8M      0  0:00:25  0:00:25 --:--:-- 17.6M
    > ghe-data-node-3:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    > ghe-data-node-3:                                  Dload  Upload   Total   Spent    Left  Speed
    > 100  496M  100  496M    0     0  19.7M      0  0:00:25  0:00:25 --:--:-- 25.5M
  6. 确定主 MySQL 节点,此节点在 cluster.conf 中定义为 mysql-master = <hostname>。 此节点将最后升级。

升级集群节点

  1. 通过连接到任何集群节点的管理 shell 并运行 ghe-cluster-maintenance -s,根据排定的窗口启用维护模式。
  2. 除了主 MySQL 节点之外,连接到每个 GitHub Enterprise Server 节点的管理 shell。 运行 ghe-upgrade 命令,提供在准备升级的步骤 4 中下载的包文件名:
    $ ghe-upgrade PACKAGE-FILENAME.pkg
      > *** verifying upgrade package signature...
      >  497MB 0:00:04 [ 117MB/s] [==========================================>] 100%            
      > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A
      > gpg: checking the trustdb
      > gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
      > gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
      > gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) > "
  3. 升级过程将在完成后重启节点。 验证是否可在每个节点重启后对其执行 ping 操作。
  4. 连接到主 MySQL 节点的管理 shell。 运行 ghe-upgrade 命令,提供在准备升级的步骤 4 中下载的包文件名:
    $ ghe-upgrade PACKAGE-FILENAME.pkg
    > *** verifying upgrade package signature...
    >  497MB 0:00:04 [ 117MB/s] [==========================================>] 100%            
    > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A
    > gpg: checking the trustdb
    > gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
    > gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
    > gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) > "
  5. 升级过程将在完成后重启主 MySQL 节点。 验证是否可在每个节点重启后对其执行 ping 操作。
  6. 连接到主 MySQL 节点的管理 shell 并运行 ghe-cluster-config-apply 命令。
  7. ghe-cluster-config-apply 完成时,通过运行 ghe-cluster-status 检查服务是否处于正常状态。
  8. 通过运行 ghe-cluster-maintenance -u,从任何节点的管理 shell 退出维护模式。