gitlab升级迁移---源码包安装转rpm包(三)

距离上次gitlab升级快过去一年了,期间gitlab已更新了好多新版本,都没有进行升级。理由很简单,因为升级很麻烦,秉着能用就先用着的想法。但是最近gitlab接连发出之前旧版本有安全漏洞,看到的公告是:《GitLab 叕发布安全补丁 12.0.3, 11.11.5 和 11.10.8,请即刻升级》,都出现“叕”字了,说明不得不升级了,毕竟代码是公司的核心资产。

那么说干就干,首先去gitlab官网查看升级文档,看需要升级哪些东西。我这gitlab之前是用源码包安装的,版本是10.8.7,需要升级到11.11.5(11版本的最高版本),最后才能升级到最新的12版本。总结对比了下,需要做如下升级:

软件 10.8.7版本 11.11.5版本
Ruby version 2.44p96 2.5.3p105
Gem version 2.6.14.1 2.7.6
Bundler version 1.16.3 1.17.3
Rake version 12.3.1 12.3.1
Redis version 4.9.104 4.9.104
Git version 2.18.0 2.21.x
sidekiq version 5.0.5 5.0.5
Go version go1.9.6 go1.11.5
gitlab version 10.8.7 11.11.5
Gitlab shell version 7.1.2 9.1.0
node version v8.9.4 v8.10.x
yarn version --- v1.10.x

  

  为了在升级过程中不影响gitlab的正常使用(升级过程中需要停机,升级时长未知,升级过程会不会出问题也未知),所以根据现有的gitlab服务器环境做了镜像和快照,然后根据镜像和快照克隆了一个完全一样的环境;这些升级操作先全在克隆的环境中进行,就算出现问题也不影响旧环境的正常使用,待这边流程跑通了后在旧的gitlab服务器上进行升级。在升级完这些软件,进行升级gitlab的时候,出现问题了。。。。。主要是在更新gitlab源码的时候由于它官网是在国外,更新的时候很慢,然后就一直报超时。还有一个问题是,我看到官网说gitlab从12版本后就不在支持mysql数据库了,这。。。。

  正好最近公司想把gitlab从腾讯云上迁移回内网,而我上次升级的时候就想把源码包安装的gitlab换成rpm包的安装方式,这样以后升级就没那么麻烦,不用升级一大堆软件了,直接yum update就好。那就借这次机会尝试下,思路:现在内网的一台服务器上直接装rpm版的11.11.5,把数据迁移过来后再升级到12版本。(这里有个难点,那就是需要把MySQL的数据迁移到postgresql,这里我百度了下,有mysql数据迁移到postgresql的成功案例,那么就说明这条路应该是行的通的)

1、内网服务器上安装gitlab 11.11.5版本:

[[email protected] ~]#yum install -y curl policycoreutils-python openssh-server[[email protected] ~]#systemctl enable sshd
[[email protected] ~]#systemctl start sshd
[[email protected] ~]#firewall-cmd --permanent --add-service=http
[[email protected] ~]#systemctl reload firewalld
[[email protected] ~]#yum install postfix
[[email protected] ~]#systemctl enable postfix
[[email protected] ~]#systemctl start postfix

[[email protected] ~]#curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

[[email protected] ~]#cd /usr/local/src
[[email protected] src]#wget wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-11.11.5-ce.0.el7.x86_64.rpm

[[email protected] src]#yum -y install gitlab-ce-11.11.5-ce.0.el7.x86_64.rpm[[email protected] src]#ps -ef |grep gitlab  --可以看到gitlab已经启动[[email protected] src]#cat /var/opt/gitlab/gitlab-rails/VERSION   --查看gitlab的版本11.11.5

2、修改配置:

#mkdir -p /data/gitlab/backups#mkdir -p /data/gitlab/git-data/repositories#chown -R git:root /data/gitlab/backups/#chown -R git.root /data/gitlab/git-data/#vim /etc/gitlab/gitlab.rb

a、更改gitlab的访问URL:

ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口

b、更改gitlab的备份路径:

c、更改gitlab的项目默认存放路径:

3、使配置生效及重启:

#gitlab-ctl reconfigure     --这一步需要一点时间

#gitlab-ctl restart   --全部“ok: run”表示重启成功

4、访问:http://192.168.1.204     初始账户:root 密码:5iveL!fe  第一次登入会要求修改密码

5、postgresql配置:

#cd /var/opt/gitlab/postgresql/data
#vim pg_hba.conf
host     all    all    192.168.1.0/24    trust  添加这行,192.168.1.0/24这个段的ip地址不需要密码可以连接

#vim postgresql.conf
listen_addresses = ‘192.168.1.204‘    修改监听地址为本机ip

#gitlab-ctl restart postgresql   重启数据库

#/opt/gitlab/embedded/bin/psql -U gitlab -d gitlabhq_production -h 192.168.1.204   不用输密码可进入psql(9.6.11)Type "help" for helpgitlabhq_production=> alter user gitlab with password ‘gitlab123#@!‘   修改gitlab密码,gitalb创建的数据库超级用户为gitlab-psql,想修改密码自己通过命令修改即可gitlabhq_production=>\q   退出

#vim /var/opt/gitlab/postgresql/data/pg_hba.conf

host     all    all    192.168.1.0/24    md5   修改trust为md5,即连接需要密码#gitalb-ctl restart postgresql#/opt/gitlab/embedded/bin/psql -U gitlab -d gitlabhq_production -h 192.168.1.204Password for user gitlab:            输入gitlab用户的密码回车即可进入数据库

既然修改了数据库gitlab用户的密码,gitlab服务器中数据库配置文件,也需要修改,不然数据库连接不上

#vim /var/opt/gitlab/gitalb-rails/etc/database.yml

#gitlab-ctl restart   修改完数据库配置重启下服务

做完以上配置后,就可以使用Navicat Premium连接postgresql了,用图形界面直观些。

6、数据迁移:

这里按照之前写的一篇gitlab升级(二)文档,把keys,namespaces,users三个表的数据迁移过来就好,其他的暂且就不迁了

步骤:

a、mysql中用mysqldump把这几个表只导出数据,不要表结构,表结构安装gitlab的时候已经有了

#mysqldump -t gitlabhq_production -u gitlab -p keys >keys.sql

#mysqldump -t gitlabhq_production -u gitlab -p users >users.sql

#mysqldump -t gitlabhq_production -u gitlab -p namespaces >namespaces.sql

b、查看了下gitlab 11.11.5的postgresql的表结构和 gitalb 10.8.7的mysql 表结构差不多,无非是新版本有的表多了一些字段,或者多了一些新表,但这都不影响我们导入数据。但是有个要注意的地方是,postgresql里有些字段是用的bool类型,这在mysql里没有这个类型,故数据不能直接导入,需要把mysql里不是bool类型的字段数据改成postgresql所对应的bool型数据,然后在导入。

c、导入完后,我们检查下数据是否正确,也可以拿几个账号测试下登入是否正常,如正常的话则导入就成功了,这里贴下keys表的数据:

7、导入项目,这一步开始和之前写的gitlab升级(二)里的步骤是一样的,这里就不过多阐述了。

8、gitlab 11.11.5 升级到gitalb 12.1.0

#gitlab-rake gitlab:backup:create STRATEGY=copy  --升级前先进行备份

#yum info gitlab-ce  --查看gitlab-ce的版本信息,可以看到最新的版本是12.1.0

#yum -y update gitlab-ce  --升级gitlab

#cat /var/opt/gitlab/gitlab-rails/VERSION   --查看gitlab版本

注:升级完可能数据库的配置被初始化了,需要重新配置下,不然数据库会连不上

9、访问htt://192.168.1.204

原文地址:https://www.cnblogs.com/liangyou666/p/11241455.html

时间: 2024-10-07 06:41:37

gitlab升级迁移---源码包安装转rpm包(三)的相关文章

利用src.rpm包修改源码后重新制作rpm包

1. 下载 .src.rpm包.例:https://repos.fedorapeople.org/repos/openstack/EOL/openstack-grizzly/epel-6/openstack-quantum-2013.1.4-4.el6.src.rpm 2. 使用" rpm -ivh "解压源码包.例:rpm -ivh openstack-quantum-2013.1.4-4.el6.src.rpm  (--root=xxx 指定路径)解压的结果放在 /root/rpm

memcached(源码包)安装,php(rpm包)-memcache的扩展安装

# 我们开始装memcache tar -zxvf  tar -zxvf libevent-1.4.13-stable.tar.gz cd libevent-1.4.13-stable  ./configure --prefix=/usr  make && make install  # 查看 libevent 是否安装完成  ls -al /usr/lib | grep libevent    tar -zxvf memcached-1.4.17.tar.gz  cd memcached

Linux程序包管理之yum仓库、源码编译安装

CentOS:yum,dnf URL:ftp://172.16.0.1/pub yum是C/S架构,是rpm的前端工具,依赖于rpm存在的: 1.本地要有yun程序: 2.本地要有配置文件(配置远程服务器yum仓库或本地服务器yum仓库): 3.要有存在的文件服务器(程序包仓库即yum仓库).(也可以在本地配置服务器yum仓库): yum支持的服务器有两种:一种是ftp服务器,第二种是http服务器: yum工作简述: yum是客户端,也认为是自我独立管理的组件,需要联系远程的仓库,从仓库中下载

Ubuntu下升级git版本(源码编译安装git)

Ubuntu自带的git是1.7的版本的,太旧了,所以想升级下,git官网上没有提供现成的安装包,所以只能源码编译了. linux上源码编译安装Git拢共分两步: 第一步,安装编译git的依赖包 第二步,下载源码,编译安装git 安装git的安装包: 在apt-get的系统上: sudo apt-get install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettex-devel 在yum的系统上: yum

linux程序包管理之源码编译安装

一.linux程序包基础概念 1.1.linux程序开发遵循开源协定:GPL, BSE, Apache等 1.2.源程序常用的开发语言:C, C++, perl, python等 1.3.应用程序的开发.编译和运行 就像面包师直接使用的材料是面粉而非麦种一样,我们大部分应用程序员在开发程序时也并非直接接触硬件层,因为底层硬件太过抽象和"丑陋",如果应用程序开发都从底层开始,无疑工作量巨大.于是,有些系统级程序员在"裸机"上抹上了一层操作系统,用于管理硬件资源,这个系

源码编译安装程序包及httpd源码安装实践

源码编译安装程序包从步骤并不复杂,实际安装过程中最主要的就是准备好编译环境:根据自己的实际需求,选择或设置程序包编译参数:以及程序包安装后的相关配置. 1.  编译环境准备 以CentOS6为例,一般通过yum安装2个包组,编译工具,以及编译程序包依赖的主要的头文件和库文件就都准备好了. # yum groupinstall "Development Tools" # yum groupinstall "Server Platform Development" 另外

centos 6.5源码编译安装subversion 1.8.10

一.简介 CentOS 6.5的yum源可以安装的SVN客户端版本太低了,1.6.11,所以需要升级到1.8.10,而官网有没有找到1.8.10的安装包,只能选择源码编译安装. 二.安装步骤 参考官网:http://svn.apache.org/repos/asf/subversion/trunk/INSTALL 源码下载:http://archive.apache.org/dist/subversion/ 源码编译subversion依赖许多别的工具,比如:apr.apr-util.libto

Python3.6和Django源码编译安装

Python3.6源码编译安装 系统环境:CentOS 7 下载Python源码包: https://www.python.org/downloads/ 编译.安装: 1 2 3 4 5 [[email protected] /]# tar -xzvf /usr/local/src/Python-3.6.2.tgz -C /mydev [[email protected] /]# cd /mydev/Python-3.6.2 [[email protected] Python-3.6.2]# .

yum方式软件管理及进阶源码编译安装

1. yum简介2. yum组成结构3. yum配置使用4. yum命令详解5. yum源变量6. yum仓库创建7.进阶源码编译安装 1. yum简介YUM: Yellowdog Updater Modifed, 是由Duke University团队修改Yellow Dog Linux的Yellow Dog Updater开发而来的,是一个基于RPM包管理器的字符前端软件管理器(依赖于RPM包).能够从指定的服务器自动下载RPM包并且安装,可以处理RPM包的依赖关系,并且一次安装所有依赖的软