关于 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 支持。 一旦你有时间和机会了解影响,就可以重新启动升级。