記一次Gitlab的升級過程

公司的gitlab是一年多前安裝的镜廉,還是比較老的7.6.2版本签餐,各種問題導(dǎo)致迫切需要升級到較新的版本寓涨。為了保證平時的正常使用盯串,只能在假期進(jìn)行升級氯檐。所以利用端午節(jié)假期搞了2天,折騰了幾次才搞明白体捏。不過升級過程中的辛苦還是值得的冠摄,不僅新的版本在各種功能、UI上有優(yōu)化几缭,而且我對gitlab也更加熟悉了河泳。

根據(jù)gitlab官網(wǎng),升級采用Omnibus的自動安裝方式年栓。由于是升級拆挥,只要更新yum的庫并下載最新包即可。

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce

這種更新方式相當(dāng)于對源碼做了一層包裝,可以通過更改gitlab.rb文件更新所有的配置纸兔,而不是直接去修改gitlab.yml, 數(shù)據(jù)庫的config.yml等文件惰瓜。如果是通過源碼編譯安裝/更新,相信會更加復(fù)雜汉矿。

安裝的過程比較順利崎坊,但肯定不是一下子搞定的,下面一步步的記錄錯誤的原因和解決方案洲拇,希望對別人有幫助奈揍。

PostgreSql的庫結(jié)構(gòu)問題
自動安裝提示完成,但數(shù)據(jù)庫不可用赋续,用status查看是處于down狀態(tài)男翰,看了日志(/var/log/gitlab/postgresql/current),如下報錯

The data directory was initialized by PostgreSQL version 9.2.18, which is not compatible with this version 9.6.2.

大意是新版數(shù)據(jù)庫結(jié)構(gòu)不兼容老的蚕捉。這個問題解決還算順利奏篙,網(wǎng)上不少資料,主要參考的是這篇
http://blog.10ninox.com/2015/01/psql-database-incompatible/
處理后不再顯示該錯誤迫淹,而出現(xiàn)以下的錯誤秘通。

PostgreSql的IPv6問題
還是同樣的日志,顯示如下錯誤

Address family not supported by protocol

一般這種都是IPv6導(dǎo)致敛熬,查了些資料肺稀,解決辦法是在/var/opt/gitlab/postgresql/data中修改postgresql.conf文件

將listen_addresses改為127.0.0.1

完全調(diào)試完成后,發(fā)現(xiàn)該值被改為了空字符串应民,說明也沒問題话原。

PostgreSql的Migrate問題
解決上述問題后,需要執(zhí)行數(shù)據(jù)庫的migrate命令诲锹,如下

gitlab-rake db:migrate

這時會出現(xiàn)一個pg_trgm問題繁仁,大意是沒有創(chuàng)建extension記錄。參考這里官方的文檔
https://docs.gitlab.com/ce/install/installation.html

不過注意創(chuàng)建extends時归园,數(shù)據(jù)庫不是template1黄虱,而是gitlabhq_production
重新整理這個步驟如下

step 1: sudo -u gitlab-psql psql -d template1 -c "CREATE USER git CREATEDB;"
step 2: sudo -u gitlab-psql psql -d template1 -c "CREATE DATABASE gitlabhq_production OWNER git;"(可能不需要)
step 3: sudo -u gitlab-psql psql -d gitlabhq_production -c "CREATE EXTENSION IF NOT EXISTS pg_trgm;"

之后再次運(yùn)行migrate腳本,問題解決庸诱。

unicorn的啟動權(quán)限問題
unicorn線程是用git用戶啟動的捻浦,必須遞歸的給

/opt/gitlab/embedded/service/gitlab-rails/

目錄的訪問權(quán)限,否則啟動會失敗桥爽,或者界面出不來(具體現(xiàn)象我記不清了)朱灿。

gitlab-shell的check問題
在做系統(tǒng)檢查(gitlab-rake gitlab:check)時,會出現(xiàn)一個找不到.gitlab_shell_secret的問題钠四,貌似不影響啟動和使用盗扒,解決也不叫簡單,調(diào)用以下命令

ln -s /var/opt/gitlab/gitlab-shell/gitlab_shell_secret ../gitlab-rails/.gitlab_shell_secret

增加軟連接即可。

reconfigure不生效問題
這是這次升級最大的坑侣灶,更新gitlab.rb文件后习霹,根據(jù)各種文檔描述都是要執(zhí)行reconfigure命令,我也執(zhí)行了很多次炫隶。但是就是感覺各種配置沒有改淋叶,命令行運(yùn)行也不報錯。偶然發(fā)現(xiàn)這個命令是有日志的伪阶,目錄是

/var/log/gitlab/reconfigure

查看日志才發(fā)現(xiàn)所有的嘗試都沒有執(zhí)行煞檩,又是一個地址族不支持。查了資料讓改源代碼的localhost或者看/etc/hosts的配置栅贴,打開后者一看斟湃,乖乖,居然把ipv4的localhost注釋掉了檐薯,只留了ipv6的凝赛,打開注釋,一切正常坛缕。

至此基礎(chǔ)配置完成墓猎,我們需要修改git庫位置,能夠reconfigure就一切順利了赚楚,所有功能基本恢復(fù)毙沾。

總結(jié)

這次升級時間緊,原庫升級幾乎沒給自己留后路宠页,在問題的解決中發(fā)現(xiàn)gitlab本身的管理還是非常完善的左胞,特別是這種Omnibus的自動安裝方式。發(fā)現(xiàn)的這些錯誤網(wǎng)上基本都有解決方案举户,沒有的一般也要從自己的環(huán)境上找原因烤宙。

gitlab比較重要的目錄/文件

主配置文件:/etc/gitlab/gitlab.rb
程序安裝目錄:/opt/gitlab
程序配置和運(yùn)行目錄:/var/opt/gitlab
程序日志目錄:/var/log/gitlab

gitlab重要的命令

升級數(shù)據(jù)庫:gitlab-rake db:migrate
顯示配置環(huán)境:gitlab-rake gitlab:env:info
檢查gitlab運(yùn)行環(huán)境:gitlab-rake gitlab:check
gitlab安裝(慎用,會清數(shù)據(jù)庫):gitlab-rake gitlab:setup
gitlab啟動/停止/重啟:gitlab-ctl start/stop/restart

新的ui還是不錯的俭嘁,管理頁面將信息都放到了上面躺枕,如下圖所示:

新的UI

有些問題可能我也沒有碰到,可以一塊研究兄淫,有問題給我留言哈屯远!

【補(bǔ)充:2018-1-16】訪問出現(xiàn)forbidden的現(xiàn)象蔓姚,換用4G網(wǎng)絡(luò)問題解決捕虽。參考以下文章,可以解決問題:
http://www.cnblogs.com/jianxuanbing/p/7661306.html

【補(bǔ)充:2018-02-16】9.2.2升級到10.4.3

  1. 使用本文開頭的命令用yum升級坡脐;中途升級數(shù)據(jù)庫可能有問題泄私,提示里又一個skip的命令,可以執(zhí)行,然后升級安裝包成功晌端;
  2. 要使用gitlab-ctl reconfigure命令做一次重新更新捅暴。之前用status看,有幾個命令沒有服務(wù)沒有起來咧纠,unicorn還有目錄權(quán)限的問題(這里chmod了一下蓬痒,估計要是先做reconfigure就不需要了)
  3. restart服務(wù)后,所有服務(wù)都起來了,界面也變成了新的,這次更新比較順利囊嘉,開心拴疤!


    GitLab 10.4.3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市醇坝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖惦蚊,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異讯嫂,居然都是意外死亡蹦锋,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門欧芽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晕粪,“玉大人,你說我怎么就攤上這事渐裸∥紫妫” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵昏鹃,是天一觀的道長尚氛。 經(jīng)常有香客問我,道長洞渤,這世上最難降的妖魔是什么阅嘶? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮载迄,結(jié)果婚禮上讯柔,老公的妹妹穿的比我還像新娘。我一直安慰自己护昧,他們只是感情好魂迄,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惋耙,像睡著了一般捣炬。 火紅的嫁衣襯著肌膚如雪熊昌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天湿酸,我揣著相機(jī)與錄音婿屹,去河邊找鬼。 笑死推溃,一個胖子當(dāng)著我的面吹牛昂利,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播铁坎,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼页眯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了厢呵?” 一聲冷哼從身側(cè)響起窝撵,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎襟铭,沒想到半個月后碌奉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寒砖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年赐劣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哩都。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡魁兼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出漠嵌,到底是詐尸還是另有隱情咐汞,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布儒鹿,位于F島的核電站化撕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏约炎。R本人自食惡果不足惜植阴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望圾浅。 院中可真熱鬧掠手,春花似錦、人聲如沸狸捕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽府寒。三九已至魁衙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間株搔,已是汗流浹背剖淀。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留纤房,地道東北人纵隔。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像炮姨,于是被迫代替她去往敵國和親捌刮。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容