一、简介
由于gitlab使用的 13.5.3版本有 CVE-2021-22205 漏洞,需要升级到稳定版本13.8.8
二、升级流程
先查看官网的版本升级路线,13.5.3可以直接升级13.8.8
2.1 备份原gitlab数据
升级前备份原gitlab文件
/etc/gitlab/gitlab.rb 该文件配置了gitlab的域名、邮件发送信息、白名单等相关信息。
/etc/gitlab/gitlab-secrets.json 该文件存储了gitlab的db secret信息。如果丢失,那么使用双重身份验证的GitLab用户将无法访问GitLab服务器,而存储在GitLab中的安全变量
将被丢失。
使用 gitlab-rake 备份gitlab数据,可忽略因为升级过程中会自动进行备份
1 | # gitlab-rake gitlab:backup:create |
2.2 部署新版本的gitlab服务
关闭部分gitlab服务(不要全关,因为升级中可能需要部分服务)
1 | gitlab-ctl stop unicorn |
按升级路线版本进行部署,安装源可以使用gitlab官方源
2.3 重启gitlab服务
1 | 刷新配置 |
如果跨多个大版本需要按版本升级路线中的版本,重复2.2、2.3步骤,升级到目标版本
2.4 设置gitlab定时备份
修改 /etc/gitlab/gitlab.rb
文件
1 | # 设置备份存储位置 |
保存后,刷新配置文件
1 | gitlab-ctl reconfigure |
编辑定时任务
1 | crontab -e |
加入以下内容后保存(每天中午 12 点和傍晚 18 点自动执行备份操作)
1 | 0 12 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create SKIP=uploads,builds,artifacts,lfs,registry,pages |
保存后需要重新启动定时器,执行如下语句
1 | # 重启定时任务 |
三、迁移流程
迁移并非是升级gitlab服务的版本,而是将gitlab从一台服务器迁移到另一台服务器的过程,并且要保持迁移前后gitlab的版本一致否则在还原数据的时候会报错。
3.1 备份原gitlab数据
迁移前备份原gitlab文件
/etc/gitlab/gitlab.rb 该文件配置了gitlab的域名、邮件发送信息、白名单等相关信息。
/etc/gitlab/gitlab-secrets.json 该文件存储了gitlab的db secret信息。如果丢失,那么使用双重身份验证的GitLab用户将无法访问GitLab服务器,而存储在GitLab中的安全变量
将被丢失。
使用 gitlab-rake 备份gitlab数据
1 | # gitlab-rake gitlab:backup:create |
3.2 部署新版本的gitlab服务
安装源可以使用gitlab官方源
3.3 还原gitlab数据
1 | 还原gitlab数据 |
至此gitlab迁移就已完成,jenkins进行CI/CD的时候可能会出现
1 | Host key verification failed. |
需要手动克隆一下代码,然后在gitlab对应项目的 Settings –> Repository –> Deploy Keys 中允许jenkins服务器,只需要手动克隆一个项目即可。