【Linux】GitLab 安裝

  • 9594
  • 0
  • 2017-11-02

  雖然 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…

目前 GitLab 只支援 Linux 系統,並不支援 Windows 系統。官網說明未來並沒有計畫支援 Windows 系統,可參考官網文件:Operating Systems 選擇作業系統。

2、安裝 GitLab

  在官網安裝頁面上選擇作業系統(GitLab Installation),依序輸入指令碼即可完成安裝。

  底下指令碼以官網提供指令碼為主,部分指令碼為自己的註解與檢查。

官網提供指令碼中都含有 sudo,sudo 可視為跟系統管理員要求權限執行某些操作,如果使用 root 進行安裝,可以略過不打。
2.1 安裝所需套件

  使用 yum 指令安裝 curl、policycoreutils-python 與 openssh-server 三個套件。

-y:如果安裝過程中詢問是否安裝,預設為 yes,可以省下不斷詢問的時間。
# sudo yum install -y curl policycoreutils-python openssh-server

01:Package_Install

2.2 啟用 OpenSSH 服務

  使用指令加載並啟用 OpenSSH 服務。

###加載 OpenSSH 服務
# sudo systemctl enable sshd

###啟用 OpenSSH 服務
# sudo systemctl start sshd

  使用指令可以檢視 OpenSSH 服務目前狀態。

# systemctl status sshd

  檢查 Loaded 狀態為「enabled」,Active 狀態為「active(running)」。

02:OpenSSH_Status

2.3 設定防火牆組態

  使用指令設定防火牆組態,開啟 http 服務端口(類似開啟 port 意思),並重新載入防火牆組態設定。

  • --permanent:永久記錄的意思,代表重新開機時會執行。可參考鳥哥文章:20.1.4 防火牆簡易設定 中的【組態:『執行時期』與『永久記錄』的差異】部分。
  • reload:重新載入設定,daemons 本身並沒有重啟,理論上這樣不會有斷線問題。
###設定防火牆組態,開啟 http 服務端口
# sudo firewall-cmd --permanent --add-service=http

###重新載入防火牆組態設定
# sudo systemctl reload firewalld

03:Firewall_Configure

2.4 啟用防火牆服務

  使用指令可以檢視防火牆目前狀態。

在重新載入防火牆組態設定後,防火牆服務會被停用,記得要重新啟用防火牆服務。
# systemctl status firewalld

04:Firewall_Status

  使用指令可以啟用防火牆服務。

# systemctl start firewalld

  檢查 Active 狀態為「active(running)」。

05:Firewall_Active

2.5 檢視防火牆組態

  使用指令可以檢視防火牆組態。

# firewall-cmd --list-all

06:Check_Firewall_Configure

2.6 安裝郵件伺服器:Postfix

  使用指令安裝郵件伺服器:Postfix。

規劃中預計使用外部的 SMTP Server(Gmail),所以此部分略過不安裝。
###安裝郵件伺服器:Postfix
# sudo yum install postfix

###加載 Postfix 服務
# sudo systemctl enable postfix

###啟用 Postfix 服務
# sudo systemctl start postfix

07:Postfix_Install

2.7 取得 GitLab 套件

  使用 curl 指令由網路上取得 gitlab-ce 套件,並交給 bash 執行。

在官網上即使點選 gitlab-ce 安裝,官網提供指令碼中路徑為 gitlab-ee 版本(撰寫文章時仍是如此),若想安裝 gitlab-ce 版本,將網址中 gitlab-ee 調整為 gitlab-ce 即可。
###官網指令碼(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

08:Get_Gitlab

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

09:Gitlab_Install

2.9 啟動 GitLab

  使用指令可以啟動 Gitlab。

# gitlab-ctl reconfigure

10:Gitlab_Start

3、管理介面

  由瀏覽器輸入網址,進入 GitLab 管理介面。

若尚未設定 DNS 對應,輸入 GitLab 主機 IP 位址即可。

11:GitLab_WebSite

3.1 設定密碼

  初次登入時需要設定 administrator 的密碼(至少為八位數),設定完成後即可登入。

預設帳號:root

12:Set_Password

嘗試將自己的理解寫成文字紀錄,資料來源均來自於網路。

如有理解錯誤、引用錯誤或侵權,請多加指正與告知,讓我有更多的進步與改進的空間,謝謝!