Gitlab升级(12.2.1到14.6.4)

news/2024/11/28 22:33:02/

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

一、准备

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://www.ppmy.cn/news/215676.html

相关文章

将http网站升级为https网站的方法指南

将http网站升级为https网站的必要条件就是申请SSL证书,成功申请SSL证书就可以将http网站升级为https网站,具体操作教程如下: 一、获取证书 升级到HTTPS协议的第一步,就是要获得一张证书,证书是一个二进制文件&#x…

【MySQL】MySQL的常用升级方法

升级方式 1) 小版本升级 使用mysql_upgrade升级不可跳级,从5.1升级到5.6,需要先升级到5.5;这种适合小版本升级。 MySQL升级本质上是对数据字典的升级,数据字典有:mysql、information_schema、performance_s…

Ubuntu 从16.04升级到18.04后,samba无法访问

Ubuntu 从16.04升级到18.04后,samba无法访问 问题1:在LinuX下面访问,在WINDOWS 7下面不能访问,提示用户名或密码错误 。 在[global] 下面,添加 ntlm auth yes 这一句语句,主要是因为,Ubuntu升…

IIS 部署.NET网站无法访问解决办法

1、应用程序池 - 基本设置 - 选择 .NET 版本、托管管道模式“经典” 2、高级设置 - 启用32位应用程序 True 、托管管道模式 “Classic” 3、MIME类型没有问题 也可以在config文件里添加&#xff0c;如&#xff1a; 在“<system.webServer>”下添加&#xff0c; <stati…

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

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

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…

禅道升级踩坑

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

全面升级HTTPS访问

全面升级HTTPS访问 HTTPS是什么&#xff1f; HTTPS&#xff08;全称&#xff1a;Hyper Text Transfer Protocol over Secure Socket Layer&#xff09;&#xff0c;是以安全为目标的 HTTP 通道&#xff0c;简单讲是 HTTP 的安全版。即 HTTP 下加入 SSL 层&#xff0c;HTTPS 的…