修复漏洞-gitlab升级(1)
修复漏洞-gitlab升级(1)
这东西搞了我很久。。。今天终于告一段落了,可喜可贺(现在喉咙痛想生病的样子)
上一篇提到我们的gitlab版本存在漏洞:任意文件读取漏洞(CVE-2020-10977),大家有兴趣可以查下这个安全漏洞的重现
(虽然是测试域名被测到,但真实环境就是这个版本)。而领导最近一直追我这个gitlab升级的工作:从骨灰级版本 11.4.x ——》最新版本(现在装到16.2.3,后来我发现这几天官方又更新到16.2.4)。
私底下我做了大量的功课,本来被发现是上一篇博客的时间左右,我就利用空闲时间在公司内网搭了相同版本的gitlab,从11.4.x升级到 16.2.0。官网有一个升级路线(https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/)
11.4.5 ——》 11.11.8 ——》 12.0.12 ——》 12.1.17 ——》 12.10.14 ——》 13.0.14 ——》 13.1.11 ——》 13.8.8 ——》 13.12.15
——》14.0.12 ——》 14.3.6 ——》 14.9.5 ——》 14.10.5 ——》 15.0.5 ——》 15.4.6 ——》 15.11.12 ——》 16.1.2 ——》 16.2.0
1、升级过程遇到的问题
其实升级只有核心几条命令,不断重复。
(1)停止gitlab的web服务:gitlab-ctl stop unicorn
(2)停止sidekiq 处理后台任务的组件:gitlab-ctl stop sidekiq
(3)停止nginx(非必要,升级过程中我没运行):gitlab-ctl stop nginx
(4)下载 rpm 包安装,例如
yum install -y gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
(5)重启
gitlab-ctl reconfigure
gitlab-ctl restart
升级到13版本之前都非常顺利,14.0.12就有报错:
解决:配置文件gitlab.rb 注释掉所有unicorn,按需打开puma,记得先备份再修改
参考:https://blog.csdn.net/weixin_40308031/article/details/125481327
然后轮到 16.1.2又有问题:Your version of PostgreSQL is no longer supported. Please upgrade your PostgreSQL version to 13.
解决:升级 postgre,运行:gitlab-ctl pg-upgrade -V 13
接着我就欢喜地开始对线上gitlab进行实操测试了,搞了个克隆机(毕竟内网的环境跟真实还是有点差异)
正式环境还多了个问题,
15.4.6 ——》 15.11.12
后来我特意用了下这个16.2.0 的版本,不怎么好用
(1)本机关联远程仓库并提交,新建项目默认分支改为main,不再是master了。
(2)上传报错:Push operation timed out
说要关闭 Ifs check
进入gitlab服务器,运行:gitlab-rails console
Feature.disable(:lfs_check)
参考:https://blog.csdn.net/yyzsyx/article/details/125904973