Skip to main content

设置暂存实例

可在单独的隔离环境中设置 GitHub Enterprise Server 实例,并使用该实例来验证和测试更改。

关于暂存实例

GitHub 建议将单独的环境设置为测试对 你的 GitHub Enterprise Server 实例 的配置的备份、更新或更改。 此环境应与生产系统隔离,称为过渡环境。

例如,为了防止数据丢失,可以定期验证生产实例的备份。 可以定期在过渡环境中将生产数据的备份还原到单独的 GitHub Enterprise Server 实例。 在此暂存实例上,还可以测试是否升级到 GitHub Enterprise Server 的最新功能版。

Tip

只要暂存实例未用于生产容量,便可以重复使用现有 GitHub Enterprise 许可证文件。

过渡环境的注意事项

若要完全测试 GitHub Enterprise Server 并尽可能重新创建与生产环境类似的环境,请考虑与实例交互的外部系统。 例如,你可能想要在过渡环境中测试以下内容。

  • 身份验证,特别是在使用外部身份验证提供程序(如 SAML)的情况下
  • 与外部事件单记录系统的集成
  • 与持续集成服务器的集成
  • 使用 GitHub Enterprise Server APIs 的外部脚本或软件
  • 用于发送电子邮件通知的外部 SMTP 服务器

设置暂存实例

可以从头开始设置暂存实例并根据需要配置实例。 有关详细信息,请参阅“设置 GitHub Enterprise Server 实例”和“配置 GitHub Enterprise”。

也可以创建反映生产配置的暂存实例,方法是将生产实例的备份还原到暂存实例。

  1. 备份生产实例
  2. 设置暂存实例
  3. 配置 GitHub Actions
  4. 配置 GitHub Packages
  5. 还原生产备份
  6. 查看实例的配置
  7. 实例的配置

1. 备份生产实例

如果要在某个实例上测试更改(该实例所包含的数据和配置与生产实例相同),请使用 GitHub Enterprise Server Backup Utilities 在生产实例中备份数据和配置。 有关详细信息,请参阅“在实例上配置备份”。

Warning

如果在生产中使用 GitHub Actions 或 GitHub Packages,备份将包括外部存储的生产配置。 为避免从暂存实例写入生产存储而导致数据丢失,必须在还原备份之前配置步骤 3 和 4 中的每个功能。

2. 设置暂存实例

设置新实例作为暂存环境。 配置和安装暂存实例的方法与生产实例所用方法相同。 有关详细信息,请参阅“设置 GitHub Enterprise Server 实例”。

如果计划还原生产实例的备份,请继续执行下一步。 也可以手动配置实例,并跳过以下步骤。

Warning

在非配置实例上,使用 GitHub Actions 恢复备份将不会成功。 要启用 GitHub Actions,需要一个已配置主机名的实例。 有关详细信息,请参阅“为实例配置主机名”。

3. 配置 GitHub Actions

(可选)如果在生产实例上使用 GitHub Actions,请在还原生产备份之前在暂存实例上配置该功能。 如果不使用 GitHub Actions,请跳到“1. 配置 GitHub Packages”。

Warning

如果在还原生产备份之前未在暂存实例上配置 GitHub Actions,暂存实例将使用生产实例的外部存储,这可能会导致数据丢失。 强烈建议为暂存实例使用不同的外部存储。 有关详细信息,请参阅“使用暂存环境”。

  1. 通过 SSH 连接到暂存实例。 有关详细信息,请参阅“访问管理 shell (SSH)”。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. 若要将暂存实例配置为对 GitHub Actions 使用外部存储提供程序,请输入以下命令之一。

    • Azure Blob 存储:

      Shell
      ghe-config secrets.actions.storage.blob-provider "azure"
      
    • Amazon S3:

      Shell
      ghe-config secrets.actions.storage.blob-provider "s3"
      
    • Google Cloud Storage:

      Shell
      ghe-config secrets.actions.storage.blob-provider "gcs"
      
  3. 通过输入以下命令配置外部存储连接,将占位符值替换为连接的实际值。

    • Azure Blob 存储:

      Shell
      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"
      

      (可选)若要强制实施 S3 的路径样式寻址,还需输入以下命令。

      Shell
      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"
      
  4. 若要准备在暂存实例上启用 GitHub Actions,请输入以下命令。

    Shell
    ghe-config app.actions.enabled true
    
  5. 若要应用配置更改,请输入以下命令。

    Shell
    ghe-config-apply
    

4. 配置 GitHub Packages

(可选)如果在生产实例上使用 GitHub Packages,请在还原生产备份之前在暂存实例上配置该功能。 如果不使用 GitHub Packages,请跳到“1. 还原生产备份”。

Warning

如果在还原生产备份之前未在暂存实例上配置 GitHub Packages,暂存实例将使用生产实例的外部存储,这可能会导致数据丢失。 强烈建议为暂存实例使用不同的外部存储。

  1. 查看将还原到暂存实例的备份。

    • 如果使用 GitHub Enterprise Server Backup Utilities 3.5 或更高版本进行备份,备份将包括 GitHub Packages 的配置。 继续执行下一步。
    • 如果使用 GitHub Enterprise Server Backup Utilities 3.4 或更早版本进行备份,请在暂存实例上配置 GitHub Packages。 有关详细信息,请参阅“企业 GitHub Packages 使用入门”。
  2. 通过 SSH 连接到暂存实例。 有关详细信息,请参阅“访问管理 shell (SSH)”。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  3. 通过输入以下命令配置外部存储连接,将占位符值替换为连接的实际值。

    • 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"
      
    • 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"
      
  4. 若准备在暂存实例上启用 GitHub Packages,请输入以下命令。

    Shell
    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 地址解析暂存实例的主机名。

Note

暂存实例必须可通过与生产实例相同的主机名进行访问。 不支持更改 你的 GitHub Enterprise Server 实例 的主机名。 有关详细信息,请参阅“为实例配置主机名”。

然后,在 管理控制台 中查看暂存实例的配置。 有关详细信息,请参阅“从 Web UI 管理实例”。

Warning

如果为暂存实例配置了 GitHub Actions 或 GitHub Packages,为避免覆盖生产数据,请确保 管理控制台 中的外部存储配置与生产实例不一致。

7. 应用实例的配置

若要在 管理控制台 中应用配置,请单击“保存设置”。

使暂存实例重新上线

可能需要关闭暂存实例,以节省成本,并在需要时重新开启。

从此版本的最新修补版本开始,实例可以保持离线 60 天。

如果在允许的离线时间段内使实例重新上线,则 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

延伸阅读