关于暂存实例
GitHub 建议将单独的环境设置为测试对 你的 GitHub Enterprise Server 实例 的配置的备份、更新或更改。 此环境应与生产系统隔离,称为过渡环境。
例如,为了防止数据丢失,可以定期验证生产实例的备份。 可以定期在过渡环境中将生产数据的备份还原到单独的 GitHub Enterprise Server 实例。 在此暂存实例上,还可以测试是否升级到 GitHub Enterprise Server 的最新功能版。
提示:只要暂存实例未用于生产容量,便可以重复使用现有 GitHub Enterprise 许可证文件。
过渡环境的注意事项
若要完全测试 GitHub Enterprise Server 并尽可能重新创建与生产环境类似的环境,请考虑与实例交互的外部系统。 例如,你可能想要在过渡环境中测试以下内容。
- 身份验证,特别是在使用外部身份验证提供程序(如 SAML)的情况下
- 与外部事件单记录系统的集成
- 与持续集成服务器的集成
- 使用 GitHub Enterprise Server APIs 的外部脚本或软件
- 用于发送电子邮件通知的外部 SMTP 服务器
设置暂存实例
可以从头开始设置暂存实例并根据需要配置实例。 有关详细信息,请参阅“设置 GitHub Enterprise Server 实例”和“配置 GitHub Enterprise”。
也可以创建反映生产配置的暂存实例,方法是将生产实例的备份还原到暂存实例。
1. 备份生产实例
如果要在某个实例上测试更改(该实例所包含的数据和配置与生产实例相同),请使用 GitHub Enterprise Server Backup Utilities 在生产实例中备份数据和配置。 有关详细信息,请参阅“在实例上配置备份”。
警告:如果在生产中使用 GitHub Actions 或 GitHub Packages,备份将包括外部存储的生产配置。 为避免从暂存实例写入生产存储而导致数据丢失,必须在还原备份之前配置步骤 3 和 4 中的每个功能。
2. 设置暂存实例
设置新实例作为暂存环境。 配置和安装暂存实例的方法与生产实例所用方法相同。 有关详细信息,请参阅“设置 GitHub Enterprise Server 实例”。
如果计划还原生产实例的备份,请继续执行下一步。 也可以手动配置实例,并跳过以下步骤。
3. 配置 GitHub Actions
(可选)如果在生产实例上使用 GitHub Actions,请在还原生产备份之前在暂存实例上配置该功能。 如果不使用 GitHub Actions,请跳到“1. 配置 GitHub Packages”。
警告:如果在还原生产备份之前未在暂存实例上配置 GitHub Actions,暂存实例将使用生产实例的外部存储,这可能会导致数据丢失。 强烈建议为暂存实例使用不同的外部存储。 有关详细信息,请参阅“使用暂存环境”。
-
通过 SSH 连接到暂存实例。 有关详细信息,请参阅“访问管理 shell (SSH)”。
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
若要将暂存实例配置为对 GitHub Actions 使用外部存储提供程序,请输入以下命令之一。
-
Azure Blob 存储:
Shell ghe-config secrets.actions.storage.blob-provider "azure"
ghe-config secrets.actions.storage.blob-provider "azure"
-
Amazon S3:
Shell ghe-config secrets.actions.storage.blob-provider "s3"
ghe-config secrets.actions.storage.blob-provider "s3"
-
Google Cloud Storage:
Shell ghe-config secrets.actions.storage.blob-provider "gcs"
ghe-config secrets.actions.storage.blob-provider "gcs"
-
-
通过输入以下命令配置外部存储连接,将占位符值替换为连接的实际值。
-
Azure Blob 存储:
Shell ghe-config secrets.actions.storage.azure.connection-string "CONNECTION STRING"
ghe-config secrets.actions.storage.azure.connection-string "CONNECTION STRING"
-
Amazon S3:
Shell ghe-config secrets.actions.storage.s3.bucket-name "S3 BUCKET NAME" ghe-config secrets.actions.storage.s3.service-url "S3 SERVICE URL" ghe-config secrets.actions.storage.s3.access-key-id "S3 ACCESS KEY ID" ghe-config secrets.actions.storage.s3.access-secret "S3 ACCESS SECRET"
ghe-config secrets.actions.storage.s3.bucket-name "S3 BUCKET NAME" ghe-config secrets.actions.storage.s3.service-url "S3 SERVICE URL" ghe-config secrets.actions.storage.s3.access-key-id "S3 ACCESS KEY ID" ghe-config secrets.actions.storage.s3.access-secret "S3 ACCESS SECRET"
(可选)若要强制实施 S3 的路径样式寻址,还需输入以下命令。
Shell ghe-config secrets.actions.storage.s3.force-path-style true
ghe-config secrets.actions.storage.s3.force-path-style true
-
Google Cloud Storage:
Shell ghe-config secrets.actions.storage.gcs.service-url "SERVICE URL" ghe-config secrets.actions.storage.gcs.bucket-name "BUCKET NAME" ghe-config secrets.actions.storage.gcs.access-key-id "HMAC ACCESS ID" ghe-config secrets.actions.storage.gcs.access-secret "HMAC SECRET"
ghe-config secrets.actions.storage.gcs.service-url "SERVICE URL" ghe-config secrets.actions.storage.gcs.bucket-name "BUCKET NAME" ghe-config secrets.actions.storage.gcs.access-key-id "HMAC ACCESS ID" ghe-config secrets.actions.storage.gcs.access-secret "HMAC SECRET"
-
-
若要准备在暂存实例上启用 GitHub Actions,请输入以下命令。
Shell ghe-config app.actions.enabled true
ghe-config app.actions.enabled true
4. 配置 GitHub Packages
(可选)如果在生产实例上使用 GitHub Packages,请在还原生产备份之前在暂存实例上配置该功能。 如果不使用 GitHub Packages,请跳到“1. 还原生产备份”。
警告:如果在还原生产备份之前未在暂存实例上配置 GitHub Packages,暂存实例将使用生产实例的外部存储,这可能会导致数据丢失。 强烈建议为暂存实例使用不同的外部存储。
-
查看将还原到暂存实例的备份。
- 如果使用 GitHub Enterprise Server Backup Utilities 3.5 或更高版本进行备份,备份将包括 GitHub Packages 的配置。 继续执行下一步。
- 如果使用 GitHub Enterprise Server Backup Utilities 3.4 或更早版本进行备份,请在暂存实例上配置 GitHub Packages。 有关详细信息,请参阅“企业 GitHub Packages 使用入门”。
-
通过 SSH 连接到暂存实例。 有关详细信息,请参阅“访问管理 shell (SSH)”。
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
通过输入以下命令配置外部存储连接,将占位符值替换为连接的实际值。
-
Azure Blob 存储:
Shell ghe-config secrets.packages.blob-storage-type "azure" ghe-config secrets.packages.azure-container-name "AZURE CONTAINER NAME" ghe-config secrets.packages.azure-connection-string "CONNECTION STRING"
ghe-config secrets.packages.blob-storage-type "azure" ghe-config secrets.packages.azure-container-name "AZURE CONTAINER NAME" ghe-config secrets.packages.azure-connection-string "CONNECTION STRING"
-
Amazon S3:
Shell ghe-config secrets.packages.blob-storage-type "s3" ghe-config secrets.packages.service-url "S3 SERVICE URL" ghe-config secrets.packages.s3-bucket "S3 BUCKET NAME" ghe-config secrets.packages.aws-access-key "S3 ACCESS KEY ID" ghe-config secrets.packages.aws-secret-key "S3 ACCESS SECRET"
ghe-config secrets.packages.blob-storage-type "s3" ghe-config secrets.packages.service-url "S3 SERVICE URL" ghe-config secrets.packages.s3-bucket "S3 BUCKET NAME" ghe-config secrets.packages.aws-access-key "S3 ACCESS KEY ID" ghe-config secrets.packages.aws-secret-key "S3 ACCESS SECRET"
-
-
若准备在暂存实例上启用 GitHub Packages,请输入以下命令。
Shell ghe-config app.packages.enabled true
ghe-config app.packages.enabled true
5. 还原生产备份
使用 ghe-restore
命令从备份中还原其余数据。 有关详细信息,请参阅“在实例上配置备份”。
如果暂存实例已配置并且你想要覆盖设置、证书和许可证数据,请将 -c
选项添加到命令中。 有关该选项的详细信息,请参阅 GitHub Enterprise Server Backup Utilities 文档中的使用备份和还原命令。
6. 查看实例的配置
若要使用相同的主机名访问暂存实例,请通过编辑 macOS 或 Linux 中的 /etc/hosts
文件或 Windows 中的 C:\Windows\system32\drivers\etc
文件,更新本地 hosts 文件以通过 IP 地址解析暂存实例的主机名。
注意:暂存实例必须可通过与生产实例相同的主机名进行访问。 不支持更改 你的 GitHub Enterprise Server 实例 的主机名。 有关详细信息,请参阅“为实例配置主机名”。
然后,在 管理控制台 中查看暂存实例的配置。 有关详细信息,请参阅“从 Web UI 管理实例”。
警告:如果为暂存实例配置了 GitHub Actions 或 GitHub Packages,为避免覆盖生产数据,请确保 管理控制台 中的外部存储配置与生产实例不匹配。
7. 应用实例的配置
若要在 管理控制台 中应用配置,请单击“保存设置”。
使暂存实例重新上线
可能需要关闭暂存实例,以节省成本,并在需要时重新开启。
从此版本的最新修补版本开始,实例可以保持离线 60 天,从 7 天增加到 。
如果在允许的离线时间段内使实例重新上线,则 GitHub Enterprise Server 会成功实例化。 如果实例保持离线时间超过允许的时间段,则 GitHub Enterprise Server 无法成功实例化,并且系统日志中可能会出现包含文本 server has been offline for more than the configured server_rejoin_age_max
的错误消息。 请参阅“关于系统日志”。
如果实例停滞在错误状态,可以运行这些命令以恢复。
sudo mv /data/user/consul/server_metadata.json /data/user/consul/server_metadata.json.bak
ghe-config-apply
延伸阅读
- "关于升级到新版本"