Gitlab提供了非常完整的Git托管服務。那現在我就根據我自己的經驗,圖文并茂地詳細介紹一下如何搭建和配置Gitlab,以及在過程中可能會遇到的坑。
我們選擇困難模式來講解整個過程:
假如你使用的是一臺Win10電腦,并且從沒接觸過虛擬機、Linux、Gitlab,那就可以按照下面的步驟一步步來配置。如果你熟悉其中部分過程或者擁有其中部分配置,可以選擇性地跳過它們。
簡單來說分為以下幾個步驟:
- 開啟虛擬機
- 安裝ubuntu
- 安裝Gitlab
- 配置Gitlab
開啟虛擬機
在win8和win10上,我們建議使用系統自帶的Hyper-V來安裝鏡像文件。
win10平臺上,只有win10專業版才有Hyper-V功能,假如你的PC系統是win10家庭版,請升級到win10專業版,否則無法使用Hyper-V創建虛擬機。
啟用Hyper-V組件
Hyper是默認關閉的,所以我們需要手動開啟。
- 打開控制面板
- 程序和功能
- 啟用或關閉Windows功能
- 找到Hyper-V,并勾選,確認
- 系統會自動安裝Hyper-V,然后系統會要求重啟使設置生效。
打開Hyper,會重啟
在查找Hyper-V的時候,如果發現Hyhper-V為灰色,需要在BIOS中將支持虛擬機的選項Enable。
使用Hyper-V開啟Ubuntu虛擬機
首先去ubuntu的官網下載操作系統:http://www.ubuntu-china.cn/download。
由于技術資料都具有時效性,如果你想用和本教程一樣的版本,可以從這里下載ubuntu-16.04.3-amd64.iso
找到Hyper-V管理器,啟動Hyper-V
在Hyper-V管理器面板上點擊新建虛擬機
分配內存的個人經驗:
- 使用i5,8G內存電腦,分配3G給虛擬機,會有點卡。
- 使用i7,16G內存電腦,分配5G給虛擬機,很流暢。
配置網絡選擇默認即可。或者也可以在Hyper-V管理器主面板上右側的“虛擬交換機管理器”中新建一個網絡。
找到剛剛下載的ubuntu鏡像文件,準備進行安裝虛擬機
點擊完成之后,虛擬機安裝完成。在Hyper-V管理面板上,出現了一個名為ubuntu的虛擬機。
安裝ubuntu
在ubuntu上點擊啟動,此時虛擬機會加載ubuntu的ISO文件并引導啟動。然后點擊連接(或者雙擊左下角的小屏幕)。先選擇語言,然后選擇安裝。
安裝完成,系統會要求重新啟動。
重啟過程中,有些人可能會遇到下面的問題。解決方法是,把ubuntun關了重新啟動即可。
重啟之后,輸入之前設置的登錄密碼,ubuntu就安裝完成了。
Linux系統最實用的就是終端命令行了。在桌面CTRL+ALT+T就可以調出終端命令行,再次CTRL+ALT+T就可以打開另一個終端命令行。
安裝Gitlab
終于到了我們的主題Gitlab了,如果你本身擁有一臺Linux系統電腦(而且我們也建議在一臺穩定的Linux上搭建Gitlab服務,而非windows虛擬機),那么可以直接從這里開始。
在ubuntu上安裝Gitlab基本上都在終端中進行。有兩個注意點:
- 輸入命令的某些過程中會要求輸入電腦密碼,輸入的密碼是不會顯示的,所以不要以為輸入法壞了。
- Linux終端上的賦值粘貼是CTLR+SHIFT+C 和CTRL+SHIFT+V。CTRL+C的功能是中斷操作,不要弄錯。
安裝依賴
sudo apt-get install curl openssh-server ca-certificates postfix
過程中應該會彈出對話框,如圖選擇。
下載安裝Gitlab安裝包(可選)
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
這一步的作用是從網上來下載安裝,根據經驗網速一般很慢,而且容易發生下載安裝失敗的情況。
手動安裝Gitlab安裝包(建議)
可以從這里下載本教程使用的適用ubuntu64位版本的Gitlab安裝程序。
gitlab-ce_7.10.5~omnibus-1_amd64.deb
下載完之后,終端定位到安裝包所在文件目錄。如果你是第一次使用Linux,不知道文件的目錄是什么,可以右擊文件查看屬性:
定位到安裝包所在文件目錄之后,輸入安裝命令。
sudo dpkg -i gitlab-ce_7.10.5~omnibus-1_amd64.deb
最后在終端上如果看見了類似"It looks like GitLab has not been..."表示安裝成功,不要被文字欺騙。
配置動Gitlab
分別輸入下面4條命令,打開配置文件。
sudo mkdir -p /etc/gitlab
sudo touch /etc/gitlab/gitlab.rb
sudo chmod 600 /etc/gitlab/gitlab.rb
sudo gedit /etc/gitlab/gitlab.rb
找到external_ur,改成你Linux的本地IP地址,端口號建議9090,因為8080一般有時候會被tomcat占用,如果用了8080,稍后你打開網址的時候可能會報502錯誤。
如"http://172.21.162.14:9090"
再在下面找到ngix['listen_addresses']和ngix['listen_port'],分別改成和上面的一樣。
如['172.21.162.14']和9090。
保存文件,然后關閉。
啟動Gitlab,使配置生效
sudo gitlab-ctl reconfigure
在這一步過程中,可能會遇到一些問題。如果終端中發生這種錯誤:
Error executing action `run` on resource 'execute[initctl status gitlab-runsvdir]'
可以用以下方法來解決:在終端中依次輸入下面4條命令。
ls -a /etc/init/gitlab-runsvdir.conf
sudo initctl status gitlab-runsvdir
sudo dpkg-divert --local --rename --add /sbin/initctl
sudo ln -s /bin/true /sbin/initctl
然后再次輸入下面的命令,重新配置
sudo gitlab-ctl reconfigure
如果在這個過程中,卡在action run 無法繼續下去,CTRL+ALT+T打開一個新的終端,輸入下面的命令,原Gitlab重配置程序便會繼續執行下去。
sudo /opt/gitlab/embedded/bin/runsvdir-start
配置完成,訪問本地Gitlab網址
輸入之前配置的external_ur,進入本地Gitlab首頁。第一次登陸默認管理員密碼和用戶名:
- Username: root
- Password: 5iveL!fe