正文
GitLab 迁移与升级
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
参考: [ 博客园 BigBao ]
环境说明:
- OS: CentOS 7.x
- gitlab-ce 初始版本: 8.8.5
- gitlab-ce 升级到版本: 11.2.3
- 升级方式: rpm 安装升级, 不做额外配置
gitlab 备份与恢复
备份
gitlab-rake gitlab:backup:create
在 gitlab 参数 gitlab_rails['backup_path']
路径中创建备份包, 默认路径为: /var/opt/gitlab/backups
.
备份包格式为: <时间戳>_gitlab_backup.tar
恢复
将备份传输到新 gitlab 服务器, 并将其放在 gitlab 的备份目录下,即 gitlab_rails['backup_path']
设定的路径, 默认为: /var/opt/gitlab/backups
. 并将包权限设定为 777
.
执行恢复:
gitlab-rake gitlab:backup:restore BACKUP=<时间戳>
这里的 时间戳 为所备份文件名的时间戳.
访问中遇到的报错
在新 gitlab web 访问的时候, 可能会报错: 500 ERROR, 查看 /var/log/gitlab/gitlab-rails/production.log
看到如下报错:
Started GET "/market/market" for xx.xx.xx.xx .....
Processing by ProjectsController#show as HTML
Parameters: {"namespace_id"=>"market", "id"=>"market"}
Completed 500 Internal Server Error in 57ms (ActiveRecord: 3.6ms)OpenSSL::Cipher::CipherError (bad decrypt):
app/models/project.rb:383:in `import_url'
app/models/project.rb:413:in `external_import?'
app/models/project.rb:405:in `import?'
app/models/project.rb:421:in `import_in_progress?'
app/controllers/projects_controller.rb:93:in `show'
lib/gitlab/middleware/go.rb:16:in `call'
解决方式:
gitlab-rails runner "Project.where.not(import_url: nil).each { |p| p.import_data.destroy if p.import_data }"
gitlab 升级
镜像源可以在 [ 这里 ] 获取.
关于镜像源两点说明:
- 需要翻墙访问. (了解一下 ss & proxychains )
- 下载之后修改 .repo 文件 :
sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/gitlab_gitlab-ce.repo
升级顺序
8.8.5 --> 8.17.8 --> 9.5.9 --> 10.2.5 --> 10.5.9 --> 10.8.7 --> 11.2.3
升级方式
在 [ 这里 ] 搜索对应版本镜像源, 执行脚本, 修改 .repo
的 gpgcheck
参数, 用 yum
安装即可完成升级.