忘记GitLab所在Linux服务器密码,跨版本迁移方案求助
GitLab自建服务器迁移问题解决方案
1. 重置GitLab所在Linux服务器密码
- 重启服务器,在GRUB菜单选中对应内核后按
e进入编辑模式 - 找到以
linux开头的行,将ro替换为rw init=/bin/bash - 按
Ctrl+X启动进入单用户模式 - 执行
passwd 用户名(如root用户则用passwd root),输入并确认新密码 - 执行
exec /sbin/init恢复正常系统启动
2. 解决群组导出无法包含项目的问题
- 先确认GitLab版本兼容性:旧版本(如<13.0)可能不支持群组批量导出项目,需手动单个导出
- 检查权限:确保操作账号拥有群组所有者权限,且目标项目未设置导出限制
- 尝试命令行导出项目:
- 登录服务器,切换到GitLab用户:
sudo su - git - 执行单个项目导出:
bundle exec rake gitlab:export:project[namespace/project,/path/to/save/export] RAILS_ENV=production - 若需批量导出,先导出群组内项目列表,再逐个执行上述命令
- 登录服务器,切换到GitLab用户:
3. 跨大版本(旧<14,新>15)的GitLab迁移方案
直接传输API不支持跨大版本迁移,推荐两种可行方案:
方案一:中间版本过渡
- 在新服务器部署GitLab 14.x最新稳定版(尽量与旧服务器14.x小版本匹配)
- 使用直接传输API将旧服务器数据迁移至14.x过渡服务器
- 将过渡服务器升级至15.x+版本,再同步至目标新服务器(若目标已为15+,可直接从过渡服务器迁移)
方案二:文件导出+导入(适合数据量较小场景)
- 先完成Linux密码重置,登录旧服务器
- 逐个导出项目:进入项目设置→通用→导出项目,勾选包含wiki、issues等所有内容
- 将导出的
.tar.gz文件下载至本地,再上传到新服务器 - 在新服务器创建对应命名空间,逐个导入项目:项目→新建→导入项目→GitLab导出文件,选择上传文件完成导入
- 手动重建群组结构、用户权限:在新服务器创建对应群组,邀请用户并配置权限
内容的提问来源于stack exchange,提问作者Vamsi Konakanchi
相关产品推荐
相关产品推荐

