搭建背景
由於當前公司性質的原因,公司一直在使用SVN的方式進行項目版本控制,但是隨着公司項目的日益擴大,進行版本管理也越來越困難,因此公司項目組決定開始使用GIT來進行項目版本控制。因爲之前曾就職於一家基金公司,使用過gitlab對項目進行管理,所以有幸主導gitlab的搭建,以方便更好的進行項目的維護。以下是整個搭建過程以及遇到的坑,特此撰文以記之:
提示:本次安裝基於CentOS7,Gitlab-10.8.2
安裝之前的準備
由於gitlab的安裝包下載比較慢,使用git的克隆或wget下載漢化包非常慢,因此建議本地先下載好安裝包
安裝必要軟件
安裝Git
監測是否安裝過git(若出現版本號,則代表已經安裝了git,可跳過git安裝,若出現 git: command not found. 則沒有安裝過)
git --version
由於特殊原因,請先確認linux版本
- cetos5以及以下版本中的yum都沒有git,無法使用yum安裝
- cetos6可以使用yum安裝git,但是安裝的git是1.7.1版本的(如果後期還需使用github,則請通過git源碼編譯的方式安裝,因爲GitHub需要的git版本最低不低於1.7.2)
- cetos7以及以上版本的,推薦使用yum安裝,方便
使用yum方式安裝git
yum -y install git
安裝unzip,Patch(如果不需要漢化則跳過)
yum -y install zip // 用來壓縮文件爲zip包
yum -y install unzip // 用來解壓zip包
yum -y install patch // 用於修補文件,漢化時用
安裝gitlab
安裝必須軟件
如果後期需要gitlab的郵箱功能,請在安裝Gitlab前要先安裝postfix,即使不需要也建議執行以下操作(python依賴包爲必須)
(以下操作主要安裝了ssh服務器[使git能夠以ssh方式連接gitlab],postfix,cronie,python依賴包)
yum install curl openssh-server postfix cronie
yum -y install policycoreutils-python // 必須安裝該依賴包
下載安裝rpm包(該步可通過網盤直接下載然後傳到linux上)
wget --content-disposition https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm/download.rpm
rpm -ivh gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm
如果爲centOS6請將上述https地址改爲
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm/download.rpm
安裝完成會出現gitlab的logo,如下圖所示
注:安裝完成後會出現以上文本,特別注意logo下的提示,即接下來我們只需要按照提示執行即可
GitLab was unable to detect a valid hostname for your instance
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command.
sudo gitlab-ctl reconfigure
GitLab需要爲你的實例指定一個有效的hostname,請在/etc/gitlab/gitlab.rb的配置文件中通過設置
external_url 屬性的值爲你的GitLab設置URL,然後,你可以通過運行以下命令來開啓你的GitLab實例
sudo gitlab-ctl reconfigure
- 修改/etc/gitlab/gitlab.rb文件
vi /etc/gitlab/gitlab.rb
- 找到external_url屬性(在非編輯狀態下可通過 `/ external_url` 的方式直接定位到此屬性的位置,然後使用 i 切換爲編輯模式,然後修改爲自己本機的IP,如果external_url屬性前有 # 請先將其去除,也可以複製此行後再做修改)
external_url 'http://192.168.2.222'
- 激活配置並啓動GitLab實例(此步首次執行時間較長,在5分鐘左右,後續如果變更配置重啓,將會變快到1分鐘半左右,執行時間可能根據不同機器的配置而有所偏差)
gitlab-ctl reconfigure
-
其他相關命令(上述步驟已經將gitlab實例啓動了,以下命令爲gitlab的補充命令,無需執行,可直接跳過)
gitlab-ctl status // gitlab各個組件的運行狀態
gitlab-ctl stop // 關閉gitlab實例
gitlab-ctl start // 開啓gitlab實例
gitlab-ctl restart // 重啓gitlab實例
gitlab-ctl reconfigure // 更新gitlab配置並重啓
gitlab-ctl tail // gitlab運行過程中的實時log
Web頁面進行root用戶登錄
可通過執行以下命令查看當前的GitLab實例的版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
- gitlab 8.8版本之前默認賬號 root 密碼 5iveL!fe
- gitlab 8.9之後登錄web界面會要求更改密碼,注意密碼最少8位!!(此次安裝的是10.8.2)
如忘記密碼可在gitlab數據庫修改密碼文檔鏈接:https://blog.csdn.net/qq_40025218/article/details/81363126
此處如果是502,則請先多刷新幾次,如果一直是502,則請通過 gitlab-ctl tail 命令查看錯誤日誌或進行卸載重裝
注:如果安裝GitLab出現ruby_block[supervise_redis_sleep] action run
一般出現在卸載gitlab然後再次安裝執行sudo gitlab-ctl reconfigure的時候往往會出現:ruby_block[supervise_redis_sleep] action run,會一直卡無法往下進行!
解決方案:
- 按住CTRL+C強制結束;
- 運行:sudo systemctl restart gitlab-runsvdir;
- 再次執行:sudo gitlab-ctl reconfigure
注:有可能因爲某些誤操作導致頁面出現502,而不是登錄頁面,則需要卸載,卸載參考 卸載gitlab 章節
漢化gitlab
獲取gitlab漢化包
可以使用git clone的方式或通過wget下載或通過本地下載再上傳到服務器
git clone https://gitlab.com/xhang/gitlab.git
wget https://gitlab.com/xhang/gitlab/-/archive/10-8-stable-zh/10-8-stable-zh.tar.gz
對比文件並漢化
如果是wget下載的壓縮包或上傳的壓縮包,請提前解壓好,然後使用git生成.diff文件
cd gitlab // 先進入gitlab目錄
git diff v10.8.2 v10.8.2-zh > ../v10.8.2-zh.diff
將剛纔的diff文件做爲補丁導入到gitlab中(此步如果卡住或詢問是否覆蓋一路回車跳過即可!)
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < ../v10.8.2-zh.diff
啓動並重新配置
gitlab-ctl start
gitlab-ctl reconfigure // 若訪問web出現502,先多刷新幾次,如果不行,可重新執行此命令再訪問
卸載gitlab
- 停止gitlab
gitlab-ctl stop
- 卸載gitlab
rpm -e gitlab-ce
- 查看gitlab進程,如果有一大堆則證明還存在gitlab進程,如果沒有則跳過殺進程的步驟
ps aux | grep gitlab
- 殺進程
kill -9 9763 // 9763爲gitlab的進程號(出現很多.的那個進程)
如果執行殺死進程後,使用 ps aux | grep gitlab 還有進程請用以下命令殺死所有進程
ps -ef | grep gitlab | xargs kill -s 9
-
刪除所有包含gitlab文件
find / -name gitlab | xargs rm -rf