GitLab 是一個綜合性的 DevOps 平台,為版本控制、持續整合、部署和專案管理提供了廣泛的功能。它將 DevOps 生命週期的各個階段整合到單一應用程式中,使團隊能夠高效協作地工作。 GitLab 社群版 (CE) 是 GitLab 的開源版本,提供用於管理儲存庫、追蹤問題和自動化 CI/CD 管道的強大工具。
若要在 Debian 12 或 11 上安裝 GitLab CE,您可以使用官方 GitLab Bash 腳本設定 GitLab CE APT 儲存庫,然後安裝並設定軟體。本指南將引導您完成整個過程,確保您在 Debian 系統上擁有強大的 GitLab 設定。
在安裝 Gitlab 之前更新 Debian
使 Debian 作業系統保持最新對於保持其穩定性和安全性至關重要。為確保 Debian 系統上的所有現有軟體包都是最新的,建議執行更新以提供最新的安全性更新和錯誤修復,從而確保系統的穩定性和可靠性。
您可以透過執行以下命令輕鬆更新 Debian 作業系統:
sudo apt update && sudo apt upgrade
安裝 GitLab 所需的套件
確保安裝 GitLab 的所有相依性是安裝過程中的關鍵步驟。這些依賴項是 GitLab 正常運作所必需的元件。幸運的是,安裝這些依賴項是一個簡單的過程。
您可以透過打開終端機並執行以下命令輕鬆安裝它們:
sudo apt install curl ca-certificates apt-transport-https tzdata perl
導入 GitLab CE APT 儲存庫
預設情況下,GitLab 在 Debian 的預設儲存庫中不可用。這意味著您必須手動建立儲存庫才能安裝 GitLab。不過,GitLab 提供了 APT 腳本來幫助完成此過程,使用戶更輕鬆地安裝平台。使用此腳本,您可以建立 GitLab 儲存庫,這將使您能夠使用標準 APT 套件管理器安裝 GitLab。
若要下載腳本,請在終端機中輸入以下命令:
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
執行此命令後,腳本將下載 GitLab 儲存庫並將其新增至您的 Debian 系統。它還將更新軟體包列表,使您能夠使用標準 APT 軟體包管理器安裝 GitLab。
透過 APT 指令完成 GitLab 安裝
下一步是安裝 GitLab。請記住,該腳本已經使用「apt update」命令來同步新建立和修改的儲存庫。完成後,您現在可以透過執行以下命令繼續執行安裝命令:
sudo apt install gitlab-ce
此指令將安裝 GitLab 社群版 (CE),即 GitLab 的免費開源版本。安裝過程可能需要一些時間,具體取決於您的網路速度和系統規格。
如果 GitLab 在 Debian 上安裝成功,則輸出範例:
配置 GitLab
要在 Debian 上設定 GitLab,必須仔細遵循幾個步驟。本節將逐步描述此流程,包括設定主機名稱、設定防火牆和設定電子郵件設定。
配置主機名
要存取您的 GitLab 實例,為您的 GitLab 伺服器配置主機名稱至關重要,因此請選擇一個易於記住和存取的名稱。請依照下列步驟配置主機名稱:
使用文字編輯器開啟 GitLab 設定檔:
sudo nano /etc/gitlab/gitlab.rb
找到 external_url 設定並將範例 URL 替換為您所需的主機名稱:
external_url 'https://gitlab.example.com'
儲存檔案並退出文字編輯器。
現在重新配置 GitLab 以套用變更:
sudo gitlab-ctl reconfigure
為 Gitlab 設定 UFW 防火牆
GitLab 預設使用連接埠 80 表示 HTTP,使用連接埠 443 表示 HTTPS。配置防火牆以允許這些連接埠上的流量並確保您的 GitLab 實例可存取至關重要。
請依照以下步驟設定防火牆:
首先,使用以下命令安裝 UFW 防火牆,因為預設情況下 Debian 上沒有安裝 UFW 防火牆:
sudo apt install ufw
接下來,安裝完成後,使用以下命令啟用 UFW 防火牆:
sudo ufw enable
使用文字編輯器開啟防火牆設定檔:
sudo nano /etc/ufw/applications.d/gitlab
將以下行複製並貼上到文件中:
[GitLab]
title=GitLab
description=GitLab application
ports=80,443/tcp
儲存檔案並退出文字編輯器。
在防火牆中啟用 GitLab 應用程式:
sudo ufw app update GitLab
sudo ufw allow GitLab
配置電子郵件設定
GitLab 使用電子郵件通知來通知使用者有關專案活動的信息,例如新問題、合併請求和評論。
請依照以下步驟設定電子郵件設定:
使用文字編輯器開啟 GitLab 設定檔:
sudo nano /etc/gitlab/gitlab.rb
找到 gitlab_rails['smtp_enable'] 設定並將其設為 true:
gitlab_rails['smtp_enable'] = true
將以下行新增至檔案中,為您的電子郵件提供者(例如 Gmail)設定 SMTP 伺服器設定:
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "example@gmail.com"
gitlab_rails['smtp_password'] = "your_password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
儲存檔案並退出文字編輯器。
重新配置 GitLab 以套用變更:
sudo gitlab-ctl reconfigure
值得注意的是,執行「gitlab-ctl reconfigure」命令後,您可能會觀察到終端輸出以以下訊息結束:
Notes:
Default admin account has been configured with following details:
Username: root
Password: You didn't opt-in to print initial root password to STDOUT.
Password stored to /etc/gitlab/initial_root_password. This file will be cleaned up in first reconfigure run after 24 hours.
若要查看 root (GitLab) 密碼,請在終端機中執行以下命令:
sudo cat /etc/gitlab/initial_root_password
執行此命令將在終端機中顯示 root 密碼。確保此密碼的安全並且不要與未經授權的使用者共用它至關重要。
如果需要重設root密碼,可以使用以下命令:
sudo gitlab-rake "gitlab:password:reset[root]"
執行此命令後,root 密碼將重設為終端輸出中顯示的隨機字串。請務必記住,重設 root 密碼將使所有現有的個人存取權杖失效,因此使用者必須在重設密碼後建立新的存取權杖。
出於安全原因,建議您在初始設定後儘快將 root 密碼更改為強且唯一的密碼,並避免使用預設密碼。您可以透過登入 GitLab Web 介面,前往“使用者設定”>“帳戶”,然後選擇“變更密碼”選項來變更 root 密碼。
存取 GitLab 使用者介面
後端設定完成後,就可以登入並存取GitLab了。為此,請在設定檔中開啟指派給 GitLab 的網域路徑。
https://gitlab.example.com
接下來,使用使用者名稱「root」和您在安裝過程中收到的密碼登入 GitLab。如上一節的密碼列印輸出所述,指南的密碼是影像中的「4zB2mbBLCcRLRAkv3qHfmSZULJ/6ocJNe2XK8zNx9nU=」。
您已成功以 root 帳號登錄,並將到達預設登入頁面。
額外提示
以下是當您首次登入 GitLab 使用者介面時有關保護、自訂或任何其他一般首次提示的一些建議:
- 更改預設密碼: 為了增強 GitLab 實例的安全性,更改 root 使用者的預設密碼至關重要。使用預設使用者名稱和密碼登入 GitLab,導航至“使用者設定”>“密碼”,然後輸入新密碼。
- 設定雙重認證 (2FA): 在登入過程中新增身份驗證因素(例如傳送到手機或應用程式產生的代碼)是 2FA 提供的附加安全層。若要在 GitLab 中啟用 2FA,請導覽至「使用者設定」>「帳戶」>「雙重認證」並依照指示進行操作。
- 建立一個專案: 若要在 GitLab 中建立新項目,請前往「專案」頁面並點選「新專案」按鈕。您可以建立一個空專案或從 Git 儲存庫匯入現有專案。
- 自訂使用者介面: GitLab 允許多種自訂選項,例如更改主題、新增自訂標誌以及配置導覽列。導覽至「管理區域」>「設定」並選擇適當的選項來自訂使用者介面。
- 配置存取控制: GitLab 強大的存取控制功能可讓您控制誰可以存取您的專案以及他們可以執行哪些操作。導航至“項目設定”>“成員”並新增或刪除具有不同存取等級的成員以配置存取控制。
- 使用 GitLab CI/CD: GitLab 強大的 CI/CD 功能可以自動執行程式碼的測試和部署。透過在專案的根目錄中建立「.gitlab-ci.yml」檔案並定義管道的階段和作業來配置 CI/CD 管道。
- 設定 GitLab Runner: GitLab Runner 是一個輕量級代理,它運行 CI/CD 作業並將結果傳回 GitLab。依照 GitLab 文件中的說明在 Debian 系統上安裝和設定 GitLab Runner。
- 備份您的 GitLab 實例: 定期備份您的 GitLab 實例,以防止在硬體故障或其他災難時遺失資料。在終端機中執行「gitlab-rake gitlab:backup:create」指令來備份 GitLab 實例。
為 GitLab 自動備份建立 Cronjob
在 Debian 上設定 GitLab 自動備份的 cronjob 對於確保資料的安全至關重要。 cronjob 是一項排程任務,它以特定時間間隔自動執行以執行 GitLab 實例的備份。請依照以下步驟為 Debian 上的 GitLab 自動備份建立一個 cronjob。
建立 Gitlab 備份腳本
第一步是建立備份腳本來執行 GitLab 實例的備份。按著這些次序:
使用文字編輯器為備份腳本建立一個新檔案。這是一個例子:
sudo nano /usr/local/bin/gitlab-backup.sh
將以下程式碼貼到文件中:
#!/bin/bash
BACKUP_DIR=/var/opt/gitlab/backups
TIMESTAMP=$(date +%s)
sudo gitlab-rake gitlab:backup:create
sudo cp ${BACKUP_DIR}/$(ls -t ${BACKUP_DIR} | head -1) ${BACKUP_DIR}/gitlab_backup_${TIMESTAMP}.tar
- 儲存檔案並退出文字編輯器。
此腳本將透過執行 gitlab-rake gitlab:backup:create 指令產生 GitLab 實例的備份。建立備份後,它將把最新的備份複製到一個新檔案中,檔案名稱中帶有時間戳記。
設定權限和所有權
後續步驟是為備份腳本建立適當的權限和所有權,以確保 cronjob 可以執行它。按著這些次序:
將備份腳本的擁有者設定為與 GitLab 關聯的使用者:
sudo chown git:git /usr/local/bin/gitlab-backup.sh
設定備份腳本的權限以啟用執行:
sudo chmod +x /usr/local/bin/gitlab-backup.sh
建立一個定時任務
下一步是建立一個 cronjob 來安排備份腳本定期運行。請依照下列步驟操作:
若要為 GitLab 使用者開啟 crontab 設定文件,請依照下列步驟操作:
sudo crontab -u git -e
若要安排備份腳本在每天凌晨 1:00 運行,請將以下行新增至 GitLab 使用者的 crontab 設定檔中:
0 1 * * * /path/to/backup/script.sh
儲存檔案並退出文字編輯器。
該 cronjob 將在每天凌晨 1:00 自動執行備份腳本,從而產生一個檔案名稱中帶有時間戳記的新備份檔案。
測試 Cronjob
您可以透過手動執行備份腳本並確保產生的備份檔案沒有錯誤來驗證 cronjob 功能是否正確。若要執行此測試,請在終端機中輸入以下命令:
sudo /usr/local/bin/gitlab-backup.sh
該指令將在目錄“/var/opt/gitlab/backups”中產生一個新的備份檔案。檔案名稱將包含一個時間戳,以指示備份的建立時間。
亞搏體育appGitLab終端命令
GitLab-ctl 是一個用於在 Debian 上管理 GitLab 的命令列工具。它提供了一組終端命令,用於啟動、停止、重新啟動和管理 GitLab 服務等。以下是有關 GitLab-ctl 終端命令的詳細部分,以及範例命令和輸出以及說明。
啟動並停止 GitLab 服務
若要啟動和停止 GitLab 服務,請使用下列命令:
啟動所有 GitLab 服務:
sudo gitlab-ctl start
停止所有 GitLab 服務:
sudo gitlab-ctl stop
重新啟動所有 GitLab 服務:
sudo gitlab-ctl restart
重新載入 GitLab 服務:
sudo gitlab-ctl reload
這些命令將啟動、停止、重新啟動或重新載入所有 GitLab 服務。輸出將指示哪些服務正在啟動或停止以及操作是否成功。
檢查 GitLab 服務的狀態
若要檢查 GitLab 服務的狀態,請使用下列命令:
sudo gitlab-ctl status
這些命令將啟動、停止、重新啟動或重新載入所有 GitLab 服務。執行該命令後,輸出將顯示哪些服務受到影響以及操作是否成功。
備份和恢復 GitLab 數據
您可以使用以下命令建立 GitLab 資料的備份:
建立 GitLab 資料的備份:
sudo gitlab-rake gitlab:backup:create
提供的命令將建立一個包含所有 GitLab 資料的備份文件,例如儲存庫、使用者資料和設定檔。備份檔案將儲存在目錄:「/var/opt/gitlab/backups」中。
恢復 GitLab 資料的備份:
sudo gitlab-rake gitlab:backup:restore BACKUP=<backup_file>
使用此命令,您可以從特定備份檔案還原 GitLab 資料的備份。備份檔案必須位於「var/opt/gitlab/backups」目錄中,或者您可以指定備份檔案的完整路徑。
檢查 GitLab 配置
可以使用以下命令檢查GitLab的設定:
sudo gitlab-rake gitlab:check
此命令可以掃描 GitLab 設定中的錯誤或警告,包括過時的版本、缺少依賴項和配置錯誤的設定。輸出將總結掃描結果以及有關任何檢測到的問題的詳細資訊。
檢查 GitLab 日誌
以下是如何使用以下命令檢查 GitLab 日誌:
查看GitLab日誌:
sudo gitlab-ctl tail gitlab-rails/production.log
您可以使用以下命令查看 GitLab 生產日誌的最後十行,其中詳細介紹了使用者操作、警告和錯誤。
查看 GitLab NGINX 日誌:
sudo gitlab-ctl tail nginx/gitlab_access.log
此命令將顯示 GitLab NGINX 存取日誌的最後十行,其中包含有關 HTTP 請求和回應的詳細資訊。
查看 GitLab PostgreSQL 日誌:
sudo gitlab-ctl tail postgresql/current
此命令將顯示 GitLab PostgreSQL 日誌的最後十行,其中包含有關資料庫查詢和事務的資訊。
結論
使用官方安裝腳本在 Debian 系統上成功安裝 GitLab CE 後,您可以充分利用其強大的 DevOps 功能。此方法可確保您擁有最新版本並輕鬆存取更新。定期維護和更新您的 GitLab 實例,以便從最新功能和安全性增強功能中受益。享受 GitLab CE 為您的開發專案提供的無縫整合和協作工具。