雖然 Git 為分散式的版本控制,而且 GitHub 跟 Bitbucket 都有提供私密專案的服務,但是還是有人認為程式碼放在別人家並不安全(最安全的做法是放在自己維護的主機上面…?)或是在某些情況下無法使用(公司內部不開放對外部網路)。
GitLab 是一個可以自行建立 Git Repository 站台的解決方案,並且擁有大部分會使用到的功能。
本篇以 CentOS 7 為例。
1、環境配置
準備1台伺服器主機作為 GitLab 主機。
1.1 硬體需求
依據使用人數,官網有建議的硬體需求(CPU、記憶體…等),可參考官網文件:Hardware requirements 來配置所需的硬體。
1.2 作業系統
安裝 CentOS 7 並使用最小型安裝(可參考小弟文章:【Linux】CentOS 7 安裝)。
也可以安裝其他版本的 Linux,不過我目前只會安裝 CentOS 7…
2、安裝 GitLab
在官網安裝頁面上選擇作業系統(GitLab Installation),依序輸入指令碼即可完成安裝。
底下指令碼以官網提供指令碼為主,部分指令碼為自己的註解與檢查。
2.1 安裝所需套件
使用 yum 指令安裝 curl、policycoreutils-python 與 openssh-server 三個套件。
# sudo yum install -y curl policycoreutils-python openssh-server
2.2 啟用 OpenSSH 服務
使用指令加載並啟用 OpenSSH 服務。
###加載 OpenSSH 服務
# sudo systemctl enable sshd
###啟用 OpenSSH 服務
# sudo systemctl start sshd
使用指令可以檢視 OpenSSH 服務目前狀態。
# systemctl status sshd
檢查 Loaded 狀態為「enabled」,Active 狀態為「active(running)」。
2.3 設定防火牆組態
使用指令設定防火牆組態,開啟 http 服務端口(類似開啟 port 意思),並重新載入防火牆組態設定。
- --permanent:永久記錄的意思,代表重新開機時會執行。可參考鳥哥文章:20.1.4 防火牆簡易設定 中的【組態:『執行時期』與『永久記錄』的差異】部分。
- reload:重新載入設定,daemons 本身並沒有重啟,理論上這樣不會有斷線問題。
###設定防火牆組態,開啟 http 服務端口
# sudo firewall-cmd --permanent --add-service=http
###重新載入防火牆組態設定
# sudo systemctl reload firewalld
2.4 啟用防火牆服務
使用指令可以檢視防火牆目前狀態。
# systemctl status firewalld
使用指令可以啟用防火牆服務。
# systemctl start firewalld
檢查 Active 狀態為「active(running)」。
2.5 檢視防火牆組態
使用指令可以檢視防火牆組態。
# firewall-cmd --list-all
2.6 安裝郵件伺服器:Postfix
使用指令安裝郵件伺服器:Postfix。
###安裝郵件伺服器:Postfix
# sudo yum install postfix
###加載 Postfix 服務
# sudo systemctl enable postfix
###啟用 Postfix 服務
# sudo systemctl start postfix
2.7 取得 GitLab 套件
使用 curl 指令由網路上取得 gitlab-ce 套件,並交給 bash 執行。
###官網指令碼(gitlab-ee)
# curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
###調整指令碼(gitlab-ce)
# curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
2.8 安裝 GitLab
使用指令調整外部 URL 並使用 yum 指令安裝 GitLab。
- EXTERNAL_URL:GitLab 外部 URL。此部分可以略過,在安裝 GitLab 完成後,可以再進行外部 URL 設定。
- 若【2.7 取得 GitLab 套件】取得套件為 gitlab-ce 版本,將指令碼中 gitlab-ee 調整為 gitlab-ce。
###官網指令碼(gitlab-ee)
# sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee
###調整指令碼(gitlab-ce)
# sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce
2.9 啟動 GitLab
使用指令可以啟動 Gitlab。
# gitlab-ctl reconfigure
3、管理介面
由瀏覽器輸入網址,進入 GitLab 管理介面。
3.1 設定密碼
初次登入時需要設定 administrator 的密碼(至少為八位數),設定完成後即可登入。
- 官方網站:GitLab
- 官方網站:Hardware requirements
- 官方網站:Operating Systems
- 官方網站:GitLab Installation
- 鳥哥的 Linux 私房菜:20.1.4 防火牆簡易設定
嘗試將自己的理解寫成文字紀錄,資料來源均來自於網路。
如有理解錯誤、引用錯誤或侵權,請多加指正與告知,讓我有更多的進步與改進的空間,謝謝!