在运维工作中,经常会遇到软件版本升级的问题。在此,发文一篇,旨在让各位避免和我犯同样的错误。
近期,公司研发团队经常抱怨GITLAB有各种问题。经过线上查看该GITLAB服务版本号为8.13.5,而官网最新的稳定版为10.6.4。赶鸭子上架,升级呗!
升级思路 1.安装与原主机相同版本的操作系统 => 2.在目标主机安装8.13.5版本的GITLAB => 3.备份原主机GITLAB数据,并恢复到目标主机 => 4.升级至10.6.4
在升级过程中,运行至第四步的时候,直接rpm -Uvh GITLAB-10.6.4版本 ,系统会报Postgresql版本过低的错误,之后顺着报错解决数据库版本问题会陷入一个深坑,此问题折磨了我大半天时间。最后,还好返回官方翻阅了升级手册,此问题才得以快速解决,仅在此将升级过程与大家分享,如有勘误,敬请指出。
实施环境:
机器名 IP/MASK 磁盘空间 操作系统版本 gitlab版本原系统A gitlabserver 192.168.214.103/24 100G CentOS release 6.6 (Final) 8.13.5
目标系统B gitlabserver 192.168.6.103/24 100G CentOS release 6.6 (Final) 10.6.4
项目基本要求:
因从8.13.5至10.6.4跨越两个大版本,根据官方GUIDE指导,升级时应严格按照如下顺序:
8.13.5 > 8.17.8 >9.5.9>10.6.4
8.17为8系列最大版本号、9.5为9版本最大版本号
备份系统A的GITLAB数据
vi /etc/gitlab/gitlab.rb
#查看备份文件默认目录
#gitlab_rails['backup_path'] = '/mnt/backups'
#'/mnt/backups'为备份目录
gitlab-rake gitlab:backup:create
#在备份目录下生产XXXXXXX_gitlab_backup.tar格式的备份文件
系统B安装GIT服务
yum remove git
#删除原系统旧版GIT
yum groupinstall Development Tools
#下载编译工具
yum -y install zlib-devel perl-ExtUtils-MakeMaker asciidoc xmlto openssl-devel
#下载依赖包
wget https://github.com/git/git/archive/v2.17.0.tar.gz
#下载Git最新版本的源代码,登录https://github.com/git/git/releases查看git的最新版。不要下载带有-rc的,因为它代表了一个候选发布版本
tar zxvf v2.17.0.tar.gz
cd git-2.17.0
mkdir /usr/local/git
mkdir /usr/local/libiconv
#解压
make configure
./configure --prefix=/usr/local/git -with-iconv=/usr/local/libiconv
make all doc
make install install-doc install-html
#编译安装
vim /etc/profile
#最后一行添加以下信息(#不要添加)
#export PATH=/usr/local/git/bin:$PATH
git -version
#显示版本号,查看是否安装成功
系统B安装GitLab 8.13.5
#下载GITLAB
rpm –ivh gitlab-ce-8.13.5-ce.0.el6.x86_64.rpm
#rpm 安装
vim /etc/gitlab/gitlab.rb
#配置gitlab配置文件指定服务器ip和自定义端口
#external_url 'http://192.168.6.103:9999'
gitlab-ctl reconfigure
#软件重新配置
gitlab-ctl restart
#软件重新启动
备份数据恢复
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
#停止相关数据连接服务
gitlab-rake gitlab:backup:restore BACKUP=1393513186
#恢复备份文件(需要先系统A中导入备份文件至系统B的GITLAB 备份目录,1393513186是备份文件名的数字部分)
gitlab-ctl start
#启动Gitlab
GitLab版本升级
首先,下载RPM包
gitlab-ce-8.17.8-ce.0.el6.x86_64.rpm
gitlab-ce-9.5.9-ce.0.el6.x86_64.rpm
gitlab-ce-10.6.4-ce.0.el6.x86_64.rpm
rpm –Uvh gitlab-ce-8.17.8-ce.0.el6.x86_64.rpm
rpm –Uvh gitlab-ce-9.5.9-ce.0.el6.x86_64.rpm
rpm –Uvh gitlab-ce-10.6.4-ce.0.el6.x86_64.rpm
#按顺序安装RPM包,安装过程中注意查看是否有报错
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
10.6.4
#成功升级至10.6.4版本
登入下系统查看数据是否正常,OK完成,是不是比想象的要简单多了
更多GitLab相关教程见以下内容:
CentOS 7.2安装GitLab CE 图文详解
CentOS 7下GitLab 9.1.0 安装及汉化
Ubuntu 14.04搭建GitLab服务器