如何在 Ubuntu 上安裝 GitLab
GitLab 是一個(gè)開(kāi)源平臺(tái),提供了強(qiáng)大且功能豐富的解決方案,用于管理倉(cāng)庫(kù)、問(wèn)題、CI/CD 管道等。如果你是 Ubuntu 22.04 或 20.04 用戶(hù),并且想要設(shè)置自己的 GitLab 實(shí)例來(lái)簡(jiǎn)化你的 DevOps 工作流程,那么你來(lái)對(duì)地方了。
本分步指南將引導(dǎo)你完成 Ubuntu 22.04 或 20.04 上 GitLab 的安裝過(guò)程。GItlab 提供企業(yè)版(Gitlab EE)和社區(qū)版(Gitlab CE)。在這篇文章中,我們將介紹社區(qū)版。
先決條件:
- 運(yùn)行 Ubuntu 22.04 或 20.04 且具有 SSH 訪問(wèn)權(quán)限的虛擬或?qū)S梅?wù)器。
- 靜態(tài)主機(jī)名(
gitlab.linuxtechi.net
) - 具有管理員權(quán)限的 Sudo 用戶(hù)
- 2GB 內(nèi)存或更多
- 2 個(gè)或更多 vCPU
- 互聯(lián)網(wǎng)連接
1、更新系統(tǒng)包
讓我們首先更新軟件包列表并將任何現(xiàn)有軟件包升級(jí)到最新版本。
$ sudo apt update
$ sudo apt upgrade -y
應(yīng)用更新后重新啟動(dòng)系統(tǒng)。
$ sudo reboot
2、安裝依賴(lài)項(xiàng)
GitLab 需要一些依賴(lài)項(xiàng)才能正常運(yùn)行。使用以下命令安裝它們:
$ sudo apt install -y curl openssh-server ca-certificates postfix
在 postfix 安裝過(guò)程中,會(huì)出現(xiàn)一個(gè)配置窗口。選擇 “Internet Site”并輸入服務(wù)器的主機(jī)名作為郵件服務(wù)器名稱(chēng)。這將允許 GitLab 發(fā)送電子郵件通知。
選擇 “Internet Site”,然后選擇 “OK”。
檢查系統(tǒng)的主機(jī)名并選擇 “OK”。
3、添加 GitLab Apt 存儲(chǔ)庫(kù)
現(xiàn)在,我們將添加 GitLab 倉(cāng)庫(kù),運(yùn)行以下 curl
命令。它將自動(dòng)檢測(cè)你的 Ubuntu 版本并相應(yīng)地設(shè)置倉(cāng)庫(kù)。
$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
4、安裝 Gitlab
運(yùn)行以下命令在你的 ubuntu 系統(tǒng)上自動(dòng)安裝和配置 gitlab-ce,將服務(wù)器的主機(jī)名替換為你的設(shè)置,
$ sudo EXTERNAL_URL="http://gitlab.linuxtechi.net" apt install gitlab-ce
上述命令成功執(zhí)行后,我們將得到如下輸出。
上面的輸出確認(rèn) GitLab 已成功安裝。gitlab web 界面的用戶(hù)名是 root,密碼存儲(chǔ)在 /etc/gitlab/initial_root_password
。
注意:如果你的 ubuntu 系統(tǒng)上啟用了操作系統(tǒng)防火墻,那請(qǐng)?jiān)试S 80 和 443 端口。
$ sudo ufw allow http
$ sudo ufw allow https
5、訪問(wèn) GitLab Web 界面
安裝并配置 GitLab 后,打開(kāi) Web 瀏覽器并輸入服務(wù)器的 IP 地址或主機(jī)名。
http://<Server-IP-Address-or-Hostname>
- 用戶(hù)名:
root
- 密碼:從
/etc/gitlab/initial_root_password
獲取密碼
點(diǎn)擊“登錄Sign in”。
很好,上面確認(rèn)我們已經(jīng)成功登錄 Gitlab Web 界面。
目前我們的 GitLab 服務(wù)器運(yùn)行在 http(80)協(xié)議上,如果你想為你的 GitLab 啟用 https,請(qǐng)參考以下步驟。
6、為 GitLab Web 界面設(shè)置 HTTPS
為提高安全性,可使用自簽名證書(shū)或 Let's Encrypt 為 GitLab 實(shí)例配置 HTTPS。Let's Encrypt 只適用于互聯(lián)網(wǎng)上有 A 記錄的公有域。但在本例中,我們使用的是私有域,因此將使用自簽名證書(shū)來(lái)確保 GitLab 的安全。
現(xiàn)在,讓我們創(chuàng)建以下文件夾并使用 openssl
命令生成自簽名證書(shū):
$ sudo mkdir -p /etc/gitlab/ssl
$ sudo chmod 755 /etc/gitlab/ssl
使用以下 openssl
命令生成私鑰:
$ sudo openssl genrsa -des3 -out /etc/gitlab/ssl/gitlab.linuxtechi.net.key 2048
輸入密碼并記住它。
使用以下命令創(chuàng)建 CSR:
$ sudo openssl req -new -key /etc/gitlab/ssl/gitlab.linuxtechi.net.key -out /etc/gitlab/ssl/gitlab.linuxtechi.net.csr
從密鑰中刪除密碼串,依次執(zhí)行以下命令:
$ sudo cp -v /etc/gitlab/ssl/gitlab.linuxtechi.net.{key,original}
$ sudo openssl rsa -in /etc/gitlab/ssl/gitlab.linuxtechi.net.original -out /etc/gitlab/ssl/gitlab.linuxtechi.net.key
$ sudo rm -v /etc/gitlab/ssl/gitlab.linuxtechi.net.original
創(chuàng)建證書(shū)文件:
$ sudo openssl x509 -req -days 1460 -in /etc/gitlab/ssl/gitlab.linuxtechi.net.csr -signkey /etc/gitlab/ssl/gitlab.linuxtechi.net.key -out /etc/gitlab/ssl/gitlab.linuxtechi.net.crt
使用下面的 rm
命令刪除 CSR 文件:
$ sudo rm -v /etc/gitlab/ssl/gitlab.linuxtechi.net.csr
設(shè)置密鑰和證書(shū)文件的權(quán)限:
$ sudo chmod 600 /etc/gitlab/ssl/gitlab.linuxtechi.net.key
$ sudo chmod 600 /etc/gitlab/ssl/gitlab.linuxtechi.net.crt
Gitlab 服務(wù)器的所有重要配置均由文件 /etc/gitlab/gitlab.rb
控制,因此編輯此文件,搜索 external_url
并添加 https://gitlab.linuxtechi.net
。
$ sudo vi /etc/gitlab/gitlab.rb
----------------------------------------------------------
external_url 'https://gitlab.linuxtechi.net'
----------------------------------------------------------
保存并退出文件,使用下面的命令重新配置 gitlab,以便其 Web 界面可以使用 HTTPS。
$ sudo gitlab-ctl reconfigure
成功執(zhí)行上述命令后,你的 GitLab 界面應(yīng)該可以通過(guò) HTTPS 協(xié)議訪問(wèn),在我的例子中,URL 為:https://gitlab.linuxtechi.net/
當(dāng)你第一次訪問(wèn)它時(shí),它會(huì)說(shuō)你的連接不安全,點(diǎn)擊“接受風(fēng)險(xiǎn)并繼續(xù)”。
結(jié)論
恭喜! 你已在 Ubuntu 22.04 或 20.04 系統(tǒng)上成功安裝 GitLab。隨著 GitLab 的啟動(dòng)和運(yùn)行,你現(xiàn)在可以創(chuàng)建倉(cāng)庫(kù),與你的團(tuán)隊(duì)協(xié)作,并通過(guò) GitLab 令人印象深刻的功能增強(qiáng)你的開(kāi)發(fā)工作流程。享受無(wú)縫版本控制、持續(xù)集成等,一切盡在你的掌控之中!