Gitlab omnibus 8.15.1 升级到 9.5.+

article/2025/8/28 23:15:03

升级场景

由于公司要通过gitlab接入ci和cd功能,经测试一个repo不能正常使用,且gitlab9.5之后增加了很多新功能,比较吸引我们

  • GPG Commit Verification: GPG密钥允许您验证签名提交

  • New Navigation Improvements: 界面窗口有所改进,更便捷和美观,可以在老界面和新界面自由切换

  • Project Template: 新增了更多的项目模板

  • Automatic Retry for Failed CI Jobs:自动重试失败的ci job

  • Automatically Monitor Auto Deployed Apps:自动监控自动部署应用程序

  • Merge Request Diff File Navigation:查看merge request时更清晰

更多的特性请查阅:https://about.gitlab.com/2017/08/22/gitlab-9-5-released/

考虑的点及问题

  • 1.postgresql版本问题: 由于我们公司使用的是外部的postgresql和redis,postgresql的版本为9.3,而gitlab9.5.9依赖postgresql 9.6以上的版本,所以在升级gitlab的时候他会升级数据库,但是我们是外部的(AWS RDS),所以他并不能升级,会抛出异常。

  • 2.postgresql的表结构问题:在升级期间,由于版本变化比较大,所以会涉及表结构及表字段的更改,如果使用外部的postgresql,可能会导致不成功

  • 3.gitlab有可能升级失败,失败后必须理解还原,且不影响线上数据

解决方案

根据上述问题,新启动一台实例,首先保持和线上的版本相同,其次将线上的数据还原到这台实例,然后在将新启动的实例进行升级,不过在这其中有几个点必须注意:

  • 1.新启动的实例必须使用本地的postgresql和redis

  • 2.必须将线上的postgresql的数据还原到当前实例的postgresql

  • 3.当前实例上面的psql和pg_dump工具必须和线上版本保持一致(AWS RDS POSTGRESQL)

  • 4.在测试期间,绝对不能和线上使用同一个redis,必须保持redis只有一个connect

  • 5.在gitlab还原数据的时候,其必须在running状态

实施步骤

一、新实例安装线上同版本gitlab


$ curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash$ sudo yum install gitlab-ce-8.15.1-ce.0.el7.x86_64 -y

二、初始化新实例的gitlab

修改配置文件,修改external_url


$ sudo vim /etc/gitlab/gitlab.rbexternal_url 'http://git.test.com'$ sudo gitlab-ctl reconfigure# 成功后,通过域名映射来访问(注意,这里如果没有增加dns记录,需要添加hosts)

三、还原postgresqlgit-data,与线上保持一致

还原postgresql

1.清除当前实例pgsql的数据


$ gitlab-psql -h /var/opt/gitlab/postgresql -d template1template1=> DROP DATABASE gitlabhq_production;DROPtemplate1=> CREATE DATABASE gitlabhq_production WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8';CREATEtemplate1=> ALTER DATABASE gitlabhq_production OWNER TO gitlab;ALTER

2.还原线上数据


$ pg_dump -U gitlab -h HOST -p 5432 gitlabhq_production > gitlabhq_production.sql$ gitlab-psql -h /var/opt/gitlab/postgresql -d gitlabhq_production < gitlabhq_production.sql

还原Gitlab data

1.首先下载备份文件,我这里保存在s3上面,所以从s3直接下载,如果没有可以执行下面的命令先进行备份,如果有请忽略


$ sudo gitlab-rake gitlab:backup:create SKIP=db  # // 如果有备份不需要执行 //$ aws s3 cp s3://git-bak/1505322888_2017_10_27_gitlab_backup.tar .$ cp 1505322888_2017_10_27_gitlab_backup.tar /var/opt/gitlab/backups/

2.进行还原


$ sudo gitlab-rake gitlab:backup:restore SKIP=db BACKUP=1505322888_2017_09_14_gitlab_backup.tar

3.重新配置并访问查看


$ sudo gitlab-ctl reconfigure

四、对当前实例Gitlab进行升级

1.通过yum升级


sudo yum install gitlab-ce-9.5.9-ce.0.el7.x86_64 -y

2.访问正常后,将当前实例的数据导出


sudo -u gitlab-psql pg_dump -h /var/opt/gitlab/postgresql -U gitlab-psql gitlabhq_production > /tmp/gitlab.sql

3.导入到线上的新postgresql(AWS RDS 9.6+)


psql -U gitlab -h HOST -p 5432 -d gitlabhq_production < gitlabhq_production.sql

4.修改gitlab配置,配置pgsql及nginx等

注意,修改后为https,需要增加证书。禁用默认的pgsql及prometheus等(如果需要可以开启)


$ sudo vim /etc/gitlab/gitlab.rbexternal_url 'https://git.test.com'nginx['redirect_http_to_https'] = truegitlab_rails['time_zone'] = 'Asia/Shanghai'gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "xxx.xxx.com"gitlab_rails['smtp_port'] = 25gitlab_rails['smtp_user_name'] = "xxx"gitlab_rails['smtp_password'] = "xxx"gitlab_rails['smtp_authentication'] = "login"gitlab_rails['gitlab_email_from'] = 'xxx@xxx.com'gitlab_rails['db_adapter'] = 'postgresql'gitlab_rails['db_encoding'] = 'utf8'gitlab_rails['db_host'] = 'HOST'gitlab_rails['db_port'] = '5432'gitlab_rails['db_username'] = 'gitlab'gitlab_rails['db_password'] = 'xxxxxx'postgresql['enable'] = falseredis['enable'] = falsegitlab_rails['redis_host'] = 'xxxx.qm7fjs.ng.0001.cnn1.cache.amazonaws.com.cn'gitlab_rails['redis_port'] = 6379nginx['enable'] = truenginx['ssl_certificate'] = '/etc/gitlab/ssl/xxx.com.chain.crt'nginx['ssl_certificate_key'] = '/etc/gitlab/ssl/xxx.com.key'node_exporter['enable'] = falseprometheus_monitoring['enable'] = false

5.重新配置gitlab


$ gitlab-ctl reconfigure

6.重新访问,并确认成功
gitlab-1.png
gitlab-2.png
gitlab-3.png

转载于:https://blog.51cto.com/xinzong/2045285


http://chatgpt.dhexx.cn/article/1JXnGvcK.shtml

相关文章

gitlab升级(Omnibus packages)

为什么80%的码农都做不了架构师&#xff1f;>>> 1、下载安装包 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-8.7.0-ce.0.el6.x86_64.rpm 下载rpm包时&#xff0c;使用清华的镜像 2、rpm升级 rpm -Uvh gitlab-ce-8.7.0-ce.0.el6.x86_64…

CentOS 7 Omnibus 包安装 GitLab 并汉化记录

为什么80%的码农都做不了架构师&#xff1f;>>> 系统环境 操作系统&#xff1a;CentOS 7 GitLab&#xff1a;gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm下载Omnibus安装包 使用国内镜像加速下载地址 # wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gi…

Omnibus系列之 创建ObjectServer并配置

前面博客里已经安装好了 Object Server、Probe、还有gateway组件&#xff0c;接下来进行配置&#xff0c;使各组件运行起来。 首先创建Object server DB&#xff0c;linux和windows版本的操作系统创建的方法如下 创建object server DB&#xff0c;执行以下命令 NCOMS是系统默认…

系统为 ubuntu 18.04的docker中omnibus 方式安装 gitlab

一&#xff1a;拉镜像 1&#xff1a;拉镜像 docker pull ubuntu:18.04 2&#xff1a;启动镜像&#xff1a;这里必须加上-p&#xff0c;即端口号的映射&#xff0c;否则访问不到。 最好用桥接模式联网&#xff0c;默认的就行。 docker run -itd -p 443:443 -p 80:80 -p 222:22 …

Gitlab的一键安装包omnibus

2019独角兽企业重金招聘Python工程师标准>>> Gitlab和omnibus安装包 Gitlab能够让你的团队拥有自己的github&#xff0c;完全拥有整个git服务的账号管理&#xff0c;项目管理&#xff0c;issue管理&#xff0c;merge request等方便研发团队的工具。 Gitlab是开源的&…

error: unable to open preload file “/etc/sysctl.d/90-omnibus-gitlab-net.core.somaxconn.conf“

centos6.9环境下&#xff1a;gitlab-ctl reconfigure时报错 error: unable to open preload file "/etc/sysctl.d/90-omnibus-gitlab-net.core.somaxconn.conf" 解决方案&#xff1a; export LC_CTYPEen_US.UTF-8 export LC_ALLen_US.UTF-8

Omnibus F4V3 Pro飞控,APM飞控显示电池电压电流

默认时&#xff0c;Omnibus F4 Pro烧写APM飞控后&#xff0c;电池检测器没有设置的。想要屏幕上显示电池电压和电流信息&#xff0c;就需要设置一下。 设置信息如下&#xff1a; BATT_MONITOR4 然后重启&#xff1a; 重启后&#xff0c;继续设置&#xff1a; BATT_VOLT_PIN 12…

omnibus gitlab-ce安装

架构 关闭防火墙 [rootgitlab ~]# systemctl stop firewalld [rootgitlab ~]# systemctl disable firewalld关闭SELinux [rootgitlab ~]# setenforce 0 setenforce: SELinux is disabled安装依赖组件 [rootgitlab ~]# yum -y install curl policycoreutils openssh-server o…

Omnibus test

sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId1005269003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare https://en.wikipedia.org/wiki/Omnibus_test Omnibus test…

使用 Omnibus 安装极狐GitLab

目录 服务器配置 极狐GitLab 安装 安装和配置必须的依赖项 下载极狐GitLab 安装包 安装极狐GitLab 安装包 初始登陆 SSL 配置 生成 ssl 证书 配置 nginx 极狐GitLab 的安装方式灵活多样&#xff0c;支持 Omnibus、Docker、Helm 安装&#xff0c;而且安装过程也是非常…

OMNIbus

OMNIbus概念 Omnibus数据库 ObjectServer&#xff0c;数据库服务器 ObjectServer是Tivoli Netcool/OMNIbus核心的数据库服务器。 事件信息从外部程序&#xff08;例如&#xff0c;探测器和网关&#xff09;转发至ObjectServer。ObjectServer将此信息存储在数据库表中并进行管理…

UnityDecal——贴花方法总结

Unity里贴花的实现方法比较多&#xff0c;商店里的插件也是各种各样&#xff0c;最近正好又在弄这个&#xff0c;趁机会给自己总结下&#xff1a; 1、构造贴片网格 思想很简单&#xff0c;就是在当前表面构建一个与表面完全贴合的新Mesh&#xff0c;并重新计算纹理贴图&#…

Blender学习笔记-印花(decal)贴图

最近学习blender制作模型&#xff0c;特将学习心得记录下来&#xff0c;供参考。 今天的心得是如何将贴图(英文名为decal)贴在另一张贴图的表面上&#xff0c;常用于文字、logo的图案制作。 视频教程&#xff08;可在最后的链接下载&#xff09;最后的结果如下图所示&#xf…

Decal的另类用法

Decal在没有办法得到深度之前都是根据地形的高度自己生成三角形来生成的&#xff0c;有了深度之后一切变的很简单&#xff0c;只需要画一个box就可以解决&#xff0c;类似于点光源。 以前做过的一个项目最后就是把地形的一个sector分成几个decal来画&#xff0c;虽然DP增加了&a…

Oracle中declare如何使用

Oracle中declare如何使用 首先我们需要了解declare遵循下面的实现结构 declare --声明 begin --开始 end; --结束 了解之后&#xff0c;我们就可以在这个结构中添加语句实现小功能 例如&#xff1a;输出今天的日期 declare --声明 datevalue varchar2(20);--定义变量 begin --…

DCC - Photoshop - Nvidia NormalMapFilter - 法线生成工具 - 顺便测试 Unity URP 12.1 中的 Decal System

文章目录 NVIDIA Texture Tools Exporter 下载、安装法线生成素材图扣干净无用像素使用 NVIDIA Normal Map Filter 生成贴图配置好 URP Renderer添加好 Decal Render Feature设置好 Decal Render Feature Techniqu: DBuffer配置好 unity shader graph添加 URP Decal Projector …

图形杂记-Decal贴花

ThreeJS WEBGL Decal 贴花 在图形学里主要指将特定图案&#xff0c;以类似粘贴或印刷的方式附着于其他物体上&#xff0c;能创造一种新颖的体验或逼真的效果&#xff0c;比较有趣&#xff0c;游戏中比较出名的有喷射战士splatoon123等。 unity HDRP中默认支持decal&#xff0c…

SQL中的declare用法

&#xfeff;&#xfeff; 平时写SQL查询、存储过程都是凭着感觉来&#xff0c;没有探究过SQL的具体语法&#xff0c;一直都是按c#那一套往SQL上模仿&#xff0c;前几天项目中碰到一个问题引起了我对declare定义变量的作用域的兴趣。 大家都知道c#中的局部变量&#xff0c;在i…

UE4使用贴花(Decal)

一、创建贴花材质 1:新建一个Material材质&#xff0c;修改Material Domain 为Deferred Decal (延迟贴花)&#xff0c;设置Blend Mode 为Translucent(半透明) 2&#xff1a;新建节点 3&#xff1a;给节点赋予材质&#xff0c;根据要求链接透明度和粗糙度 二、使用使用贴花 …

Deferred Decal(延迟贴花)

Decal渲染是一个引擎中重要的一部分&#xff0c;记忆中印象最深刻的就是以前CS中的弹痕与爆炸痕迹了。目前来说&#xff0c;Decal的实现方法也比较多&#xff0c;而且感觉还跟游戏类型有关&#xff0c;比如子弹乱飞的射击类FPS游戏中对贴花系统的要求就比较高&#xff0c;因为本…