GitLab迁移 & 升级
一、查看新旧服务器上安装的 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 # 查看日志;