一、查看新旧服务器上安装的 gitlab 版本
注意:在迁移 gitlab 数据前首先要确保新旧服务器上安装的 gitlab 版本是一致的。

1.1 旧服务器上的安装版本

[root@old-host ~]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

1.2 新服务器上的安装版本

[root@new-host ~]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

1.3 如果新旧服务器上安装的版本不一致
例如: 旧服务器上GitLab版本10.3.3,新服务器上GitLab版本12.0.1。

GitLab不能跨版本升级,需一个一个大版本升级。例如:10.8.7是10的最后一个版本,11.11.0是11的最后一个版本,则从 10.3.3 升级到 12.0.1,需要经过 10.3.3 -> 10.8.7 -> 11.11.0 -> 12.0.1三次版本升级。

所以,要先在旧服务器上执行以下版本升级命令:

[root@old-host ~]# yum install -y gitlab-ce-10.8.7-ce.0.el7
[root@old-host ~]# yum install -y gitlab-ce-11.11.0-ce.0.el7
[root@old-host ~]# yum install -y gitlab-ce-12.0.1-ce.0.el7

注:如果不指定版本号,则自动升级到最新版本。

[root@old-host ~]# yum install -y gitlab-ce  

在每一次升级后,都要测试GitLab后台系统是否正常,如果不能访问了,则说明本次升级失败,应解决错误或回退版本。

二、先在旧服务器做gitlab数据备份文件

[root@old-host ~]# gitlab-rake gitlab:backup:create
#默认将会在 /var/opt/gitlab/backups/ 目录下生成备份文件。

[root@old-host ~]# cd /var/opt/gitlab/backups/ 
[root@old-host backups]# ll /var/opt/gitlab/backups/ 
[root@old-host backups]# ll -h
总用量 3.4G
-rw-------. 1 git git 3.4G 3月  11 11:10 1615432132_2021_03_11_10.0.0_gitlab_backup.tar

三、上传刚刚的备份文件到新服务器上

[root@old-host backups]# scp -Pxx 1615432132_2021_03_11_10.0.0_gitlab_backup.tar  root@xx.xx.xx.xx: /var/opt/gitlab/backups/ 

或在新服务器执行:

scp root@xx.xx.xx.xx:/home/backups/gitlab/1615432132_2021_03_11_10.0.0_gitlab_backup.tar ../

四、将备份文件权限修改为777,避免出现权限不够的问题

[root@new-host ~]# cd /var/opt/gitlab/backups/ 
[root@new-host backups]# ll -h
总用量 3.4G
-rw------- 1 root root 3.4G 3月  11 11:25 1615432132_2021_03_11_10.0.0_gitlab_backup.tar

[root@new-host backups]# chmod 755 1615432132_2021_03_11_10.0.0_gitlab_backup.tar
[root@new-host backups]# ll -h
总用量 3.4G
-rwxrwxrwx 1 root root 3.4G 3月  11 11:25 1615432132_2021_03_11_10.0.0_gitlab_backup.tar

五、停止新服务器上gitlab数据连接服务

[root@new-host backups]# gitlab-ctl stop unicorn
[root@new-host backups]# gitlab-ctl stop sidekiq

六、恢复备份文件到GitLab

gitlab-rake gitlab:backup:restore BACKUP=备份文件编号

例如:备份文件名为 1615432132_2021_03_11_10.0.0_gitlab_backup.tar,则编号为:1615432132_2021_03_11_10.0.0。
在提示中敲入“yes”继续

[root@new-host backups]# gitlab-rake gitlab:backup:restore BACKUP=1615432132_2021_03_11_10.0.0

七、重新启动GitLab

[root@new-host backups]# gitlab-ctl restart

最后检查新旧服务器上GitLab的内容(包括账号密码等),完全一模一样,迁移成功!


升级安装:
1、记录当前版本号:

 cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

yum list | grep gitlab

2、手动备份数据

gitlab-rake gitlab:backup:create

默认的备份目录在/var/opt/gitlab/backups/下,生成一个以时间节点命名的tar包。

如果升级失败还可以还原数据,备份还原的过程可以点击下方链接进行查看。

3、升级gitlab版本
注意:由于升级不能跨越大版本号,因此只能升级到当前大版本号到最高版本,才可以升级到下一个大版本号。

vim /etc/yum.repos.d/gitlab-ce.repo                                #新建repo源,升级新版本的gitlab

[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
repo_gpgcheck=0
gpgcheck=0
enable=1
gpgkey=https://packages.gitlab.com/gpg.key 

由于当前版本是11.1.4版本,所以只能逐级进行升级

yum install -y gitlab-ce-11.11.8

yum install -y gitlab-ce-12.9.9

如果升级中提示SSL过期:

sudo yum install ca-certificates
sudo update-ca-trust extract


gitlab 常用命令

sudo gitlab-ctl start # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看服务状态;
sudo gitlab-ctl reconfigure # 启动服务;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;

标签: none

添加新评论

人机验证正在加载....