管理執行器

已完成

在此章節中,您將會探索 GitHub Enterprise Cloud 和 GitHub Enterprise Server 中可供您使用的不同工具和策略,以管理企業中 GitHub Actions 執行器的使用。

為您的工作負載選擇適當的執行器

兩種類型的執行器可以執行 GitHub Actions 工作流程:GitHub 裝載的執行器或自我裝載的執行器。

注意

GitHub 裝載的執行器僅適用於 Enterprise Cloud。 如果您有 Enterprise Server 執行個體,則此小節並不適合您。

GitHub 裝載的執行器可提供更快速且更簡單的方式來執行工作流程,而自我裝載的執行器則是在您自己的自訂環境中執行工作流程的可高度設定方式。 例如,如果需要針對您的組織使用 IP 位址允許清單,或使用專門的硬體設定來執行工作流程,則可以使用自我裝載的執行器。

下表比較 GitHub 裝載的執行器與自我裝載的執行器。 您可以使用它來為您的工作負載選擇適當的執行器。

GitHub 裝載執行器 自我裝載執行器
接收作業系統、預先安裝的套件和工具,以及自我裝載的執行器應用程式的自動更新。 僅接收自我裝載執行器應用程式的自動更新。 您必須負責更新作業系統和所有其他軟體。
GitHub 受到管理和維護。 可以使用您購買的雲端服務或本機電腦。 也可針對您的硬體、作業系統、軟體和安全性需求自訂。
為每個工作執行提供乾淨的執行個體。 不要求每個工作執行有乾淨的執行個體。
使用您的 GitHub 方案的免費分鐘數,在超過免費分鐘數之後適用每分鐘費率。 可免費搭配 GitHub Actions 使用,但您必須負責維護執行器機器的成本。

設定自我裝載執行器的存取權

在 Enterprise Cloud 和 Enterprise Server 中,自我裝載的執行器群組可讓您控制組織層級和企業層級的自我裝載執行器的存取。 在您需要將自我裝載執行器的存取權限制為特定組織或使用者的情況下,此功能可派上用場。 例如,根據這些組織或使用者的信任層級,或降低安全性風險。

假設您只想要授權企業執行個體中的特定組織,可將程式碼部署到生產環境。 您可以建立一個群組,其中包含在企業層級將程式碼部署到生產環境的所有執行器,並將群組存取限制在已獲授權可部署程式碼的特定組織。

若要在企業層級建立群組,請瀏覽至您的企業帳戶,然後前往側邊欄中的 [原則] > [動作]。 在 [執行器群組] 索引標籤中,選取 [新增執行器群組]。 出現的畫面可讓您指定組織的群組名稱和存取原則。

新增群組畫面之螢幕擷取畫面,其中包含所有組織群組名稱的範例。

若要在組織層級建立群組,請瀏覽至您的組織 [設定],然後前往側邊欄中的 [動作]。 選取 [執行器群組],然後 [新增執行器群組]。 出現的畫面可讓您指定存放庫的群組名稱和存取原則。

新增群組畫面之螢幕擷取畫面,其中包含所有儲存庫群組名稱的範例。

每當新執行器建立,系統會自動將它們指派給企業或組織內的預設群組。 執行器一次只能在一個群組中,但是 Enterprise Cloud 和 Enterprise Server 都能讓您將執行器從預設群組移至另一個群組。

為企業用途設定自我裝載的執行器

Enterprise Cloud 和 Enterprise Server 提供多項功能,可讓您針對企業用途自訂自我裝載的執行器。 其中部分功能包括標籤Proxy 伺服器IP 允許清單

標籤

將自我裝載的執行器新增至 GitHub Actions 時,它們會自動接收預設標籤。 這些預設標籤會指出執行器的作業系統和硬體架構,如下表所示:

預設標籤 說明
self-hosted 對所有自我裝載的執行器套用預設標籤
linuxwindowsmacOS 根據執行器的作業系統套用。
x64ARMARM64 根據執行器的硬體架構套用。

在這些預設標籤以外,Enterprise Cloud 和 Enterprise Server 還可讓您建立自訂標籤,並將其新增至您的執行器。 當您需要在具有特定功能的執行器上執行工作時,自訂標籤將很實用。 例如,如果其中一個工作流程中的工作需要特定類型的圖形硬體,您可以建立 gpu 自訂標籤,並將它指派給已安裝硬體的執行器。 然後,具有 gpu 標籤的所有執行器都會有資格執行該工作。

若要將標籤新增至自我裝載的執行器,請瀏覽至組織、存放庫或企業的 GitHub Actions 設定,在其中您的自我裝載執行器已註冊 (在組織或存放庫的 [動作] 下,在企業的 [原則] > [動作] 下)。 當您在該處時:

  1. 在 [執行器] 底下找到執行器清單。 如果您的執行器是在群組中,請找到執行器群組,然後選取執行器下拉式清單,以檢視執行器的清單。

    將下拉式清單反白顯示的範例執行器群組之螢幕擷取畫面。

  2. 找到您想要更新的執行器,然後選取標籤下拉式清單,以檢視標籤選項功能表。 此功能表會顯示可供您的自我裝載執行器使用的所有自訂標籤。 已指派給您的自我裝載執行器的標籤旁邊會有一個勾選記號。

    顯示帶有標籤功能表的範例執行器之螢幕擷取畫面。

  3. 選取現有的標籤,將它新增至您的執行器,或在 [篩選標籤] 欄位中輸入新標籤的名稱,然後選取 [建立新標籤]。 建立標籤時,會自動將標籤新增至您的執行器。

Proxy 伺服器

如果您需要自我裝載的執行器透過 Proxy 伺服器與 GitHub 進行通訊,Enterprise Cloud 和 Enterprise Server 都可讓您使用下列環境變數來變更 Proxy 設定:

環境變數 說明
https_proxy 用於 HTTPS 流量的 Proxy URL。 如有必要,您也可以包含基本驗證認證。 例如:
http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
http_proxy 用於 HTTP 流量的 Proxy URL。 如有必要,您也可以包含基本驗證認證。 例如:
http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
no_proxy 不應使用 Proxy 的主機清單 (以逗號分隔)。 no_proxy 中只允許使用主機名稱。 您無法使用 IP 位址。 例如:
example.com
example.com,myserver.local:443,example.org

注意

自我裝載的執行器應用程式啟動時會讀取 Proxy 環境變數,因此您必須在設定或啟動應用程式之前設定環境變數。 如果您的 Proxy 設定變更,則必須重新啟動自我裝載的執行器應用程式。

在 Windows 上,Proxy 環境變數名稱不區分大小寫。 在 Linux 和 macOS 上,建議您使用全小寫的環境變數。 如果您在 Linux 或 macOS 上同時有採用小寫和大寫的環境變數,例如 https_proxyHTTPS_PROXY,則自我裝載的執行器應用程式會使用小寫的環境變數。

IP 允許清單

如果您的 Enterprise Cloud 或 Enterprise Server 組織已設定 IP 允許清單,則必須將自我裝載的執行器的 IP 位址或 IP 位址範圍新增至 IP 允許清單,您的自我裝載的執行器才能與 GitHub 通訊。

若要將自我裝載的執行器 IP 位址或 IP 位址範圍新增至組織的 IP 允許清單,請瀏覽至您的組織 [設定],並在側邊欄中選取 [組織安全性]。 在 [IP 位址] 下,以 CIDR 標記法新增自我裝載的執行器的 IP 位址或 IP 位址範圍,然後選取 [+ 新增]

監視和疑難排解自我裝載的執行器

Enterprise Cloud 和 Enterprise Server 都提供可讓您監視、疑難排解和更新自我裝載執行器的工具。 如果您的建置開始失敗,您存放庫中的某些檔案會遭到鎖定,或您的工作流程執行會停滯,針對執行工作流程的執行器進行疑難排解有助於解決問題。

針對自我裝載的執行器進行疑難排解時,您可以採取的主要步驟如下:

  1. 在組織、存放庫或企業的 GitHub Actions 設定中檢查執行器的狀態,在其中您的自我裝載執行器已註冊 (在組織或存放庫的 [動作] 下,在企業的 [原則] > [動作] 下)。
  2. _diag 資料夾的 Runner_ 檔案中檢查執行器的活動和自動更新。
  3. _diag 資料夾的 Worker_ 檔案中檢查執行器執行的工作狀態。

根據您的執行器的作業系統,您可以採取額外的步驟,如下表所示:

Mac Windows Linux
使用 launchd 檢查自我裝載的執行器應用程式服務 使用 PowerShell 檢查自我裝載的執行器應用程式服務 - 使用 journalctl 檢查自我裝載的執行器應用程式服務
- 如果您的工作需要容器,請使用 systemctl 來檢查 Docker 是否已安裝且正在執行,以及 Docker 權限