Rmp安装方式升级,非yum
可通过 rpm -qa gitlab-ce 确认安装方式
环境
Centos: CentOS Linux release 7.6.1810 (Core)
Gitlab: 12.3.5 CE 【已汉化】
内核:3.10.0-1127.19.1.el7.x86_64
安装方式: rmp rpm -qa gitlab-ce
安装源:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
Gitlab查看版本:https://domain.com/help
升级路线
12.3.5 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.8.8 -> 13.12.15 -> 14.0.12 -> 14.4.2 -> 14.6.2
502异常
在没有任何操作的情况下,报error 502,未知原因
未排查到原因,但是成功解决,解决方案:
systemctl stop gitlab-runsvdir.service
gitlab-ctl stop
gitlab-ctl reconfigure
gitlab-ctl start
gitlab-ctl status
备份/创建文件夹
- 创建备份文件夹及安装包文件夹
mkdir /gitlab
mkdir /gitlab_backup
- 配置gitlab
vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = "/gitlab_backup" # 备份的目录
gitlab_rails['backup_archive_permissions'] = 0644 # 备份包(tar格式压缩包)的权限
gitlab_rails['backup_keep_time'] = 604800 # 备份的保留时间,单位是秒
gitlab-ctl reconfigure # 重载配置,使之生效
- 开始备份
gitlab-rake gitlab:backup:create
cp /etc/gitlab/gitlab.rb /gitlab_backup
cp /etc/gitlab/gitlab-secrets.json /gitlab_backup
升级基准[必看]
- 升级前需要先停止gitlab
- 每次升级后,需要查看是否正常,不能在未核对的情况下连续升级!
12.3.5=>12.10.14
- 下载rmp安装包
cd /gitlab
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm --no-check-certificate
- 移除并安装
gitlab-ctl stop
rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-12.3.5-ce.0.el7 ################################# [100%]
rpm -ivh gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm
gitlab-ctl start
gitlab-ctl status
gitlab-ctl reconfigure
gitlab-ctl restart
- 核对版本
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-12.10.14-ce.0.el7.x86_64
[root@VM-16-13-centos gitlab]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
12.10.14
- 访问前端页面,正常展示代码仓即可
12.10.14=>13.0.14
- 升级postgresql数据库
gitlab-ctl pg-upgrade
gitlab-psql -c "SELECT relname, last_analyze, last_autoanalyze FROM pg_stat_user_tables WHERE last_analyze IS NULL AND last_autoanalyze IS NULL;"
gitlab-psql -c 'SET statement_timeout = 0; ANALYZE VERBOSE;'
- 下载rmp安装包
cd /gitlab
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.0.14-ce.0.el7.x86_64.rpm --no-check-certificate
- 移除并安装
gitlab-ctl stop
rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-12.10.14-ce.0.el7 ################################# [100%]
rpm -ivh gitlab-ce-13.0.14-ce.0.el7.x86_64.rpm
gitlab-ctl start
gitlab-ctl status
gitlab-ctl reconfigure
gitlab-ctl restart
- 【可选 方案1】出现502时,执行该代码
vim /etc/gitlab/gitlab.rb
puma['port'] = 8180 #取消该注释,端口改为未占用端口,重新配置启动
gitlab-ctl start
gitlab-ctl reconfigure
gitlab-ctl restart
-
【可选 方案2】出现502时,执行该代码
- 12.10.14 → 13.0.14,升级后,如果 web 访问出现 500 错误时,可能是 unicorn 占用端口,puma 无法启动。
首先注意,12 版的 unicorn 组件被 13 版的 puma 取代。
netstat -anltp | grep 8080查看 8080 端口目前哪个组件再用。
如果是 unicorn ,ps -aux | grep unicorn获取 pid 后,将其 kill 掉。
-
gitlab-ctl restart puma,重启组件后,查看 8080 是否为 puma 在用,是的话,此问题解决。
- 13 版本 unicorn 被puma 取代,14 版本将删除 unicorn 组件,所以13 版本
/etc/gitlab/gitlab.rb
配置文件中的,有关遗留 unicorn 配置需修改为 puma 的配置。如果未修改做,13 升级 14 的话,可能出现报错如下:
- 13 版本 unicorn 被puma 取代,14 版本将删除 unicorn 组件,所以13 版本
核对版本
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-13.0.14-ce.0.el7.x86_64
[root@VM-16-13-centos gitlab]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.0.14
- 访问前端页面,正常展示代码仓即可
13.0.14=>13.1.11
- 下载rmp安装包
cd /gitlab
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.1.11-ce.0.el7.x86_64.rpm --no-check-certificate
- 移除并安装
gitlab-ctl stop
rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-13.0.14-ce.0.el7 ################################# [100%]
rpm -ivh gitlab-ce-13.1.11-ce.0.el7.x86_64.rpm
gitlab-ctl reconfigure
gitlab-ctl start
- 核对版本
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-13.1.11-ce.0.el7.x86_64
[root@VM-16-13-centos gitlab]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.1.11
- 访问前端页面,正常展示代码仓即可
升级13.8.8+前置要求【postgresql V12】
GitLab 13.3 及更高版本
从 GitLab 13.3 开始,PostgreSQL 11.7 和 12.3 都随 Omnibus 一起提供。在包升级过程中,数据库不会升级到 PostgreSQL 12。如果你想升级到 PostgreSQL 12,你必须手动进行:
sudo gitlab-ctl pg-upgrade -V 12
GitLab 13.7 及更高版本
从 GitLab 13.7 开始,新安装将默认为 PostgreSQL 12。
现有实例可以通过以下方式手动更新:
sudo gitlab-ctl pg-upgrade -V 12
如果不确定当前版本,可执行升级命令【在13.0.14的时候,执行过升级的,可以跳过】
gitlab-ctl pg-upgrade -V 12
13.1.11=>13.8.8
- 下载rmp安装包
cd /gitlab
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.8.8-ce.0.el7.x86_64.rpm --no-check-certificate
- 移除并安装
gitlab-ctl stop
rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-13.1.11-ce.0.el7 ################################# [100%]
rpm -ivh gitlab-ce-13.8.8-ce.0.el7.x86_64.rpm
gitlab-ctl reconfigure
gitlab-ctl start
- 核对版本
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-13.8.8-ce.0.el7.x86_64
[root@VM-16-13-centos gitlab]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.8.8
- 访问前端页面,正常展示代码仓即可
13.8.8=>13.12.15
- 下载rmp安装包
cd /gitlab
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.12.15-ce.0.el7.x86_64.rpm --no-check-certificate
- 移除并安装
gitlab-ctl stop
rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-13.8.8-ce.0.el7 ################################# [100%]
rpm -ivh gitlab-ce-13.12.15-ce.0.el7.x86_64.rpm
gitlab-ctl reconfigure
gitlab-ctl start
- 核对版本
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-13.12.15-ce.0.el7.x86_64
[root@VM-16-13-centos gitlab]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.12.15
- 访问前端页面,正常展示代码仓即可
13.12.15=>14.0.12
- 下载rmp安装包
cd /gitlab
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.0.12-ce.0.el7.x86_64.rpm --no-check-certificate
- 移除并安装
gitlab-ctl stop
rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-13.12.15-ce.0.el7 ################################# [100%]
rpm -ivh gitlab-ce-14.0.12-ce.0.el7.x86_64.rpm
gitlab-ctl reconfigure
gitlab-ctl start
- 核对版本
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-14.0.12-ce.0.el7.x86_64
[root@VM-16-13-centos gitlab]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
14.0.12
- 访问前端页面,正常展示代码仓即可
14.0.12=>14.4.2
- 下载rmp安装包
cd /gitlab
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm --no-check-certificate
- 代码仓数据备份
- 首先,检查您是否遵循了14.2 版本特定的升级说明。如果有,您可以手动完成批量后台迁移。如果还没有,请选择以下方法之一:
- 在更新到 14.2+ 之前回滚和升级所需的版本之一。
- 前滚,保持当前版本并手动确保批量迁移成功完成
- 开始备份
- 首先,检查您是否遵循了14.2 版本特定的升级说明。如果有,您可以手动完成批量后台迁移。如果还没有,请选择以下方法之一:
gitlab-rake db:migrate
#加载配置:
gitlab-ctl reconfigure
gitlab-ctl status
gitlab-ctl restart
- 移除并安装
gitlab-ctl stop
rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-14.0.12-ce.0.el7 ################################# [100%]
rpm -ivh gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm
gitlab-ctl reconfigure
gitlab-ctl start
- 核对版本
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-14.4.2-ce.0.el7.x86_64
[root@VM-16-13-centos gitlab]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
14.4.2
- 访问前端页面,正常展示代码仓即可
14.4.2=>14.6.2
- 下载rmp安装包
cd /gitlab
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.6.2-ce.0.el7.x86_64.rpm --no-check-certificate
- 移除并安装
gitlab-ctl stop
rpm -evh `rpm -qa gitlab-ce`
Preparing... ################################# [100%]
Cleaning up / removing...
1:gitlab-ce-14.4.2-ce.0.el7 ################################# [100%]
rpm -ivh gitlab-ce-14.6.2-ce.0.el7.x86_64.rpm
gitlab-ctl reconfigure
gitlab-ctl start
- 核对版本
[root@VM-16-13-centos gitlab]# rpm -qa gitlab-ce
gitlab-ce-14.6.2-ce.0.el7.x86_64
[root@VM-16-13-centos gitlab]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
14.6.2
- 访问前端页面,正常展示代码仓即可