从 Helm Chart 迁移到 Linux 包
从 Helm 安装实例迁移到 Linux 包 (Omnibus) 安装实例:
- 进入管理中心 (),并选择 概览 > 组件 以检查您当前的极狐GitLab 版本。
- 准备一台干净的机器并安装 Linux 包,版本与您的 GitLab Helm chart 版本匹配。
- 在您的 GitLab Helm chart 实例上,在迁移之前验证 Git 仓库的完整性
- 创建您的 GitLab Helm chart 实例的备份,并同时确保备份 secret也是如此。
- 在您的 Omnibus GitLab 实例上备份
/etc/gitlab/gitlab-secrets.json
。 - 使用 GitLab Helm chart 实例中的
secrets.yaml
文件来填入新的 Omnibus GitLab 实例上的/etc/gitlab/gitlab-secrets.json
:- 在
/etc/gitlab/gitlab-secrets.json
中,将gitlab_rails
部分中的所有 secret 替换为secrets.yaml
中的 secret:- 确保
secret_key_base
、db_key_base
、otp_key_base
和encrypted_settings_key_base
的值不包含换行符。 -
openid_connect_signing_key
和ci_jwt_signing_key
的值应使用\n
而不是换行符,并且整个值应该在一行中,例如:-----BEGIN RSA PRIVATE KEY-----\nprivatekey\nhere\n-----END RSA PRIVATE KEY-----\n
- 确保
-
保存文件并重新配置极狐GitLab:
sudo gitlab-ctl reconfigure
- 在
- 在 Omnibus 实例中,配置 对象存储,并通过测试 LFS、产物、上传文件等来确保其正常工作。
- 如果使用 Container Registry,请单独配置其对象存储。它不支持使用统一的对象存储。
-
将连接到 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 时可能会取消配置存储。
- 对于 S3 兼容的存储,使用
- 将 GitLab Helm 备份复制到 Omnibus GitLab 实例上的
/var/opt/gitlab/backups
,然后执行恢复。 - 恢复完成后,运行 doctor Rake tasks 确保 secret 有效。
- 一切都经过验证后,您可以卸载 GitLab Helm chart 实例。