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 version2.4.4p962.5.3p105
Gem version2.6.14.12.7.6
Bundler version1.16.31.17.3
Rake version12.3.112.3.1
Redis version4.9.1044.9.104
Git version2.18.02.21.x
sidekiq version5.0.55.0.5
Go versiongo1.9.6go1.11.5
gitlab version10.8.711.11.5
Gitlab shell version7.1.29.1.0
node versionv8.9.4v8.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、停止服务:
service gitlab stop

2、升级ruby:
#mkdir /tmp/ruby && cd /tmp/ruby
#curl --remote-name --progress https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.gz
#tar xvf ruby-2.5.3.tar.gz && cd ruby-2.5.3
#./configure --prefix=/usr/local/ruby ----disable-install-rdoc && make && make install

3、升级bundler:
#gem install bundler --no-document --version '< 2'

4、检测gitlab环境基础:
$bundle exec rake gitlab:env:info RAILS_ENV=production

注:此时会提示rake-12.3.1没有安装,按报错信息进行安装,bundle install(耗时会比较久)
此步安装rbnacl-libsodium 1.0.11会报错 解决办法:https://gitlab.com/Fenlly/gitlab-ce/commit/2af2140ceeb2e8dff7c15a23195f5050a11a6ab4
可能会报:
Depending on your version of ruby, you may need to install ruby rdoc/ri data:
<= 1.8.6 : unsupported
 = 1.8.7 : gem install rdoc-data; rdoc-data --install
 = 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!

解决办法:
#gem install rdoc-data

5、升级go:
yum -y update golang

6、升级node:
#npm install -g n
#n stable
#node -v --查看node版本

7、安装yarn:
#wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
#yum -y install yarn
#yarn -v

8、升级git:
#cd /usr/local/src
#curl --remote-name --location --progress https://www.kernel.org/pub/software/scm/git/git-2.21.0.tar.gz
#tar xvf git-2.21.0.tar.gz -C /tmp/git
#cd /tmp/git/git-2.21.0 && ./configure --prefix=/usr/local/git
#make && make install
#git --version  --查看升级后的git版本


9、更新gitlab远程分支:
#su - git
$git fetch --all --prune  --这一步会很慢,可以给服务器挂上代理在尝试(挂代理的方法可看我的另一篇博客:https://www.cnblogs.com/liangyou666/p/11231743.html)

下面则是转为rpm包安装的操作记录:

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

[root@dev ~]#yum install -y curl policycoreutils-python openssh-server
[root@dev ~]#systemctl enable sshd [root@dev ~]#systemctl start sshd [root@dev ~]#firewall
-cmd --permanent --add-service=http [root@dev ~]#systemctl reload firewalld [root@dev ~]#yum install postfix [root@dev ~]#systemctl enable postfix [root@dev ~]#systemctl start postfix [root@dev ~]#curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash [root@dev ~]#cd /usr/local/src [root@dev src]#wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-11.11.5-ce.0.el7.x86_64.rpm
--国内清华大学源站下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ [root@dev src]#yum -y install gitlab-ce-11.11.5-ce.0.el7.x86_64.rpm
[root@dev src]#ps -ef |grep gitlab --可以看到gitlab已经启动
[root@dev 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 help
gitlabhq_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.204
Password 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  --升级前先进行备份

#gitlab-ctl stop unicorn

#gitlab-ctl stop sidekiq

#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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值