在運維工做中,常常會遇到軟件版本升級的問題。在此,發文一篇,旨在讓各位避免和我犯一樣的錯誤。
html
近期,公司研發團隊常常抱怨GITLAB有各類問題。通過線上查看該GITLAB服務版本號爲8.13.5,而官網最新的穩定版爲10.6.4。趕鴨子上架,升級唄!git
升級思路 1.安裝與原主機相同版本的操做系統 => 2.在目標主機安裝8.13.5版本的GITLAB => 3.備份原主機GITLAB數據,並恢復到目標主機 => 4.升級至10.6.4github
在升級過程當中,運行至第四步的時候,直接rpm -Uvh GITLAB-10.6.4版本 ,系統會報Postgresql版本太低的錯誤,以後順着報錯解決數據庫版本問題會陷入一個深坑,此問題折磨了我大半天時間。最後,還好返回官方翻閱了升級手冊,此問題才得以快速解決,僅在此將升級過程與你們分享,若有勘誤,敬請指出。sql
實施環境:數據庫
機器名 | 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 |
項目基本要求:
vim
因從8.13.5至10.6.4跨越兩個大版本,根據官方GUIDE指導,升級時應嚴格按照以下順序:bash
8.13.5 > 8.17.8 >9.5.9>10.6.4服務器
8.17爲8系列最大版本號、9.5爲9版本最大版本號運維
備份系統A的GITLAB數據ide
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完成,是否是比想象的要簡單多了