建立和管理代理程式集區 (英文)

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

代理程式集區是代理程式的集合。 您不必個別管理每個 代理程式 ,而是將代理程序組織到代理程式集區。 當您設定代理程式時,它會向單一集區註冊,而當您建立管線時,您會指定管線執行所在的集區。 當您執行管線時,它會在該集區中符合 管線需求的 代理程式上執行。

在 Azure Pipelines 中,集區的範圍會限定於整個組織;因此,您可以跨專案共用代理程序機器。

在 Azure DevOps Server 中,代理程式集區的範圍是整個伺服器;因此,您可以跨專案和集合共用代理程序機器。

注意

代理程式集區作業會在單一代理程式上執行作業。 如果您需要在所有代理程式上執行作業,例如傳統發行管線的部署群組,請參閱 布建部署群組

如果您是組織系統管理員,您可以在系統管理員設定中,從 [代理程式集區] 索引卷標建立和管理代理程式集區。

  1. 登入您的組織 (https://dev.azure.com/{yourorganization})。

  2. 選擇 [Azure DevOps]、 [組織設定]。

    選擇 [組織設定]。

  3. 選擇 [ 代理程式集區]。

    選擇 [代理程式集區] 索引標籤。

  1. 登入您的專案集合 (http://your-server/DefaultCollection)。

  2. 選擇 [Azure DevOps]、 [集合設定]。

    選擇 [集合設定]。

  3. 選擇 [ 代理程式集區]。

    選擇 [代理程式集區]。

  1. 選擇 [Azure DevOps]、 [集合設定]。

    集合設定,2019。

  2. 選擇 [ 代理程式集區]。

    選擇 [代理程式集區],2019。

如果您是專案小組成員,您可以從項目設定中的 [代理程式集區] 索引標籤建立和管理代理程式集區。

流覽至您的專案,然後選擇 [項目設定]、 [代理程式集區]。

流覽至您的專案,然後選擇 [項目設定]、[代理程式集區]。

流覽至您的專案,然後選擇 [項目設定]、 [代理程式集區]。

流覽至您的專案,然後選擇 [項目設定]、[代理程式集區] (2020)。

流覽至您的專案,然後選擇 [項目設定]、 [代理程式集區]。

流覽至您的專案,然後選擇 [項目設定]、[代理程式集區] (2019)。

預設代理程式集區

預設會提供下列代理程式集區:

  • 具有各種 Windows、Linux 和 macOS 映像的 Azure Pipelines 裝載集區。 如需可用映像及其已安裝軟體的完整清單,請參閱 Microsoft 裝載的代理程式。

    注意

    Azure Pipelines 裝載的集區會取代先前裝載的集區,這些集區的名稱對應至對應的映像。 您在先前裝載集區中擁有的任何作業都會自動重新導向至新 Azure Pipelines 裝載集區中的正確映像。 在某些情況下,您仍可能會看到舊的集區名稱,但裝載作業會在幕後使用 Azure Pipelines 集區執行。 如需詳細資訊,請參閱 2019 年 7 月 1 日 - Sprint 154 版本資訊中的單一裝載集區版本資訊。

根據預設,專案中的所有參與者都是託管集區上使用者角色的成員。 這可讓專案中的每個參與者使用 Microsoft 裝載的代理程式來撰寫和執行管線。

在管線中指定集區

若要從 Azure DevOps Services YAML 管線中的 Azure Pipelines 集區選擇 Microsoft 裝載的代理程式,請使用下表中的 YAML VM 映射卷標來指定映像的名稱。

pool:
  vmImage: ubuntu-latest # This is the default if you don't specify a pool or vmImage.

若要使用不需的私人集區:

pool: MyPool

如需詳細資訊,請參閱區的 YAML 架構。

管理集區和佇列

如果您是組織系統管理員,您可以在系統管理員設定中,從 [代理程式集區] 索引卷標建立和管理代理程式集區。

  1. 登入您的組織 (https://dev.azure.com/{yourorganization})。

  2. 選擇 [Azure DevOps]、 [組織設定]。

    選擇 [組織設定]。

  3. 選擇 [ 代理程式集區]。

    選擇 [代理程式集區] 索引標籤。

  1. 登入您的專案集合 (http://your-server/DefaultCollection)。

  2. 選擇 [Azure DevOps]、 [集合設定]。

    選擇 [集合設定]。

  3. 選擇 [ 代理程式集區]。

    選擇 [代理程式集區]。

  1. 選擇 [Azure DevOps]、 [集合設定]。

    集合設定,2019。

  2. 選擇 [ 代理程式集區]。

    選擇 [代理程式集區],2019。

如果您是專案小組成員,您可以從項目設定中的 [代理程式集區] 索引標籤建立和管理代理程式集區。

流覽至您的專案,然後選擇 [項目設定]、 [代理程式集區]。

流覽至您的專案,然後選擇 [項目設定]、[代理程式集區]。

流覽至您的專案,然後選擇 [項目設定]、 [代理程式集區]。

流覽至您的專案,然後選擇 [項目設定]、[代理程式集區] (2020)。

流覽至您的專案,然後選擇 [項目設定]、 [代理程式集區]。

流覽至您的專案,然後選擇 [項目設定]、[代理程式集區] (2019)。

集區用於執行作業。 了解如何為作業指定集區

如果您有許多適用於不同小組或用途的自我裝載代理程式,您可能會想要建立其他集區,如下所述。

建立代理程式集區

以下是您可能想要建立自我裝載代理程式集區的一些典型情況:

  • 您是項目的成員,而且您想要使用小組所擁有的一組機器來執行建置和部署作業。 首先,在 [項目設定] 的 [代理程式集區] 頁面上選取 [安全性],確定您擁有在專案中建立集區的許可權。 您必須具有 管理員 istrator 角色,才能建立新的集區。 接下來,選取 [新增集區 ],然後選取選項以建立 新的 集區。 最後 ,安裝 並設定代理程式成為該代理程式集區的一部分。

  • 您是基礎結構小組的成員,而且想要設定代理程式集區以用於所有專案。 首先,在 [組織設定] 的 [代理程式集區] 頁面上選取 [安全性],確定您擁有在專案中建立集區的許可權。 接下來,建立新的代理程式集區,然後在建立集區時,選取在所有專案中自動布建此代理程式集區的選項。 此設定可確保所有專案都能存取此代理程式集區。 最後 ,安裝 並設定代理程式成為該代理程式集區的一部分。

  • 您想要與多個專案 (而非所有專案) 共用一組代理程式電腦。 首先,流覽至其中一個項目的設定、新增代理程式集區,然後選取選項以在組織層級建立 新的 集區。 接下來,移至其他每個專案,並在選取 [從組織使用現有的代理程式集區] 選項 時,在每個專案中建立集區。 最後, 安裝 並設定代理程式成為共用代理程式集區的一部分。

  • 您是項目的成員,而且您想要使用小組所擁有的一組機器來執行建置和部署作業。 首先,在 [項目設定] 的 [代理程式集區] 頁面上選取 [安全性],確定您擁有在專案中建立集區的許可權。 您必須具有 管理員 istrator 角色,才能建立新的集區。 接下來,選取 [新增集區 ],然後選取選項以建立 新的 集區。 最後 ,安裝 並設定代理程式成為該代理程式集區的一部分。

  • 您是基礎結構小組的成員,而且想要設定代理程式集區以用於所有專案。 首先,在 [專案集合設定] 的 [代理程式集區] 頁面上,選取 [安全性],確定您擁有在專案中建立集區的許可權。 接下來,建立新的代理程式集區,然後在建立集區時,選取在所有專案中自動布建此代理程式集區的選項。 此設定可確保所有專案都能存取此代理程式集區。 最後 ,安裝 並設定代理程式成為該代理程式集區的一部分。

  • 您想要與多個專案 (而非所有專案) 共用一組代理程式電腦。 首先,流覽至其中一個項目的設定、新增代理程式集區,然後選取選項以在組織層級建立 新的 集區。 接下來,移至其他每個專案,並在選取 [從組織使用現有的代理程式集區] 選項 時,在每個專案中建立集區。 最後, 安裝 並設定代理程式成為共用代理程式集區的一部分。

  • 您是項目的成員,而且您想要使用小組所擁有的一組機器來執行建置和部署作業。 首先,請確定您是所有集區中具有 管理員 istrator 角色的群組成員。 接下來,在項目設定中建立 新的專案代理程式集區 ,然後選取 [ 建立新的組織代理程式集區] 選項。 於是,您會建立組織層級和專案層級的代理程式集區。 最後 ,安裝 並設定代理程式成為該代理程式集區的一部分。

  • 您是基礎結構小組的成員,而且想要設定代理程式集區以用於所有專案。 首先,請確定您是所有集區中具有 管理員 istrator 角色的群組成員。 接下來,在系統管理員設定中建立新的組織代理程式集區,然後在建立集區時選取 [自動布建所有專案中對應的專案代理程式集區] 選項。 此設定可確保所有專案都有集區指向組織代理程式集區。 系統會為現有專案建立集區,而且未來每當建立新專案時,系統就會這麼做。 最後 ,安裝 並設定代理程式成為該代理程式集區的一部分。

  • 您想要與多個專案 (而非所有專案) 共用一組代理程式電腦。 首先在其中一個專案中建立專案代理程式集區,然後在建立該集區時選取 [ 建立新的組織代理程式集 區] 選項。 接下來,移至其他每個專案,並在選取 [使用現有的組織代理程式集區] 選項時,在每個專案中建立集區。 最後, 安裝 並設定代理程式成為共用代理程式集區的一部分。

代理程式集區安全性

了解代理程式集區的安全性如何運作,可協助您控制代理程式的共用和使用。

角色 會定義在每個代理程式集區上,而 這些角色中的成員資格 會控管您可以在代理程式集區上執行的作業。

組織層級安全性設定

組織設定中代理程式集區的角色 目的
讀者 此角色的成員可以檢視代理程式集區和代理程式。 您通常會使用此專案來新增負責監視代理程式及其健康情況的操作員。
服務帳戶 此角色的成員可以使用組織代理程式集區,在專案中建立專案代理程式集區。 如果您遵循上述建立新專案代理程式集區的指導方針,您通常不需要在此新增任何成員。
系統管理員 除了上述所有許可權之外,此角色的成員也可以從組織代理程式集區註冊或取消註冊代理程式。 在專案中建立專案代理程式集區時,這些成員也可以參考組織代理程式集區。 最後,這些成員還可以管理組織代理程式集區所有角色的成員資格。 建立組織代理程式集區的用戶會自動新增至該集區的 管理員 istrator 角色。

[代理程式集區] 索引標籤中的 [所有代理程式集區] 節點可用來控制所有組織代理程式集區的安全性。 個別組織代理程式集區的角色成員資格會自動繼承自「所有代理程式集區」節點的角色成員資格。 根據預設,使用 TFS 或 Azure DevOps Server 時,TFS 和 Azure DevOps Server 也是「所有代理程式集區」節點的系統管理員。

專案層級安全性設定

角色也會在每個專案代理程式集區上定義,而這些角色中的成員資格會控管您可以在專案層級的代理程式集區上執行的作業。

項目設定中的代理程式集區角色 目的
讀者 此角色的成員可以檢視專案代理程式集區。 您通常會使用此專案來新增負責監視該專案代理程式集區中建置和部署作業的操作員。
User 撰寫管線時,此角色的成員可以使用專案代理程式集區。
系統管理員 除了上述所有作業之外,此角色的成員還可以管理專案代理程式集區所有角色的成員資格。 建立集區的使用者會自動新增至該集區的管理員角色。

管線權限

管線權限可控制哪些 YAML 管線有權使用代理程式集區。 管線許可權不會限制傳統管線的存取。

您可以選擇下列選項:

  • 開啟所有管線的存取權,以從代理程式集區安全性索引卷標中 [管線許可權] 區段右上角的更多選項使用代理程式集區。

  • 鎖定代理程式集區,只允許選取的 YAML 管線使用。 如果任何其他 YAML 管線參考代理程式集區,就會引發授權要求,該要求必須由代理程式集區管理員核准。 這不會限制來自傳統管線的存取。

代理程式集區管線許可權用戶體驗的螢幕快照。

無法設定 Azure Pipelines 代理程式集區的管線許可權,因為集區預設可存取所有管線。

[代理程式集區] 索引標籤中的 [所有代理程式集區] 節點可用來控制專案中所有專案代理程式集區的安全性。 個別專案代理程式集區的角色成員資格會自動繼承自 「所有代理程式集區」節點的角色成員資格。 根據預設,下列群組會新增至「所有代理程式集區」的管理員角色:組建管理員、發行管理員、專案系統管理員。

[代理程式集區] 索引標籤中的 [安全性] 動作可用來控制專案中所有專案代理程式集區的安全性。 個別專案代理程式集區的角色成員資格,會自動繼承自您此定義的專案。 根據預設,下列群組會新增至「所有代理程式集區」的管理員角色:組建管理員、發行管理員、專案系統管理員。

常見問題集

如果我未排程維護期間,代理程式何時會執行維護?

如果沒有排程任何視窗,則該集區中的代理程式將不會執行維護作業。

什麼是維護作業?

您可以將代理程式集區設定為定期清除過時的工作目錄和存放庫。 這應該可減少代理程式用盡磁碟空間的可能性。 維護作業是在代理程式集區設定中的組織層級設定。

若要設定維護作業設定:

  1. 登入您的組織 (https://dev.azure.com/{yourorganization})。

  2. 選擇 [Azure DevOps]、 [組織設定]。

    選擇 [組織設定]。

  3. 選擇 [ 代理程式集區]。

    選擇 [代理程式集區] 索引標籤。

  1. 登入您的專案集合 (http://your-server/DefaultCollection)。

  2. 選擇 [Azure DevOps]、 [集合設定]。

    選擇 [集合設定]。

  3. 選擇 [ 代理程式集區]。

    選擇 [代理程式集區]。

  1. 選擇 [Azure DevOps]、 [集合設定]。

    集合設定,2019。

  2. 選擇 [ 代理程式集區]。

    選擇 [代理程式集區],2019。

選擇所需的集區,然後選擇 設定 來設定該代理程式集區的維護作業設定。

重要

您必須擁有 管理組建佇列 許可權,才能設定維護作業設定。 如果您沒有看到 [設定] 索引標籤或 [維護歷程記錄] 索引標籤,則沒有該許可權,預設會授與 管理員 istrator 角色。 如需詳細資訊,請參閱 代理程式集區的安全性。

維護作業設定

設定您想要的設定,然後選擇 [ 儲存]。

選取 [維護歷程記錄 ] 以查看目前代理程式集區的維護作業歷程記錄。 您可以下載並檢閱記錄,以查看所採取的清除步驟和動作。

維護作業歷程記錄

維護是依代理程式集區完成,而不是每部機器;因此,如果您在單一計算機上有多個代理程式集區,您仍可能會遇到磁碟空間問題。

自我裝載式代理程式集區的維護作業似乎停滯中。 原因為何?

一般而言,當維護作業等候於不再位於代理程式集區的代理程式上執行時,便會發生「停滯」。 例如,當代理程式確實離線或與代理程式通訊時發生問題時,便會發生此情況。

已排入佇列等候執行的維護作業將等候七天才會執行。 隨後,如果未執行,則會自動設定為失敗狀態。 無法變更此時間限制。

七天限制不同於維護作業逾時設定。 後者控制代理程式執行維護時可花費的分鐘數上限。 計時器會在作業開始時啟動,而不是在代理程式上排入佇列時才啟動。

我嘗試建立使用現有組織代理程式集區的專案代理程式集區,但控件呈現灰色。為什麼?

在 [建立專案代理程式集區] 對話框中,如果已由另一個專案代理程式集區參考現有的組織代理程式集區,則您無法使用現有的組織代理程式集區。 每個組織代理程式集區只能由指定專案集合內的一個專案代理程式集區參考。

我無法選取 Microsoft 裝載集區且無法將組建排入佇列。 我要如何修正此問題?

要求 Azure DevOps 組織的擁有者授與您使用集區的權限。 請參閱代理程式集區安全性

我需要更多裝載的組建資源。 我能做什麼?

答:Azure Pipelines 集區會提供所有 Azure DevOps 組織雲端裝載的組建代理程式,並每月免費建置分鐘數。 如果您需要更多 Microsoft 裝載的組建資源,或需要平行執行更多作業,則可以: