Gitlab簡易安裝

Gitlab是一款非常好用且開源免費的git管理平臺,非常適合創業公司用於代碼管理,筆者在安裝配置過程中遇到一些問題,及積累的一些經驗特此記錄,以備下次使用。

Gitlab官網:https://gitlab.com/

官方安裝文檔:https://about.gitlab.com/downloads/#centos7

國內用戶建議安裝文檔:https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/

本人使用國內文檔方案:

    1.新建/etc/yum.repos.d/gitlab-ce.repo文件

    2.添加內容:

         [gitlab-ce]

         name=Gitlab CE Repository

         baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/

         gpgcheck=0

         enabled=1

    3.運行yum makecache更新加載yum源

   4.運行yum install gitlab-ce.x86_64完成安裝Gitlab

以上所述均爲yum安裝方案,本人不建議使用rpm安裝,這樣在Gitlab的升級方面非常吃力(ps:yum升級簡單粗暴),重要的是Gitlab不支持跨版本恢復數據,這種情況下yum可以很好的完成版本一致並無損遷移(無數據遷移需求自動忽略)。

安裝完成後可先編輯/etc/gitlab/gitlab.rb文件更改默認域名及郵箱配置,如:(external_url 'http://git.temp.com')等.....

創建自己的項目後會生成一個項目的git及http地址,爲了保證此地址有效,此時應設置cd /opt/gitlab/embedded/service/gitlab-rails/config文件內的host選項(初始值爲服務器名稱),使其爲域名或您的ip地址。

覺得配置的差不多了,可以運行 gitlab-ctl reconfigure 進行初始化(Gitlab默認佔用80,8060端口),若在使用Gitlab前已經有服務使用過此端口,特別是已經有自己的nginx佔用80端口的,可在/var/opt/gitlab/nginx/conf目錄下更改gitlab-http.conf文件更改nginx配置(nginx配置不熟悉的自行腦補),8060端口爲此目錄下nginx-status.conf文件,不建議使用自己的nginx完全替代Gitlab自帶nginx,這樣可能會有其他一些問題出現,筆者就曾出現502錯誤,最終將原有nginx配置複製一份放置於Gitlab的nginx下導入使用。另外筆者在另一個Centos系統下運行gitlab-ctl reconfigure遇到另一個奇葩的問題,有人說是源的問題,爲此筆者特地翻牆下了官方的鏡像安裝,但依然出現同樣的問題,好的是有臨時解決方案且再執行gitlab-ctl reconfigure未再出現。此問題是:運行時卡死在ruby_block[supervise_redis_sleep] action run,筆者的解決方案是再開一個ssh窗口執行GitLab-ctl start,這樣會發現之前的窗口繼續往下走了。後面就正常了。

至此Gitlab安裝配置完成。

運行一段時間後準備在此服務器上加其他服務,發現以前的服務器(2核CPU/2G運行內存/20G硬盤)隱隱有些不夠用,且由於其他資費等問題準備切換服務器,這個時候就涉及到Gitlab的無損遷移問題了,好在Gitlab本身是帶這個功能的(筆者使用的是9.1.3版本及8.*版本)。

先上官方的詳細文檔鏈接:https://docs.gitlab.com

運行gitlab-rake gitlab:backup:create即可完成Gitlab的完整備份,此時會生成一個*.gitlab_backup.tar文件於/var/opt/gitlab/backups文件夾下,將此文件發送至遷移的服務器同目錄下(要先在遷移的服務器安裝同一版本,同一版本,同一版本Gitlab),發送完,在遷移服務器運行gitlab-rake gitlab:backup:restore(即可完成數據無損遷移,運行前保證遷移服務器backups目錄下只存在一個備份文檔,否則需要指定版本,如:gitlab-rake gitlab:backup:restore BACKUP=1393513186),運行完恢復操作,可運行gitlab-rake gitlab:check命令對整個Gitlab進行檢測,若檢測出問題,一般輸出的log會打印相應的解決方案。當初步檢測兩個服務器的數據(用戶,倉庫,權限)等一致時,只需更改以前的服務器的域名解析改爲當前服務器的ip即可完成無縫切換(Gitlab用戶無需做任何操作)。

Gitlab升級:yum update gitlab-ce.x86_64 

Gitlab操作相關 

    gitlab-ctl restart # 重啓gitlab服務 

    gitlab-ctl start # 啓動gitlab服務 

    gitlab-ctl stop # 停止gitlab服務

遇到的問題:

    某次升級後遇到git登陸後報500錯誤。各種百度後最終運行gitlab-rake db:migrate:status 發現很多數據庫狀態未down,此時再運行gitlab-rake db:migrate重建數據庫,再運行gitlab-ctl restart即可解決此問題。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章