如何在 Windows Server 上使用 Hyper-V 設定 GitLab 伺服器

若要在 Windows Server 上設定 GitLab 自管理版,請在 Hyper-V 中執行支援的 Ubuntu Server 虛擬機,並將 GitLab 安裝到該 Linux 虛擬機器中。 Windows Server 仍作為主機;GitLab 透過其官方 Linux 軟體包運作。 GitLab 目前的 Ubuntu 軟體套件指南列出了 Ubuntu 22.04 和 24.04,因此本教學使用 Ubuntu Server 24.04 LTS。

開始之前,請確認主機有足夠的 CPU、記憶體和磁碟空間供虛擬機器使用。 GitLab 單節點基準配置為 8 個虛擬 CPU 和 16 GB 記憶體;建議為應用程式預留 40 GB 空間,為資料庫預留 5-12 GB 空間,再加上程式碼倉庫儲存空間。使用 SSD 硬碟,並為 Windows Server 預留資源。

1. 安裝 Hyper-V 角色

在伺服器管理員中,選擇「管理」>「新增角色和功能」,選擇本機伺服器,然後啟用Hyper-V。新增管理工具並允許所需的重新啟動。您也可以以管理員身分執行 PowerShell,並使用下列命令安裝本機角色:

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

Hyper-V 安裝會重新啟動主機。如果您的伺服器使用不同的管理設置,請參閱 Microsoft 的Hyper-V 安裝指南。

在選擇 Hyper-V 伺服器角色的情況下,使用伺服器管理員新增角色和功能精靈
在伺服器管理員中選擇 Hyper-V 角色,然後安裝其管理工具。

2. 為訪客建立一個虛擬交換機

在 Hyper-V 管理員中,開啟虛擬交換器管理器,並在主機的 LAN 適配器上建立一個外部交換器。選擇是否讓 Windows 共用此交換器。這將為 Ubuntu 指派一個 LAN 位址,並允許授權裝置存取 GitLab。請使用受信任的 LAN 或 VPN;在進行公開存取之前,請遵循您的網路原則。請參閱 Microsoft 的虛擬交換器指南。

Hyper-V 虛擬交換器管理器顯示連接到乙太網路適配器的外部交換機
外部交換器將 Ubuntu 虛擬機器連接到選定的實體網路。

3. 建立 Ubuntu 虛擬機

下載Ubuntu Server 24.04 LTS。在 Hyper-V 管理器中,建立一個名為 `<VM_name>` 的虛擬機GitLab-Ubuntu,選擇第二代,連接外部交換機,並建立一個基於 SSD 的 VHDX 檔案。單節點使用 GitLab 的 8 個虛擬 CPU/16 GB 記憶體的基準配置;實驗室可以從較小的配置開始,效能也會相應降低。

將 ISO 檔案掛載到虛擬 DVD 光碟機。如果 Ubuntu 無法啟動,請將第二代虛擬機器的安全啟動範本設定為Microsoft UEFI 憑證授權單位。

Hyper-V 新虛擬機器精靈(第二代 Ubuntu Server 虛擬機器)摘要
此第二代虛擬機器範例具有 GitLab 公佈的 CPU 和記憶體基準;可根據應用程式、資料庫和儲存庫的成長調整其可擴充磁碟的大小。
Hyper-V 虛擬機器設定窗口,其中 Ubuntu Server 安裝 ISO 映像已附加到虛擬 DVD 磁碟機。
在此掛載 Ubuntu 伺服器 ISO,然後在網路介面卡設定下確認外部交換器。

4. 安裝 Ubuntu 並為其指派一個穩定的位址

啟動虛擬機器並完成 Ubuntu Server 安裝程式。建立管理員帳戶,使用類似 `<hostname>` 的主機名gitlab,並啟用 OpenSSH 以進行遠端管理。為虛擬機器指派靜態 IP 位址或透過 DHCP 保留位址,以確保其位址穩定。

Ubuntu 伺服器安裝程式網路和主機名稱螢幕,顯示乙太網路介面和主機名稱 GitLab。
在 Ubuntu 安裝過程中,設定虛擬機器的主機名稱並選擇穩定的網路配置。

首次登入後,請安裝可用更新,並根據提示重新啟動:

sudo apt update && sudo apt upgrade -y
Ubuntu 伺服器終端機顯示軟體包更新和訪客網路位址
在安裝 GitLab 之前,請更新 Ubuntu 並確認虛擬機器具有可存取的網路位址。

5. 設定 DNS 並僅允許必要的流量

建立一條 DNS 記錄,使其gitlab.example.com解析到虛擬機器的穩定位址。允許透過 SSH 使用 Git,允許使用TCP 連接埠22進行入站通信,允許使用連接埠80進行 HTTP 和 Let's Encrypt 憑證驗證,允許使用連接埠443進行 HTTPS 通訊。在 Ubuntu 防火牆、Windows/網路防火牆以及主機前端的任何路由器或雲端防火牆中套用對應的規則。盡可能將 SSH 和 Web 存取限制在預期的使用者或網路範圍內。

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

6. 安裝 GitLab Linux 軟體包

這些命令會安裝社群版軟體包。請將範例主機名稱替換為您設定的 DNS 名稱。對於企業版,請使用 GitLab 官方Ubuntu 安裝指南中的 EE 選項。執行倉庫設定腳本前,請先查看腳本內容,並以管理員身分執行。

sudo apt update
sudo apt install -y curl
curl --location "https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh" | sudo bash
sudo EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ce

如果擁有有效的公網 DNS 名稱和入站 HTTP 存取權限,GitLab 可以在安裝過程中申請 Let's Encrypt 憑證。對於僅供內部使用的伺服器,請設定組織信任的證書,並遵循 GitLab 目前的 TLS 指南。在確定生產環境虛擬機器的配置之前,請務必查看GitLab 的安裝要求。

7. 登入、保護實例並測試儲存庫

安裝完成後,開啟 GitLab https://gitlab.example.com。以使用者名稱登入root;從 Ubuntu 虛擬機器上的設定檔中取得初始密碼/etc/gitlab/initial_root_password。 GitLab 會在 24 小時後刪除該文件,因此請立即變更密碼並妥善保管新憑證。

瀏覽器透過 HTTPS 開啟 GitLab 登入頁面,使用者名稱和密碼欄位為空。
使用設定的 HTTPS 主機名稱存取 GitLab 登入頁面。

建立測試項目,新增 README 文件,然後透過 HTTPS 或 SSH 從用戶端機器複製該項目,以確認 DNS、防火牆規則和驗證功能正常。在邀請團隊成員之前,請查看 GitLab建議的後續步驟,啟用雙重認證,如果實例是私有的,則限制公開註冊。配置計劃備份並將其從虛擬機器複製出去;GitLab 備份指南解釋了備份命令包含哪些內容以及哪些內容必須單獨備份。

GitLab 專案倉庫頁面,複製選單顯示 HTTPS 和 SSH 連線選項。
使用專案的複製選單來驗證您的團隊將使用的 HTTPS 或 SSH 路由。

保持 Windows 和 Ubuntu 系統修補程式更新,注意磁碟成長情況,並在將重要儲存庫依賴到執行個體之前測試備份還原。

留下評論

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher Studio 將照片轉換成繪畫、鉛筆素描或卡通。學習如何選擇效果、調整預覽、保存作品。

使用音訊標識符詳細分析和識別音訊文件

使用音訊標識符詳細分析和識別音訊文件

了解音訊標識符揭示的位元率、編碼器和標籤訊息,其傳統工作流程如何運作,以及當前哪些工具可以檢查文件或識別歌曲。

我的照片索引:一款適用於 Windows 的開源照片管理器。

我的照片索引:一款適用於 Windows 的開源照片管理器。

My Photo Index 是一款舊版 Windows 相片目錄管理工具,用於標記、評分和瀏覽本機影像。請查看其文件功能、相容性限制以及一個維護良好的替代方案。

使用屬性變更器變更檔案和資料夾屬性、日期和時間

使用屬性變更器變更檔案和資料夾屬性、日期和時間

學習如何使用屬性變更器安全地編輯 Windows 檔案屬性和時間戳記、更新 JPEG EXIF 照片日期以及預覽批次變更。

如何在 Windows 10 中為每個顯示器設定不同的桌布

如何在 Windows 10 中為每個顯示器設定不同的桌布

為每個 Windows 10 顯示器設定單獨的壁紙,識別顯示器,調整影像適應度,並解決缺少顯示器選擇的問題。

pViewer:一款極簡圖像檢視器和漫畫閱讀器

pViewer:一款極簡圖像檢視器和漫畫閱讀器

了解 pViewer 的功能、照片和漫畫模式的工作原理、應該下載哪個 Windows 版本,以及舊版和重寫版之間的差異。

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

設定 Windows 7 或 8 投影片放映,建立一個小型 VBScript 快捷方式,並指派鍵盤熱鍵來切換到下一張桌布。

NeoDownloader:設定參數並從網站批量下載圖片

NeoDownloader:設定參數並從網站批量下載圖片

學習如何建立 NeoDownloader 專案、選擇爬取範圍、設定映像過濾器和目標位置,以及查看批次下載。

XnConvert:批次應用特效和轉換影像格式

XnConvert:批次應用特效和轉換影像格式

使用 XnConvert 可以批次套用特效、調整照片大小和轉換影像格式。選擇輸出設定、預覽編輯效果並保護您的原始文件。

使用 ManicTime 追蹤工作時間和電腦使用情況

使用 ManicTime 追蹤工作時間和電腦使用情況

了解 ManicTime 如何追蹤應用程式使用情況、活躍時間和空閒時間以及文檔,然後將您的活動歷史記錄轉換為專案標籤和時間表。