从 Helm Chart 迁移到 Linux 包

从 Helm 安装实例迁移到 Linux 包 (Omnibus) 安装实例:

  1. 进入管理中心 (),并选择 概览 > 组件 以检查您当前的极狐GitLab 版本。
  2. 准备一台干净的机器并安装 Linux 包,版本与您的 GitLab Helm chart 版本匹配。
  3. 在您的 GitLab Helm chart 实例上,在迁移之前验证 Git 仓库的完整性
  4. 创建您的 GitLab Helm chart 实例的备份,并同时确保备份 secret也是如此。
  5. 在您的 Omnibus GitLab 实例上备份 /etc/gitlab/gitlab-secrets.json
  6. 使用 GitLab Helm chart 实例中的 secrets.yaml 文件来填入新的 Omnibus GitLab 实例上的 /etc/gitlab/gitlab-secrets.json
    1. /etc/gitlab/gitlab-secrets.json 中,将 gitlab_rails 部分中的所有 secret 替换为 secrets.yaml 中的 secret:
      • 确保 secret_key_basedb_key_baseotp_key_baseencrypted_settings_key_base 的值不包含换行符。
      • openid_connect_signing_keyci_jwt_signing_key 的值应使用 \n 而不是换行符,并且整个值应该在一行中,例如:

           -----BEGIN RSA PRIVATE KEY-----\nprivatekey\nhere\n-----END RSA PRIVATE KEY-----\n
        
    2. 保存文件并重新配置极狐GitLab:

      sudo gitlab-ctl reconfigure
      
  7. 在 Omnibus 实例中,配置 对象存储,并通过测试 LFS、产物、上传文件等来确保其正常工作。
  8. 如果使用 Container Registry,请单独配置其对象存储。它不支持使用统一的对象存储。
  9. 将连接到 Helm chart 实例的对象存储中的数据与连接到 Omnibus GitLab 的新存储同步。一些注意事项:

    • 对于 S3 兼容的存储,使用 s3cmd 实用程序复制数据。
    • 如果打算在您的 Omnibus GitLab 实例中使用 S3 兼容的对象存储,比如 MinIO,你应该配置指向你的 MinIO 的选项 endpoint 并在 /etc/gitlab/gitlab.rb 中将 path_style 设置为 true
    • 您可以将旧的对象存储与新的 Omnibus GitLab 实例一起使用。 在这种情况下,您不需要在两个对象存储之间同步数据。 但是,如果您使用的是内建 MinIO 实例,则在卸载 GitLab Helm chart 时可能会取消配置存储。
  10. 将 GitLab Helm 备份复制到 Omnibus GitLab 实例上的 /var/opt/gitlab/backups,然后执行恢复。
  11. 恢复完成后,运行 doctor Rake tasks 确保 secret 有效。
  12. 一切都经过验证后,您可以卸载 GitLab Helm chart 实例。