Gitlab是一款非常好用且開(kāi)源免費(fèi)的git管理平臺(tái)华匾,非常適合創(chuàng)業(yè)公司用于代碼管理式廷,筆者在安裝配置過(guò)程中遇到一些問(wèn)題懈糯,及積累的一些經(jīng)驗(yàn)特此記錄,以備下次使用季惩。
Gitlab官網(wǎng):https://gitlab.com/
官方安裝文檔:https://about.gitlab.com/downloads/#centos7
國(guó)內(nèi)用戶建議安裝文檔:https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/
本人使用國(guó)內(nèi)文檔方案:
? ? 1.新建/etc/yum.repos.d/gitlab-ce.repo文件
? ? 2.添加內(nèi)容:
? ? ? ? ?[gitlab-ce]
? ? ? ? ?name=Gitlab CE Repository
? ? ? ? ?baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
? ? ? ? ?gpgcheck=0
? ? ? ? ?enabled=1
? ? 3.運(yùn)行yum makecache更新加載yum源
? ?4.運(yùn)行yum install gitlab-ce.x86_64完成安裝Gitlab
以上所述均為yum安裝方案,本人不建議使用rpm安裝摔桦,這樣在Gitlab的升級(jí)方面非常吃力(ps:yum升級(jí)簡(jiǎn)單粗暴)愕秫,重要的是Gitlab不支持跨版本恢復(fù)數(shù)據(jù),這種情況下yum可以很好的完成版本一致并無(wú)損遷移(無(wú)數(shù)據(jù)遷移需求自動(dòng)忽略)挟炬。
安裝完成后可先編輯/etc/gitlab/gitlab.rb文件更改默認(rèn)域名及郵箱配置鸥滨,如:(external_url 'http://git.temp.com')等.....
創(chuàng)建自己的項(xiàng)目后會(huì)生成一個(gè)項(xiàng)目的git及http地址,為了保證此地址有效谤祖,此時(shí)應(yīng)設(shè)置cd /opt/gitlab/embedded/service/gitlab-rails/config文件內(nèi)的host選項(xiàng)(初始值為服務(wù)器名稱(chēng))婿滓,使其為域名或您的ip地址。
覺(jué)得配置的差不多了粥喜,可以運(yùn)行 gitlab-ctl reconfigure 進(jìn)行初始化(Gitlab默認(rèn)占用80凸主,8060端口),若在使用Gitlab前已經(jīng)有服務(wù)使用過(guò)此端口额湘,特別是已經(jīng)有自己的nginx占用80端口的卿吐,可在/var/opt/gitlab/nginx/conf目錄下更改gitlab-http.conf文件更改nginx配置(nginx配置不熟悉的自行腦補(bǔ))旁舰,8060端口為此目錄下nginx-status.conf文件,不建議使用自己的nginx完全替代Gitlab自帶nginx嗡官,這樣可能會(huì)有其他一些問(wèn)題出現(xiàn)箭窜,筆者就曾出現(xiàn)502錯(cuò)誤,最終將原有nginx配置復(fù)制一份放置于Gitlab的nginx下導(dǎo)入使用衍腥。另外筆者在另一個(gè)Centos系統(tǒng)下運(yùn)行g(shù)itlab-ctl reconfigure遇到另一個(gè)奇葩的問(wèn)題绽快,有人說(shuō)是源的問(wèn)題,為此筆者特地翻墻下了官方的鏡像安裝紧阔,但依然出現(xiàn)同樣的問(wèn)題坊罢,好的是有臨時(shí)解決方案且再執(zhí)行g(shù)itlab-ctl reconfigure未再出現(xiàn)。此問(wèn)題是:運(yùn)行時(shí)卡死在ruby_block[supervise_redis_sleep] action run擅耽,筆者的解決方案是再開(kāi)一個(gè)ssh窗口執(zhí)行GitLab-ctl start活孩,這樣會(huì)發(fā)現(xiàn)之前的窗口繼續(xù)往下走了。后面就正常了乖仇。
至此Gitlab安裝配置完成憾儒。
運(yùn)行一段時(shí)間后準(zhǔn)備在此服務(wù)器上加其他服務(wù),發(fā)現(xiàn)以前的服務(wù)器(2核CPU/2G運(yùn)行內(nèi)存/20G硬盤(pán))隱隱有些不夠用乃沙,且由于其他資費(fèi)等問(wèn)題準(zhǔn)備切換服務(wù)器起趾,這個(gè)時(shí)候就涉及到Gitlab的無(wú)損遷移問(wèn)題了,好在Gitlab本身是帶這個(gè)功能的(筆者使用的是9.1.3版本及8.*版本)警儒。
先上官方的詳細(xì)文檔鏈接:https://docs.gitlab.com
運(yùn)行g(shù)itlab-rake gitlab:backup:create即可完成Gitlab的完整備份训裆,此時(shí)會(huì)生成一個(gè)*.gitlab_backup.tar文件于/var/opt/gitlab/backups文件夾下,將此文件發(fā)送至遷移的服務(wù)器同目錄下(要先在遷移的服務(wù)器安裝同一版本蜀铲,同一版本边琉,同一版本Gitlab),發(fā)送完记劝,在遷移服務(wù)器運(yùn)行g(shù)itlab-rake gitlab:backup:restore(即可完成數(shù)據(jù)無(wú)損遷移变姨,運(yùn)行前保證遷移服務(wù)器backups目錄下只存在一個(gè)備份文檔,否則需要指定版本厌丑,如:gitlab-rake gitlab:backup:restore BACKUP=1393513186)定欧,運(yùn)行完恢復(fù)操作,可運(yùn)行g(shù)itlab-rake gitlab:check命令對(duì)整個(gè)Gitlab進(jìn)行檢測(cè)怒竿,若檢測(cè)出問(wèn)題砍鸠,一般輸出的log會(huì)打印相應(yīng)的解決方案。當(dāng)初步檢測(cè)兩個(gè)服務(wù)器的數(shù)據(jù)(用戶愧口,倉(cāng)庫(kù)睦番,權(quán)限)等一致時(shí)类茂,只需更改以前的服務(wù)器的域名解析改為當(dāng)前服務(wù)器的ip即可完成無(wú)縫切換(Gitlab用戶無(wú)需做任何操作)耍属。
Gitlab升級(jí):yum update gitlab-ce.x86_64?
Gitlab操作相關(guān)?
????gitlab-ctl restart # 重啟gitlab服務(wù)?
????gitlab-ctl start # 啟動(dòng)gitlab服務(wù)?
????gitlab-ctl stop # 停止gitlab服務(wù)
遇到的問(wèn)題:
? ? 某次升級(jí)后遇到git登陸后報(bào)500錯(cuò)誤托嚣。各種百度后最終運(yùn)行g(shù)itlab-rake db:migrate:status 發(fā)現(xiàn)很多數(shù)據(jù)庫(kù)狀態(tài)未down,此時(shí)再運(yùn)行g(shù)itlab-rake db:migrate重建數(shù)據(jù)庫(kù)厚骗,再運(yùn)行g(shù)itlab-ctl restart即可解決此問(wèn)題示启。