需要处理 Gitlab 升级的工作。
前同事的部署文档:http://asset.bbdops.com/software/info/e1d4c131-1a30-442c-a15f-c6c84100d79a (仅内网)
目前的版本是 10.1.2
,最新版本是 12.8.5
官方升级文档:https://docs.gitlab.com/ee/policy/maintenance.html#upgrade-recommendations
$ cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
10.1.2
根据官方升级文档:
决定升级路线是 : 10.1.2
-> 10.8.7
-> 11.11.8
-> 12.0.12
-> 12.8.5
。共四次升级。
现在生产环境旁边建一相同版本的测试环境,将数据迁移到测试环境,然后在测试环境进行升级,测试环境升级完成后再进行生产环境的升级。
升级过程中,需要关闭服务,需要提前发邮件约定好。
需要准备好安装包,可以在 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 查找特定版本号的 rpm 包。也可以配置好源,然后用 yum 安装指定版本。
万一生产环境升级失败,服务启动失败,可以直接改 DNS 将测试环境变为生产环境。
下面在测试环境进行升级。
先关闭服务:
$ sudo gitlab-ctl stop unicorn
$ sudo gitlab-ctl stop sidekiq
$ sudo gitlab-ctl stop nginx
创建数据备份:
$ sudo gitlab-rake gitlab:backup:create
安装 10.8.7 版本:
$ sudo yum install gitlab-ce-10.8.7-ce.0.el7.x86_64
重新建立配置:
$ sudo gitlab-ctl reconfigure
重启:
$ sudo gitlab-ctl restart
查看状态:
$ sudo gitlab-ctl status
查看版本号:
$ cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
10.8.7
网页也能打开并登录,万事大吉。
步骤和上述一致,安装版本换成 11.11.8:
$ sudo yum install gitlab-ce-11.11.8-ce.0.el7.x86_64
稳定,没毛病。
查看版本号:
$ cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
11.11.8
按照上面的套路再升级:
$ sudo yum install gitlab-ce-12.0.12-ce.0.el7.x86_64
查看版本号:
$ cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
12.0.12
依旧没毛病。
$ sudo yum install gitlab-ce-12.8.5-ce.0.el7.x86_64
相安无事。。。
$ cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
12.8.5
四次升级,都没有特别注意的地方。备份只需要在关服务后进行一次即可。
产线环境,要把源从本地准备好,网上的源下载太慢,耽误时间。
先把测试环境弄好,包括 CI/DI等。测试没毛病之后,再进行升级。
准备凌晨进行线上环境升级。预计耗时一小时。
在12.0 版本中,Gitlab 对 CI/CD 进行了升级,见官方文档:https://docs.gitlab.com/ee/ci/
需要在机器上安装 gitlab-runner ,官方地址:https://docs.gitlab.com/runner/install/linux-manually.html
可以按照这个地址来安装:https://packages.gitlab.com/runner/gitlab-runner
$ curl -s https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
$ sudo yum install gitlab-runner -y
安装完成后,进行注册:https://docs.gitlab.com/runner/register/index.html#gnulinux
$ sudo gitlab-runner register
具体过程如下:
这里的地址和 token 要去项目中的 setting
---> CI/CD
---> Runners
中获取。
配置完成后,gitlab-runner
会自己启动。。
手动启动,多启动一遍也没啥事:
$ sudo gitlab-runner start
查看状态:
$ sudo gitlab-runner status