Gitlab升级(12.2.1到14.6.4)

article/2025/9/23 1:43:43

背景介绍那些乱七八糟的就跳过吧,直接上干货

一、准备

1.1:确定安装方式

开始纠结于到底是rpm还是yum,后来知道yum相当于对rpm进行了一系列的加壳,目的是解决rpm的依赖问题。那么就果断选择yum方式即可。

当前操作系统环境为centos7,当前gitalb版本为12.2.1

1.2:确定升级路线

好多人介绍过,gitlab的跨版本升级,需要先升级到当前大版本的最高版本后再升到下一版本。因此升级路线如下:

12.2.1 -> 12.10.14 -> 13.0.0 -> 13.12.9 -> 14.0.0 -> 14.6.4

ps,如果不清楚当前的版本号,可以执行以下两个命令任何之一或者从gitlab网页的“help”中查看。

[gitlab@localhost gitlab]$ sudo yum list | grep gitlab-ce
[gitlab@localhost gitlab]$ cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

1.3:gitlab 资料

gitlab下载地址点击此处

gitlab中文网

1.4:特别说明

本文出现的sudo,大家酌情使用

二、操作

2.1:备份配置文件

#查看,备份配置文件。其中,/user/local/backup/gitlab/conf是我随便建的路径
[gitlab@localhost gitlab]$ sudo vim /etc/gitlab/gitlab.rb
[gitlab@localhost gitlab]$ sudo cp -rf /etc/gitlab/gitlab.rb /user/local/backup/gitlab/conf
[gitlab@localhost gitlab]$ sudo cp -rf /etc/gitlab/gitlab-secrets.json /user/local/backup/gitlab/conf#在这个文件中,找到备份的路径、权限级别、备份文件保存时间(单位秒),如下所示。
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_archive_permissions'] = 0644
gitlab_rails['backup_keep_time'] = 604800#根据需求进行修改,然后保存后重载配置,使之生效
[gitlab@localhost gitlab]$ gitlab-ctl reconfigure

2.2:备份当前gitlab

# 在任意位置执行下述命令,然后会在你设定的备份路径中生成一个当前版本的备份。
[gitlab@localhost gitlab]$ sudo gitlab-rake gitlab:backup:create#备份后可能会出现诸如下面的文字,因此上一步的备份配置就显得很重要了。同时,如果升级失败需要回退时,需要手动将之前备份的配置文件拷回去即可。
Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data 
and are not included in this backup. You will need these files to restore a backup.
Please back them up manually.#备份成功后,会生成一个如下面所示的备份文件。
1644547226_2022_02_11_12.2.1_gitlab_backup.tar
#如果需要回退时,可以执行如下命令,其中“备份名”那里要填写“1644547226_2022_02_11_12.2.1”这些内容。而非简单的版本号
[gitlab@localhost gitlab]$ sudo gitlab-rake gitlab:backup:restore BACKUP=备份名

2.3:配置yum源

既然决定使用yum方式,那么为了快速下载,需要配置yum源。

修改 /etc/yum.repos.d/gitlab-ce.repo

#其中baseurl是镜像地址
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
gpgcheck=0
enabled=1

2.4:升级

使用yum命令,一步步的把所有版本都升级一下即可。比如按照我的升级路线,我只需要如下操作即可

[gitlab@localhost gitlab]$ sudo yum install -y gitlab-ce-12.10.14
[gitlab@localhost gitlab]$ sudo yum install -y gitlab-ce-13.0.0
[gitlab@localhost gitlab]$ sudo yum install -y gitlab-ce-13.12.9
[gitlab@localhost gitlab]$ sudo yum install -y gitlab-ce-14.0.0
[gitlab@localhost gitlab]$ sudo yum install -y gitlab-ce-14.6.4

2.5:后续

升级后,稳妥起见可以重启。如果在重启后发现部分配置异常,可以像3.1中所述那样重载配置后再次重启已达到使配置生效的目的。命令如下

[gitlab@localhost gitlab]$ sudo gitlab-ctl reconfigure
[gitlab@localhost gitlab]$ sudo gitlab-ctl restart 

三、卸载

如果升级后发现有解决不了的问题,那就干脆卸载重装。只是这个卸载一定要卸载干净。否则会有不少麻烦干扰进度。

开始我这么玩儿,发现根本不成

1:停服务
sudo gitlab-ctl stop2:清理和卸载
gitlab-ctl cleanse #若保留数据不执行该命令
gitlab-ctl uninstall
yum remove gitlab-ce
rm -rf /opt/gitlab #若保留数据不执行该命令

如上操作后重新安装再reconfigure,发现出现了一堆乱七八糟的异常。根据之前的经验,应该是由冲突引起的。因此重新彻底卸载

1:停服务
sudo gitlab-ctl stop2:卸载gitlab(这里需确认gitlab是ce版本还是ee版本)
sudo rpm -e gitlab-ce3:杀掉gitlab守护进程(有 opt/gitlab/service log 字样的)
ps -ef|grep gitlab
sudo kill -9 xxx4:删除磁盘文件(如果有提示 permission deny的,手动逐层删除即可)
sudo find / -name gitlab |xargs rm -rf 5:查看/root/gitlab下是否有内容,存在的话也一并删掉即可

四、问题

4.1:无法访问

如果升级后,发现无法访问,首先先查看一下你的配置是否正确

#查看其中的external_url字段对应的值是否期望的地址
[gitlab@localhost gitlab]$ sudo vim /etc/gitlab/gitlab.rb

4.2:报错“Errno::EACCES: Permission denied @ dir_s_mkdir - /var/opt/gitlab/backups/db”

从12.2.1升级到12.10.14时,报了上述错误。感觉是当前路径的权限不足。但是进去查看才发现压根就没有这个目录,没的说,创建并赋权后重新升级即可。之后又报出了“/var/opt/gitlab/backups/dbdatabase.sql.gz”的权限问题。随意创建了一个同名文件并赋权,再升级,问题解决。安全升级到12.10.14。

4.3:重装12.14.10

重装之后,发现有报错,完整信息如下

Total download size: 761 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm                                                                                                   | 761 MB  00:02:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
JSON file with existing configuration not found inside /opt/gitlab/embedded/nodes.
Skipping config check.
gitlab preinstall: 
gitlab preinstall: This node does not appear to be running a database
gitlab preinstall: Skipping version check, if you think this is an error exit now
gitlab preinstall: Updating   : gitlab-ce-12.10.14-ce.0.el7.x86_64                                                                                                           1/2 Cleanup    : gitlab-ce-12.2.1-ce.0.el7.x86_64                                                                                                             2/2 

其中“Delta RPMs disabled because /usr/bin/applydeltarpm not installed”就是报错。重装delta即可

[gitlab@localhost gitlab]$ yum provides '*/applydeltarpm'    #查看依赖包的位置
[gitlab@localhost gitlab]$ yum -y  install deltarpm             #安装命令

4.4:redis: unable to open supervise/ok: file does not exist

我在执行 gitlab-ctl reconfigure 的时候,一度执行不下去,然后ctrl+c强制退出后,先 gitlab-ctl stop 时发现报了以上的错误。此时即使再次执行 gitlab-ctl reconfig 也依然报上述的错误。其实执行下面的命令即可解决。

[gitlab@localhost gitlab]$ sudo systemctl restart gitlab-runsvdir

然后重新 reconfig 就能顺利的刷新配置了,然后重启gitlab。就会发现能看到所有的进程都出来了


http://chatgpt.dhexx.cn/article/WB9ICyJR.shtml

相关文章

简述Synchronized以及锁升级

😊 作者: 一恍过去 💖 主页: https://blog.csdn.net/zhuocailing3390 🎊 社区: Java技术栈交流 🎉 主题: 简述Synchronized以及锁升级 ⏱️ 创作时间: 2022年4月29日…

chrome 浏览器升级后接口无法正常访问

问题:chrome 浏览器升级后接口无法正常访问(后端已经设置好相关跨域设置) 现象:接口请求不成功,如下图: 解决办法: 地址览输入chrome://flags ,找到 Block insecure private network request ,设置Default为 Disabled…

禅道升级踩坑

1、本公司的禅道8.2.1,我发现没有用例套件的功能,需要升级到9.0.1才行; 2、从网上下载一看已经到10.4,那就升级到这个版本吧; 3、服务器配置: roottemplet:/opt/zbox/app/zentao/config# uname -a Linux…

Tomact升级步骤

本文以apache-tomcat-6.0.18升级为apache-tomcat-7.0.85为例。 目录 一、准备Tomcat包 二、升级步骤 2.1、停服务 2.2、打包现有Tomcat目录下logs和webapps目录 2.3、备份现有Tomcat目录 2.4、上传Tomcat安装包至 $HOME 下并解压 2.5、修改环境变量及启动脚本参数 2.6…

网站升级https访问,webscoket升级wss问题

前段时间,网站访问由http变更为https,但是由于webscoket功能受到影响,报错如下: 跟前端沟通解决方式问题,前端回复说很麻烦,暂时不要做了。 今天突发奇想,我是不是可以在nginx中修改配置&#…

WF-2页面升级方法

准备工作 需要把相应的软件升级包拷贝到电脑任意路径下,如下图例子所示,将W30S_GAN_V2_update_conf.pac放到桌面目录WF-2目录中: 1.电脑连接路由器的lan口,打开浏览器在地址栏输入192.168.10.1,按Enter键即可进入路由…

Nginx升级1.20.1后访问出现403之解决

安全扫描提示Nginx出现安全漏洞。 一共8个漏洞涉及多个nginx版本。经过考虑决定升级到1.20.1. 下载安装包,使用tar解包。 在服务器端,执行nginx -V查看当前nginx使用了那些配置参数。 然后使用./configure 参数使用nginx -V查到的参数,但是…

jenkins升级后访问报错

1、先来看看报错截图吧 2、解决方法,下载role-strategy.hpi文件放到JENKINS_HOME/plugins文件夹下面 2.1、下载链接:https://updates.jenkins.io/latest/role-strategy.hpi 放到JENKINS_HOME/plugins后需要授权 chmod 755 role-strategy.hpi 3、重启jen…

域名升级访问中拿笔记好_域名选择与老域名质量评分,尽量少踩坑

关于"域名选择与老域名质量评分"与"适合seo服务器选择与服务器安全搭建"2小节课程,本来上周三,周五已经讲完了,但是这个回放课程一直被自己找各种理由往后托,笔记也没做!好吧,看啦灰牛在学习这块还是不够积极呀!然后午休的时候看了下"域名选择与老域名…

域名升级访问中拿笔记好_赶快看看你的电脑中是否被植入了这个软件

​近日,有技术爱好者反映其电脑主板 BIOS 中预置了一款由 Absolute 公司开发的防盗追踪软件 Computrace。电脑启动后,操作系统会隐蔽安装该软件,经常向境外传输不明数据。 该软件可以远程获取电脑中的用户文件,控制用户系统,监控用户行为,甚至可以在没有授权的情况下自动…

IT资产管理流程及规范

公众号回复:干货,领取价值58元/套IT管理体系文档 公众号回复:ITIL教材,领取最新ITIL4中文教材 更多专业文档请访问 www.itilzj.com 为了更好地维护和管理IT设备,充分利用所有IT设备资源,不断提高公司IT资产…

固定资产管理系统哪家好?固定资产管理平台有哪些?

根据先进的云呐固定资产管理系统,RFID物联网技术与互联网技术的深度融合,让RFID标识和智能产品系统自动收集记录资产在生命周期、价值变化、处理资产设备从采购到使用、盘点、损坏、变更等管理阶段,帮助企业从复杂的管理过程中解放。 解决固定…

企业固定资产管理是哪个部门管理的

固定资产管理是由哪个部门进行管理的?通常情况下,企业的固定资产是由财务部、行政部门、办公室、资产管理部门、设备部等等这些管理的。 首先,我们要了解固定资产管理是由哪个部门来处置,企业的固定资产应该有资产管理部门、财政部门、企业还…

固定资产管理系统软件

资产管理系统解决方案适合20人左右的政府部门、事业单位、部队、企业、大专院校、医院、中小学等资产管理部门使用。固定资产管理系统平台支持条码或rfid电子标签,请根据实际场景需要选择相匹配的数据采集器(手持终端)、标签打印机等。 资产管…

非标产品和标准产品的区别(关于3C)

近期因为关于3C认证问题,弄的焦头烂额,查询到一些资料记录一下 先看下《中华人民共和国标准化法》有关说明 第二条 本法所称标准(含标准样品),是指农业、工业、服务业以及社会事业等领域需要统一的技术要求。 标准包…

公司固定资产该哪个部门管理,一般公司固定资产怎么管理

固定资产是企业顺利工作的基础条件,特别是针对固定资产密集型企业,如果固定资产管理不好,将直接影响企业的经营成本。因此,一般大型企业会设立专门的固定资产管理部门,由固定资产管理员管理和盘点大量的固定资产。很多…

云呐|如何完善固定资产管理制度和程序

从长远来看,我们应当挑选确定的固定资产管理软件。唯有考虑到这些优势,我们才可以长期深入使用固定资产管理软件,这也是企业未来必不可少的固定资产管理软件。如今,随着市场竞争力的猛增,企业必须首先运用固定资产管理…

【云驻共创】非标装备制造企业如何破除交付困境

文章目录 前言一、制造业的生产关系1.OEM的概念2.EU的概念3.EPC/SI的概念 二、数字化的现状及趋势1.IT和OT2.数字化设备 三、非标装备企业的现状1.非标装备企业的现状-运营模式低效 四、非标装备企业的发展趋势五、携手华为云,打造装备数字化解决方案六、基于工艺编…

意想不到,企业资产管理如此简单

对大中型企业,固定资产具有数量大、种类多、价值高、使用周期长、使用地点分散等特点,管理难度大。一些传统固定资产管理软件,痛点丛生,已难于满足企业需求。 资产管理平台 资产管理平台以资产管理目标为引导,以资产数…

云呐|固定资产归哪个部门管理,归谁管理

正常情况下,固定资产管理属于行政部门管理,固定资产管理是行政部门中非常重要的一部分,说到使用部门管理有点不合理,使用部门使用或毁坏固定资产或向行政部门报告,使用部门只使用,管理应属于行政部门&#…