Navicat for Premium 9.0.2激活(gitlab升级迁移—源码包安装转成rpm包安装(三))

Navicat for Premium 9.0.2激活(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.3p105Gem version2.6.14.12.7.6Bundler version1.16.31.17.3Rake version12.3.112.3.1Redis version4.9.1044.9.104Git version2.18.02.21.xsidekiq version5.0.55.0.5Go versiongo1.9.6go1.11.5gitlab version10.8.711.11.5Gitlab shell version7.1.29.1.0node versionv8.9.4v8.10.xyarn 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的成功案例,那么就说明这条路应该是行的通的)

Navicat for Premium 9.0.2激活(gitlab升级迁移---源码包安装转成rpm包安装(三))

下面这部分是源码包升级时的操作记录:

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 && https://blog.csdn.net/ddyg18536/article/details/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已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口

Navicat for Premium 9.0.2激活(gitlab升级迁移---源码包安装转成rpm包安装(三))

b、更改gitlab的备份路径:

Navicat for Premium 9.0.2激活(gitlab升级迁移---源码包安装转成rpm包安装(三))

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

Navicat for Premium 9.0.2激活(gitlab升级迁移---源码包安装转成rpm包安装(三))

3、使配置生效及重启:

#gitlab-ctl reconfigure --这一步需要一点时间 #gitlab-ctl restart --全部“ok: run”表示重启成功

Navicat for Premium 9.0.2激活(gitlab升级迁移---源码包安装转成rpm包安装(三))

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

Navicat for Premium 9.0.2激活(gitlab升级迁移---源码包安装转成rpm包安装(三))

 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了,用图形界面直观些。

Navicat for Premium 9.0.2激活(gitlab升级迁移---源码包安装转成rpm包安装(三))

Navicat for Premium 9.0.2激活(gitlab升级迁移---源码包安装转成rpm包安装(三))

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表的数据:

Navicat for Premium 9.0.2激活(gitlab升级迁移---源码包安装转成rpm包安装(三))

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版本

Navicat for Premium 9.0.2激活(gitlab升级迁移---源码包安装转成rpm包安装(三))

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

 9、访问htt://192.168.1.204

Navicat for Premium 9.0.2激活Navicat for Premium 9.0.2激活(gitlab升级迁移---源码包安装转成rpm包安装(三))

 

今天的文章
Navicat for Premium 9.0.2激活(gitlab升级迁移—源码包安装转成rpm包安装(三))分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/116409.html

(0)
编程小号编程小号
上一篇 2024-07-19
下一篇 2024-07-19

相关推荐