前言:gitlab11升级到14还是有挺多需要注意的坑,也算是做一次积累吧,升级前后,gitalb的WEB界面也变化了很多,升级过程需要注意的地方我放到最后说明,挺关键的

一、首先需要下载好要升级的包,这里需要注意,gitlab的官网有说明如何升级,大概就是如下面所示,跨版本升级先要升级到版本最后一个版本才行,比如线上使用11.0.7,要升级到11.11.8才能升级到12.0.12

包下载地址
https://packages.gitlab.com/gitlab/gitlab-ce

官网建议按以下版本来升级

GitLab 8: 8.11.Z > 8.12.0 > 8.17.7
GitLab 9: 9.0.13 > 9.5.10
GitLab 10: 10.0.7 > 10.8.7
GitLab 11: 11.0.6 > 11.11.8
GitLab 12: 12.0.12 > 12.1.17 > 12.10.14
GitLab 13: 13.0.14 > 13.1.11 > 13.8.8 > 13.12.15
GitLab 14: 14.0.12 > 14.3.6 > 14.9.5 > 14.10.5
GitLab 15: 15.0.5 > 15.1.6 (for GitLab instances with multiple web nodes) > 15.4.6 > latest 15.Y.Z

官网文档链接在这里

https://docs.gitlab.com/ee/update/index.html#upgrade-paths

二、升级步骤

2.1 先把nginx停止,外部无法访问了

/usr/local/nginx/sbin/nginx -s stop

2.2 做一次备份,整个过程我只做一次备份,我也在阿里云做镜像以防万一,同时我在操作线上升级前已经反复尝试,还是有信心的

gitlab-rake gitlab:backup:create

备份敏感数据
cp /etc/gitlab/gitlab.rb /data/gitlab/backups
cp /etc/gitlab/gitlab-secrets.json /data/gitlab/backups

2.3 关闭gitlab的部分服务

13.x以前版本关闭unicorn,14.x版本就不支持unicorn,从13版本开始,我使用puma方式,停止方式gitlab-ctl stop puma

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

2.4 升级新版本

rpm -Uvh 要升级版本.rpm

这里要升级到11.11.8版本为例子

rpm -Uvh gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm

2.5升级完成后,没有报错情况下,需要重新运行配置,否则启动会失败  

gitlab-ctl reconfigure

2.6 启动

gitlab-ctl restart

2.7 查看gitlab版本信息  

第一种
gitlab-rake gitlab:env:info 第二种
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

2.8 检查服务

gitlab-rake gitlab:check SANITIZE=true

systemctl status gitlab-runsvdir.service

2.9 启动nginx  

/usr/local/nginx/sbin/nginx

三、检查测试git提交是否正常

我这里会修改代码,然后提交是否正常,如果没有问题就当升级成功了

四、需要注意的问题,我都说明下

4.1 gitlab13.x版本要安装并且开启Puma,因为14版本就不支持unicorn

4.2 升级13版本前一个版本需要升级postgresql,就是升级到了12.10.14版本,再执行更新postgresql

更新
gitlab-ctl pg-upgrade 需要重新运行配置,否则启动会失败
gitlab-ctl reconfigure 启动
gitlab-ctl restart

4.3 在gitlab13.x的最后一个版本 将传统存储转换为哈希存储,也就是13.12.15版本,文档说明

https://docs.gitlab.com/ee/administration/raketasks/storage.html#migrate-to-hashed-storage%20for%20details

步骤如下

gitlab-rake gitlab:storage:migrate_to_hashed

# 执行成功后,再次执行,会提示如下内容:
#There are no projects requiring storage migration. Nothing to do! # 全部迁移成功,以下命令查看所列出的项目总数与页面的理应一致
gitlab-rake gitlab:storage:hashed_projects # 查看,全部迁移成功以下两条命令应该为 0
gitlab-rake gitlab:storage:legacy_projects
gitlab-rake gitlab:storage:legacy_attachments # 列出传统存储的项目以及附件
gitlab-rake gitlab:storage:list_legacy_projects
gitlab-rake gitlab:storage:list_legacy_attachments

4.5 升级14.x版本前一个版本升级postgresql,也就是13.12.15版本

更新
gitlab-ctl pg-upgrade 需要重新运行配置,否则启动会失败
gitlab-ctl reconfigure 启动
gitlab-ctl restart

  

最后没问题了,正常使用~

  

记录一次线上gitlab11.x升级gitlab14.x版本操作的更多相关文章

  1. Linux(2)---记录一次线上服务 CPU 100%的排查过程

    Linux(2)---记录一次线上服务 CPU 100%的排查过程 当时产生CPU飙升接近100%的原因是因为项目中的websocket时时断开又重连导致CPU飙升接近100% .如何排查的呢 是通过 ...

  2. 记录一次线上bug

    记录一次线上bug,总的来说就是弱网和重复点击.特殊值校验的问题. 测试场景一:        在3g网络或者使页面加载速度需要两秒左右的时候,输入学号,提交学生的缴费项目,提交完一个 学生的缴费后, ...

  3. 原创 记录一次线上Mysql慢查询问题排查过程

    背景 前段时间收到运维反馈,线上Mysql数据库凌晨时候出现慢查询的报警,并把原始sql发了过来: --去除了业务含义的sql update test_user set a=1 where id=1; ...

  4. 【JVM】记录一次线上SWAP偏高告警的故障分析过程

    近期遇到一个堆外内存导致swap飙高的问题,这类问题比较罕见,因此将整个排查过程记录下来了 现象描述 最近1周线上服务器时不时出现swap报警(swap超过内存10%时触发报警,内存是4G,因此swa ...

  5. 记录一次线上yarn RM频繁切换的故障

    周末一大早被报警惊醒,rm频繁切换 急急忙忙排查 看到两处错误日志 错误信息1 ervation <memory:0, vCores:0> 2019-12-21 11:51:57,781 ...

  6. 记录一次线上实施snmp

    公司要实施一个部级的项目,我们公司的提供的产品要对接下客户的一个平台监控平台,该监控平台使用snmp,我们公司的产品不支持snmp,所以由我负责在现网实施snmp,记录这次现网 一.生成编译规则 1. ...

  7. 记录一次线上OOM调优经历

    现状: k8s 的一个pod 有32G内存,每秒产生新对象的峰值在900Mb ---- 1900Mb(根据jstat计算Eden区获得) . 修改之前的参数 就一个命令行参数是-Xmx31g; 我修改 ...

  8. MySQL线上执行大事务或锁表操作

    前提 在线执行一些大事务或锁表操作(给某个核心级表加一列或者执行修改操作),此时不但主库从库要长时间锁表,主从延迟也会变大.未避免大事务sql对整个集群产生影响,,我们希望一条SQL语句只在Maste ...

  9. laravel 项目本地版本为5.5,线上mysql 为5.7.21版本,执行严格模式

    看到网上很多说修改 但是在mysql 5.7中没有这个参数设置,故放弃: 结合本项目sina_id 10位超过int的最大范围4294967295,所以报错,修改为bigint  即可.

  10. 【Java分享客栈】从线上环境摘取了四个代码优化记录分享给大家

    前言 因为前段时间新项目已经完成目前趋于稳定,所以最近我被分配到了公司的运维组,负责维护另外一个项目,包含处理客户反馈的日常问题,以及对系统缺陷进行优化. 经过了接近两周的维护,除了日常问题以外,代码 ...

随机推荐

  1. laravel 导出

    常规导出xlsx  更多的是导出小数据  需要大数据导出的时候 需要临时更改内存大小  ini_set('memory_limit', '1024M');  不更改内存的情况 可以选择队列导出到服务器 ...

  2. 【2020NOI.AC省选模拟#2】A. 旋转

    题目链接 原题解: 把每个点的坐标视为复数,那么每次询问就是区间求平均数(先求和然后除以个数).一个点绕着原点旋转就是乘以$(\cos 60^\circ +i\sin 60^\circ)$. 一个点绕 ...

  3. c语言实现单链表的倒叙

    bool upsidedown_list(LinkList L) { Lnode *head, *tmp, *oldhead; head = L; tmp = L->next; oldhead ...

  4. 微软开源 Python 自动化神器 Playwright

    背景 逛博客时候突然看到 Playwright web自动化,感觉很有意思,就翻看了很多博客,简单记录一下. 简介 Playwright是一个强大的Python库,仅用一个API即可自动执行Chrom ...

  5. Windows+svn +Jenkins+发布NetCore/VUE项目

    1. NetCore环境下载,注意是下载SDK,不是Runtime:https://dotnet.microsoft.com/download/dotnet-core?utm_source=getdo ...

  6. 数据库之【常用sql语句归纳】

    一.数据库操作: 1.创建数据库 create database dbname; 2.创建库是否存在,不存在就创建 create database if not exists dbname; 3.查看 ...

  7. 学习JavaScript 第二周

    分支结构中的switch switch(值&条件表达式){ case 值: 操作: break; case 值: 操作: break; ... default: 默认操作 } switch根据 ...

  8. yugong诠释

    整个迁移方案,分为两部分: 全量迁移 增量迁移 过程描述: 增量数据收集 (创建oracle表的增量物化视图) 进行全量复制 进行增量复制 (并行进行数据校验) 原库停写,切到新库 回滚方案: 开启新 ...

  9. 使用SecureCRT通过SSH连接远程Linux设备

    Ubuntu安装和配置ssh教程 https://blog.csdn.net/future_ai/article/details/81701744 以SecureCRT为例: 把电脑和设备连接在同一个 ...

  10. Spring 笔记三 事务

    一.环境搭建 [1]导包 [2]编写配置文件 1. 配置扫描注解 2. 引入外部资源文件 3. 配置数据源 4. 配置JdbcTemplate 操作数据库 5. 配置声明式事务 5.1 Spring ...