gitlab 是一套開放原始碼專案,使用 ruby on rails 開發的 git 管理平台,簡單來說,就如大家常見的 github 那樣,可以由 web 介面管理 git server ,寫 issue, wiki , milestone , web hooks 都有,而且不用做太繁雜的設定就可以自動架起一個具備 https 及 ssh 傳輸的 git server。如果再搭配 gitlab ci 還可以做到自動化測試呢。
不多說,直接來。
安裝環境說明
gitlab 有兩個版本, GitLab Community Edition (CE) 及 GitLab Enterprise Edition (EE),CE 版就是 Free 的,我們這裡就介紹 gitlab-ce 架設的方式,官方網站已經提供了 CentOS/Debian/Ubuntu 的直接安裝套件,我就介紹我比較熟的 CentOS 6 環境了。
我是使用 openvz 的虛擬化技術建議至少配置 2G ,因為官方是這麼建議的,我個人裝完之後也發現至少會吃掉 800MB RAM,也挺恐怖的。
安裝步驟
官方網站已經提供了下載 rpm 的安裝方式 , 基本上照上面網址下載對應的 OS 版本就會顯示出安裝方法,我這邊就是以 CentOS 6 為範例,最好弄個乾淨的 CentOS 專門做原始碼控管伺服器,中途不需安裝 git , ruby 或 web server 了,因為官方提供的有整合了大部分的套件(nginx,ruby & rails , git , redis , postgresql ...)。
前置工作我會先把 httpd 移除,因為 gitlab 已經有內建 nginx,而且預設 port 是 80,為了能順利安裝就先移掉了,然後依照官方提供的安裝方式繼續安裝。
下載 gitlab 並用以下方式安裝
curl -O https://downloads-packages.s3.amazonaws.com/centos-6.5/gitlab-7.2.1_omnibus-1.el6.x86_64.rpm sudo yum install openssh-server sudo yum install postfix sudo service postfix start sudo chkconfig postfix on sudo rpm -i gitlab-7.2.1_omnibus-1.el6.x86_64.rpm
修改設定檔
vi /etc/gitlab/gitlab.rb
這個設定檔的內容,裡面有一行 external_url 的設定改成要對外開放 web 的 url ,例如我只想內部使用也許改成 http://192.168.0.10 這樣子。
安裝並執行 gitliab
sudo gitlab-ctl reconfigure sudo lokkit -s http -s ssh
如果上述命令沒有 lokkit,可以自己用 yum install lokkit 安裝。事實上 lokkit 也只是設定 iptables 把 http 和 ssh 打開,如果原本就有開了也不用執行或手動自己設定 iptables 也可以。
如果一切順利,以上述我設定的 external_url 的網址,由流覽器打開 http://192.168.0.10 應該就如下圖的網站畫面出現了。
這時候輸入預設的帳號及密碼就可以登入
- 帳號 : root
- 密碼 : 5iveL!fe
恭喜,這樣就安裝完畢了,完全不用自己搞 git server 和 web server 超簡單的。
而且 github 有的功能,gitlab 幾乎都有,在網站介面中可以自己創建 user 多人使用,可以 ssh or http 傳輸,可以寫 issue , 寫 markdown 語法的 wiki,簡直就和 github 一樣嘛。
補充
- 若要停止 gitlab,可以輸入 gitlab-ctl stop,若要啟動就執行 gitlab-ctl start
- gitlab 存放所有資料的地方是 /var/opt/gitlab,若要備份可以針對此目錄備,不過官方網站有介紹正規的方法來備份比較保險,否則就要先停止 gitlab 然後再備份。