Skip to main content

在启用 GitHub Actions 的情况下备份和恢复 GitHub Enterprise Server

若要在启用 GitHub Actions 时还原 你的 GitHub Enterprise Server 实例 的备份,必须先配置 GitHub Actions,然后再使用 GitHub Enterprise Server Backup Utilities 还原备份。

关于使用 GitHub Actions 时备份 GitHub Enterprise Server

可以使用 GitHub Enterprise Server Backup Utilities 将 你的 GitHub Enterprise Server 实例 的数据和配置备份和还原到新实例。 有关详细信息,请参阅“在实例上配置备份”。

但是,并非所有 GitHub Actions 的数据都包含在这些备份中。 GitHub Actions 使用外部存储来存储工作流程工件和日志。 此数据存储在外部提供商上,例如 Azure Blob 存储、Amazon S3、Google Cloud Storage 或 MinIO。 因此,GitHub Enterprise Server 备份和 GitHub Enterprise Server 高可用性配置无法为存储在此外部存储上的数据提供保护,而是依赖于外部存储提供商(如 Azure、Google Cloud或 AWS)提供的数据保护和复制。

启用 GitHub Actions 时,还原 GitHub Enterprise Server 的备份

若要通过 GitHub Actions 还原 你的 GitHub Enterprise Server 实例 的备份,必须先在目标实例上手动配置网络设置和外部存储,然后再从 GitHub Enterprise Server Backup Utilities 还原备份。

  1. 确认源实例处于离线状态。

  2. 在替换 GitHub Enterprise Server 实例上手动配置网络设置。 网络设置被排除在备份快照之外,不会被 ghe-restore 覆盖。 有关详细信息,请参阅“配置网络设置”。

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

    Shell
    ssh -p 122 admin@HOSTNAME
    
  4. 通过输入以下命令之一,将目标实例配置为对 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"
      
  5. 通过输入以下命令配置外部存储连接,将占位符值替换为连接的实际值。

    • 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"
      
  6. 若要准备在目标实例上启用 GitHub Actions,请输入以下命令。

    Shell
    ghe-config app.actions.enabled true
    
  7. 若要应用配置并使 GitHub Actions 连接到外部存储提供程序,请输入以下命令。

    Shell
    ghe-config-apply
    
  8. 配置并启用 GitHub Actions 后,使用 ghe-restore 命令从备份中还原其余数据。 有关详细信息,请参阅“在实例上配置备份”。

  9. 在目标实例上重新注册自托管运行器。 有关详细信息,请参阅“添加自托管的运行器”。

  10. 要确保新实例上预安装的捆绑操作是最新的,请输入以下命令。

    Shell
    ghe-config --unset 'app.actions.actions-repos-sha1sum'
    
    1. 若要应用配置,请运行以下命令。

      注意:在配置运行过程中,你的 GitHub Enterprise Server 实例 上的服务可能会重启,这可能会导致用户短暂停机。

      Shell
      ghe-config-apply
      
    2. 等待配置运行完毕。