Ubuntu 20.04安裝配置GitLab

介紹

GitLab CE或Community Edition是一個開源應用程序,主要用於託管Git存儲庫,以及其他與開發相關的功能,如問題跟蹤。它旨在使用您自己的基礎架構進行託管,併爲您的開發團隊提供部署內部存儲庫的靈活性,與用戶交互的公共方式,或者爲貢獻者提供託管自己項目的方法。

GitLab項目使用簡單的安裝機制在您自己的硬件上設置GitLab實例變得相對簡單。在本指南中,我們將介紹如何在阿里雲Ubuntu 20.04服務器上安裝和配置GitLab。

前提條件

  • 部署GitLab的實例要求至少使用2個vCPU和4GiB的內存,本示例中使用的相關資源版本如下。

    • 實例規格:ECS共享型 s6 2核4G1M帶寬
    • 操作系統:Ubuntu 20.04
  • 已添加如下表所示的安全組規則。

    方向 協議/應用 端口/範圍 源地址
    入方向 HTTP(80) 80 0.0.0.0/0

安裝

第1步 - 安裝依賴項

在我們自己安裝GitLab之前,安裝一些在安裝過程中持續使用的軟件非常重要。幸運的是,可以從Ubuntu的默認包存儲庫輕鬆安裝所有必需的軟件。

由於這是我們第一次apt在此會話期間使用,我們可以刷新本地包索引,然後鍵入以下內容來安裝依賴項:

sudo apt update
sudo apt install ca-certificates curl openssh-server postfix

您可能已經安裝了一些此軟件。對於postfix的安裝,請在出現提示時選擇“ Internet站點”。在下一個屏幕上,輸入服務器的域名以配置系統發送郵件的方式。

第2步 - 安裝GitLab

cd /tmp
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

您可以隨意檢查下載的腳本,以確保您對所需的操作感到滿意。您還可以在此處找到該腳本的託管版本:

less /tmp/script.deb.sh

一旦您對腳本的安全性感到滿意,請運行安裝程序:

sudo bash /tmp/script.deb.sh

該腳本將設置您的服務器以使用GitLab維護的存儲庫。這使您可以使用與其他系統軟件包相同的軟件包管理工具來管理GitLab。完成後,您可以使用以下apt命令安裝實際的GitLab應用程序:

sudo apt install gitlab-ce

這將在您的系統上安裝必要的組件。

注意事項

在安裝GitLab應用程序中如果報以下錯誤,我們可以配置國內加速鏡像。

報錯信息:

# apt-get install gitlab-ce
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package gitlab-ce

修改安裝腳本

sudo vim /etc/apt/sources.list.d/gitlab_gitlab-ce.list

OLD

deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ focal main
deb-src https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ focal main

NEW

deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu focal main
deb-src https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu focal main

再次執行

sudo apt update
sudo apt install gitlab-ce

參考鏈接:https://gitlab.com/gitlab-org/gitlab-foss/-/issues/2370

第3步 - 調整防火牆規則

在配置GitLab之前,您需要確保防火牆規則足夠寬鬆以允許Web流量。如果您遵循先決條件中鏈接的指南,則將啓用ufw防火牆。

鍵入以下內容查看活動防火牆的當前狀態:

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
80                         ALLOW       Anywhere                  
22                         ALLOW       Anywhere                  
80 (v6)                    ALLOW       Anywhere (v6)             
22 (v6)                    ALLOW       Anywhere (v6)   

如您所見,當前規則允許SSH流量通過,但對其他服務的訪問受到限制。由於GitLab是一個Web應用程序,我們應該允許HTTP訪問。因爲我們將利用GitLab從Let’s Encrypt請求和啓用免費TLS / SSL證書的功能,所以我們也允許HTTPS訪問。

/etc/services文件中提供了HTTP和HTTPS的端口映射協議,因此我們可以按名稱允許該流量。如果您尚未啓用OpenSSH流量,則現在也應該允許該流量:

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

再次檢查ufw status

Status: active

To                         Action      From
--                         ------      ----
80                         ALLOW       Anywhere                  
22                         ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
OpenSSH                    ALLOW       Anywhere                  
80 (v6)                    ALLOW       Anywhere (v6)             
22 (v6)                    ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)             
OpenSSH (v6)               ALLOW       Anywhere (v6)   

第4步 - 編輯GitLab配置文件

在使用該應用程序之前,需要更新配置文件並運行重新配置命令。首先,打開Gitlab的配置文件:

sudo vim /etc/gitlab/gitlab.rb

頂部附近是external_url配置線。更新它以匹配您的域。更改httphttps以便GitLab會自動將用戶重定向到受Let’s加密證書保護的站點:

## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! Note: During installation/upgrades, the value of the environment variable
##! EXTERNAL_URL will be used to populate/replace this value.
##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP
##! address from AWS. For more details, see:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'https://example.com' // 此處修改爲您的域名或ip地址

接下來,查找letsencrypt['contact_emails']設置。此設置定義了一個電子郵件地址列表,如果您的域存在問題,Let的加密項目可以用來與您聯繫。取消註釋並填寫此內容是一個好主意,以便您知道任何問題:

letsencrypt['contact_emails'] = ['[email protected]'] // 此處修改爲您的郵箱地址

保存並關閉文件。運行以下命令重新配置Gitlab:

sudo gitlab-ctl reconfigure

這將使用它可以找到的有關您的服務器的信息初始化GitLab。這是一個完全自動化的過程,因此您不必回答任何提示。該過程還將爲您的域配置Let’s Encrypt證書。

sudo gitlab-ctl restart

重啓 GitLab。

附上GitLab常用命令:

常用命令 說明
sudo gitlab-ctl reconfigure 重新加載配置,每次修改/etc/gitlab/gitlab.rb文件之後執行
sudo gitlab-ctl status 查看 GitLab 狀態
sudo gitlab-ctl start 啓動 GitLab
sudo gitlab-ctl stop 停止 GitLab
sudo gitlab-ctl restart 重啓 GitLab
sudo gitlab-ctl tail 查看所有日誌
sudo gitlab-ctl tail nginx/gitlab_acces.log 查看 nginx 訪問日誌
sudo gitlab-ctl tail postgresql 查看 postgresql 日誌

第5步 - 通過Web界面執行初始配置

在允許GitLab運行和訪問的情況下,我們可以通過Web界面執行應用程序的一些初始配置。

第5步 - 首次登錄

在Web瀏覽器中訪問GitLab服務器的域名:

https://example.com // 您external_url配置的地址

在您第一次訪問時,您應該看到爲管理帳戶設置密碼的初始提示,修改下root管理員密碼之後就可以正常使用了。

第6步 - 結論

您現在應該在自己的服務器上託管一個正常工作的GitLab實例。您可以開始導入或創建新項目,併爲您的團隊配置適當的訪問級別。GitLab會定期添加功能並對其平臺進行更新,因此請務必查看項目主頁以及時瞭解最新任何改進或重要通知。

GitLab開機自動啓動

設置GitLab開機自啓動命令爲

sudo systemctl enable gitlab-runsvdir.service

禁止GitLab開機自啓動命令爲

sudo systemctl disable gitlab-runsvdir.service

GitLab郵箱配置

以下用QQ郵箱爲例

第1步 - 開啓qq郵箱的POP3/SMTP服務並保存好授權碼

這一步在qq郵箱的設置 -> 賬戶中
在這裏插入圖片描述

點擊開啓按照提示步驟操作會獲得相應的授權碼(注意:記住授權碼一會要用)

第2步 - 修改gitlab的配置文件

sudo vim /etc/gitlab/gitlab.rb
#配置郵箱來源, 與展示的名稱
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '您的qq郵箱地址'
gitlab_rails['gitlab_email_display_name'] = '您的郵箱顯示名稱'

#smtp配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "您的qq郵箱地址"
gitlab_rails['smtp_password'] = "您的授權碼"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

第3步 - 重新加載配置

sudo gitlab-ctl reconfigure

第4步 - 發送測試郵件

sudo gitlab-rails console

#進入控制檯,然後發送郵件
Notify.test_email('測試郵箱地址', '郵件標題', '郵件正文').deliver_now

進入郵箱查看是否收到郵件。

GitLab修改端口

GitLab默認端口是80,如果我們想更改成9091端口,則需要修改GitLab配置文件。

sudo vim /etc/gitlab/gitlab.rb

修改如下配置

nginx['listen_port'] = 9091 // GitLab端口,默認80端口
unicorn['port'] = 9092 // 可不修改,默認監聽8080端口

重新加載配置

sudo gitlab-ctl reconfigure

即可修改成功。

GitLab Pages設置

修改gitlab的配置文件

sudo vim /etc/gitlab/gitlab.rb

修改如下配置

gitlab_pages[‘enable’] = true; 開啓 Pages 服務
pages_external_url ‘您的GitLab Pages域名地址'; 替換成你自己的域名
gitlab_pages[‘inplace_chroot’] = true; 以Docker container 方式運行的 Gitlab 必須開啓此項
pages_nginx[‘enable’] = true; 開啓 Pages 服務的 vhost,該項開啓後將會在 /var/opt/gitlab/nginx/conf 目錄下生成獨立的名爲 gitlab-pages.conf Nginx 配置文件。
gitlab_pages['access_control'] = true 開啓 Pages 訪問控制。

重新加載配置

sudo gitlab-ctl reconfigure

GitLab Runner配置

第1步 - 安裝

參考官網安裝流程:https://docs.gitlab.com/runner/install/linux-repository.html

第2步 - 註冊

參考官網註冊流程:https://docs.gitlab.com/runner/register/

參考鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章