在 Azure VMware 解決方案上設定 GitHub Enterprise Server
在本文中,了解如何在 Azure VMware 解決方案私人雲端上設定 GitHub Enterprise Server,此為 GitHub.com 的「內部部署」版本。 此案例涵蓋 GitHub Enterprise Server 執行個體,其可提供最多 3,000 個開發人員在 GitHub Actions 上每分鐘執行最多 25 個作業。 其中包含在撰寫時「預覽」功能的設定,例如 GitHub Actions。 若要自訂特定需求的設定,請檢閱在 VMware 上安裝 GitHub Enterprise Server 中列出的需求。
開始之前
GitHub Enterprise Server 需要有效的授權金鑰。 您可以註冊試用授權。 若希望透過整合來擴充 GitHub Enterprise Server 的功能,請查看您是否符合免費五席開發人員授權的資格。 透過 GitHub 的合作夥伴計畫申請此授權。
在 VMware 上安裝 GitHub Enterprise Server
下載目前版本的 GitHub Enterprise Server (適用於 VMware ESXi/vSphere (OVA)),並部署您已下載的 OVA 範本。
為新的虛擬機器提供可辨識的名稱,例如 GitHubEnterpriseServer。 您不需要在 VM 名稱中包含版本詳細資料,因為這些詳細資料會在執行個體升級時變成過時資料。
選取目前的所有預設值 (稍後要編輯的詳細資料),並等候 OVA 匯入。
一旦匯入,請根據您的需求調整硬體設定。 在我們的範例案例中,需要下列設定。
資源 標準設定 標準設定 +「搶鮮版 (Beta) 功能」(動作) vCPU 4 8 記憶體 32 GB 61 GB 連接的儲存體 250 GB 300 GB 根儲存體 200 GB 200 GB 您的需求可能會有所不同。 請參閱在 VMware 上安裝 GitHub Enterprise Server 中的硬體考量指引。 另請參閱新增 VMware 的 CPU 或記憶體資源,以根據您的情況自訂硬體設定。
設定 GitHub Enterprise Server 執行個體
在新佈建的虛擬機器 (VM) 開啟電源之後,請透過瀏覽器進行設定。 您需要上傳授權檔案並設定管理主控台密碼。 請務必寫下此密碼並放在安全的地方。
建議至少採取下列步驟:
將公開金鑰上傳至管理主控台,以便您可以透過 SSH 存取系統管理殼層。
在您的執行個體上設定 TLS,讓您可以使用由受信任憑證授權單位簽署的憑證。 套用您的設定。
當執行個體重新啟動時,請針對 GitHub Actions 設定 Blob 儲存體。
注意
目前在 GitHub Enterprise Server 2.22 版上提供功能有限的搶鮮版 (Beta) GitHub Actions。
需要外部 Blob 儲存體,才能在 GitHub Enterprise Server 上啟用 GitHub Actions (目前以搶鮮版 (Beta) 功能提供)。 Actions 會使用此外部 Blob 儲存體來儲存成品和記錄。 GitHub Enterprise Server 上的 Actions 支援 Azure Blob 儲存體作為儲存體提供者 (以及一些其他提供者)。 您需要佈建新的 Azure 儲存體帳戶,儲存體帳戶類型為 BlobStorage。
一旦新的 BlobStorage 資源部署完成,請儲存連接字串 (可在存取金鑰底下取得),以供稍後使用。
在執行個體重新啟動之後,請在執行個體上建立新的管理帳戶。 亦請務必記下此使用者的密碼。
其他設定步驟
若要強化您的執行個體以供生產環境使用,建議使用下列選擇性設定步驟:
設定高可用性以防範:
- 軟體損毀 (作業系統或應用程式層級)
- 硬體失敗 (儲存體、CPU、RAM 等)
- 虛擬化主機系統失敗
- 邏輯或實體中斷的網路
使用有效的 TLS 憑證設定子網域隔離,以減輕跨網站指令碼和其他相關的弱點。
設定 GitHub Actions 執行器
注意
目前在 GitHub Enterprise Server 2.22 版上提供功能有限的搶鮮版 (Beta) GitHub Actions。
此時,您應有一個 GitHub Enterprise Server 執行個體執行中,並已建立管理員帳戶。 您也應該具有 GitHub Actions 用於持續性的外部 Blob 儲存體。
使用 Azure VMware 解決方案為 GitHub Actions 建立別的位置來執行。
在叢集上佈建新的 VM,並以最新版的 Ubuntu Server 作為其基礎。
繼續進行設定,選取計算資源、儲存體和相容性。
選取您想要安裝在 VM 上的客體作業系統。
一旦建立了 VM,請將其電源開啟並透過 SSH 連線至其中。
安裝 Actions 執行器應用程式,此應用程式會從 GitHub Actions 工作流程執行作業。 從發行頁面或執行下列快速指令碼,識別並下載最新 Linux x64 版本的 Actions 執行器。 此指令碼需要 curl 和 jq 都存在於您的 VM 上。
LATEST\_RELEASE\_ASSET\_URL=$( curl https://api.github.com/repos/actions/runner/releases/latest | \ jq -r '.assets | .[] | select(.name | match("actions-runner-linux-arm64")) | .url' ) DOWNLOAD\_URL=$( curl $LATEST\_RELEASE\_ASSET\_URL | \ jq -r '.browser\_download\_url' ) curl -OL $DOWNLOAD\_URL
您現在應該會在 VM 的本機上具有檔案 actions-runner-linux-arm64-*.tar.gz。 在本機擷取此 tarball:
tar xzf actions-runner-linux-arm64-\*.tar.gz
此擷取會在本機解壓縮幾個檔案,包括
config.sh
和run.sh
指令碼。
啟用 GitHub Actions
注意
目前在 GitHub Enterprise Server 2.22 版上提供功能有限的搶鮮版 (Beta) GitHub Actions。
在 GitHub Enterprise Server 執行個體上設定和啟用GitHub Actions。
設定包含 Blob 儲存體連接字串的環境變數。
export CONNECTION\_STRING="<your connection string from the blob storage step>"
設定動作儲存體。
ghe-config secrets.actions.storage.blob-provider azure ghe-config secrets.actions.storage.azure.connection-string "$CONNECTION\_STRING`
套用設定。
ghe-config-apply
執行預先檢查,以在 GitHub Enterprise Server 上安裝 Actions 所需的其他軟體。
ghe-actions-precheck -p azure -cs "$CONNECTION\_STRING"
啟用 Actions,然後重新套用設定。
ghe-config app.actions.enabled true ghe-config-apply
檢查 Blob 儲存體的健康情況。
ghe-actions-check -s blob
您應該會看到輸出:Blob 儲存體狀況良好。
現在已設定 GitHub Actions,請為您的使用者將其啟用。 以管理員身分登入您的 GitHub Enterprise Server 執行個體,然後選取任何頁面右上角的 。
在左側資訊看板中,依序選取 [企業概觀]、[原則]、[Actions],然後選取選項為所有組織啟用 Actions。
從 [自我裝載的執行器] 索引標籤設定您的執行器。從下拉式清單中選取 [新增],然後選取 [新增執行器]。 隨即呈現一組要執行的命令。
複製命令以設定執行器,例如:
./config.sh --url https://10.1.1.26/enterprises/octo-org --token AAAAAA5RHF34QLYBDCHWLJC7L73MA
複製
config.sh
命令,並將其貼入至先前建立的 Actions 執行器上的工作階段。使用
./run.sh
命令來「執行」執行器器:提示
若要讓您企業中的組織可以使用此執行器,請編輯其組織存取權。 您可以限制組織子集的存取權,甚至是特定存放庫的存取權。
(選擇性) 設定 GitHub Connect
雖然此步驟是選擇性的,但如果您打算取用 GitHub.com 上可用的開放原始碼動作,建議您採取此步驟。 其可讓您藉由在工作流程中參考這些可重複使用的動作,根據其他人的工作進行建置。
若要啟用 GitHub Connect,請遵循使用 GitHub Connect 啟用自動存取 GitHub.com 動作中的步驟。
一旦啟用了 GitHub Connect 之後,請選取 [要在工作流程執行中使用 GitHub.com 中動作的伺服器] 選項。
設定並執行您的第一個工作流程
現在已設定 Actions 和 GitHub Connect,讓我們充分利用此工作的一切。 以下是參考絕佳 octokit/request-action 的範例工作流程,可讓我們透過互動使用由 GitHub Actions 提供的 GitHub API,來編寫 GitHub 的指令碼。
在此基本工作流程中,使用 octokit/request-action
以利用 API 在 GitHub 上開啟問題。
注意
GitHub.com 會裝載動作,但在 GitHub Enterprise Server 上執行時,其會「自動」 使用 GitHub Enterprise Server API。
如果選擇不啟用 GitHub Connect,您可以使用下列替代工作流程。
瀏覽至執行個體上的存放庫,並將上述工作流程新增為:
.github/workflows/hello-world.yml
在存放庫的 [Actions] 索引標籤中,等候工作流程執行。
您可以看到其正處於處理中狀態。
如果一切都已成功執行,您應該會在存放庫中看到標題為 "Hello world" 的新問題。
恭喜! 您剛完成了 GitHub Enterprise Server 上的第一個 Actions 工作流程,其會在您的 Azure VMware 解決方案私人雲端上執行。
本文會在 Azure VMware 解決方案私人雲端之上設定 GitHub Enterprise Server 的新執行個體,其等同於 GitHub.com 的自我裝載執行個體。 執行個體包含對 GitHub Actions 的支援,並使用 Azure Blob 儲存體來保存記錄和成品。 但是,我們只是觸及了您可以利用 GitHub Actions 做什麼的表面。 查看 GitHub Marketplace上的 Actions 清單,或自行建立。
下一步
現在,您已了解在 Azure VMware 解決方案私人雲端上設定 GitHub Enterprise Server,可再深入了解: