关于 GitHub Enterprise Server 升级的已知问题
GitHub 知道以下问题,这些问题可能会影响对 GitHub Enterprise Server 新版本的升级。 有关详细信息,请参阅 GitHub Enterprise Server 发行说明中的“已知问题”。
GitHub 强烈建议定期备份实例的配置和数据。 在继续处理任何升级之前,请备份实例,然后在过渡环境中验证备份。 有关详细信息,请参阅“在实例上配置备份”和“设置暂存实例”。
Elasticsearch 升级
在将 GitHub Enterprise Server 升级到版本 3.13 或更高版本时,将升级 Elasticsearch 服务。 GitHub 强烈建议遵循“准备 GitHub Enterprise Server 3.13 中的 Elasticsearch 升级”中的指导。
无法解密的记录
如果要从 GitHub Enterprise Server 3.11 或 3.12 升级到 3.13,或者从 3.12 升级到 3.14,则可能会遇到由于缺少解密所需的密钥而无法解密记录的问题。 唯一的解决方案是删除无法解密的记录。 受此问题影响的记录类型为 2FA 记录,这意味着可能需要要求用户重新启用双因素身份验证 (2FA)。
升级前
如果要从 GitHub Enterprise Server 3.11 或 3.12 升级到 3.13,或者从 3.12 升级到 3.14,则可以运行加密诊断脚本来提前识别无法解密的记录。 这将使你有机会了解影响并对其进行规划。
- 下载加密诊断脚本。 可使用
curl -L -O https://gh.io/ghes-encryption-diagnostics
等命令下载脚本。 - 将脚本保存到设备上的
/data/user/common
目录。 - 按照脚本顶部的说明操作,并在设备上执行该脚本。 如果有任何无法解密的记录,则会在
/tmp/column_encryption_records_to_be_deleted.log
中记录这些记录。 此处记录的任何记录都意味着系统找不到这些记录的密钥,因此无法解密这些记录中的数据。
请注意,在此阶段,这些记录将作为流程的一部分被删除。 该脚本将对升级后需要重新注册到 2FA 的用户发出警告。 受影响用户的句柄将记录在 /tmp/column_encryption_users_to_have_2fa_disabled.log
中。 这些用户需要重新注册到 2FA。
如果脚本遇到意外问题,系统将提示你联系 GitHub 支持。 与这些问题相关的错误将记录在 /tmp/column_encryption_unexpected_errors.log
中。 如果遇到困难,无法让用户重新注册到 2FA,请联系 GitHub 支持 寻求帮助。
在升级期间
如果你没有机会提前运行加密诊断脚本,则产品中有一些机制可以帮助你。 在升级过程中,运行前检查将检测无法解密的记录,并将它们记录在 /tmp/column_encryption_records_to_be_deleted.log
中。 该序列将对升级后需要重新启用 2FA 的用户发出警告。 受影响的用户记录将记录在 /tmp/column_encryption_users_to_have_2fa_disabled.log
中。
如果检测到无法解密的记录,系统将提示你是否要继续升级。 如果继续,升级过程会删除无法解密的记录。 否则,升级过程将退出。
如果在升级过程中有任何疑问,可以联系 GitHub 支持。 一旦你有时间和机会了解影响,就可以重新启动升级。