Gitlab是软件开发使用的版本库工具,我们在使用的过程种或许会遇到迁移的问题。Gitlab迁移主要有Gitlab project export / import、Gitlab backup & restore、Gitlab import bare repostries、Git clone后pull & push、Congregate 工具(第四、五种方法没验证过)。前3种方法都受限与Gitlab版本的不同无法进行平滑的迁移工作。我主要使用了Gitlab backup & restore迁移方式。
一、Gitlab安装
Centos7.6 、Gitlab16.4.1
安装依赖:sudo yum install -y curl policycoreutils-python openssh-server perl
官方的yum安装源为:curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash (修改gitlab-ee 为gitlab-ce 下载安装社区版本。)
安装Gitlab sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ce
二、Gitlab迁移(同版本)Gitlab backup & restore方法。
2.1、在旧的版本备份Gitlab
使用命令:gitlab-rake gitlab:backup:create
备份的文件默认会在/var/opt/gitlab/backups目录产生如:1701441326_2023_12_
01_16.4.1_gitlab_backup.tar的文件。此备份包含项目信息、数据,项目组,用户,不
包含gitlab.rb、gitlab-secrets.json的配置。
2.2、拷贝备份好的数据到新服务器对应的目录(如果修改了备份文件存储的路径请留意)
scp 1701441326_2023_12_01_16.4.1_gitlab_backup.tar root@主机IP:/var/opt/gitlab/backups
2.3、恢复数据
使用命令:gitlab-rake gitlab:backup:restore BACKUP=1701441326_2023_12_01_16.4
.1
注:恢复过程中出现 ERROR: must be owner of extension btree_gist
ERROR: must be owner of extension btree_gist
ERROR: must be owner of extension pg_trgm
这个报错不影响数据恢复。我忽略了这个报错,网上也有很多处理方法。
2.4、恢复账户密码(由于我两个版本的gitlab配置不一样不恢复gitlab.rb)
gitlab-secrets.json文件是 GitLab配置文件中用于加密的密钥,用于访问数据库的用户名和密码,以及各种API密钥等等。拷贝旧服务器此文件到新服务器目录。默认目录/etc/gitlab
使用命令:gitlab-ctl reconfigure 配置文件 。
据实际情况使用 :gitlab-ctl restart 重启服务。
三、跨版本迁移。
Gitlab由于版本差异不能平滑迁移,使用docker或者本地虚拟机运行一个与旧服务器同版本的Gitlab把数据先迁移到这个Gitlab,升级此Gitlab版本,之后再备份迁移到新服务器。下面链接是升级Gitlab服务器的官方查询地址,使用gitlab官方源完全可以完成版本升级,无需其他配置。
链接地址:Upgrade PathGitLab - Upgrade Path Wizardhttps://gitlab-com.gitlab.io/support/toolbox/upgrade-path/
四、修改Gitlab 密码方法
gitlab-rails console -e production
u=User.where(id:1).first
u.password='密码'
u.password_confirmation='密码'
u.save