自我載入的 Windows 代理程式 (2.x)

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

重要

本文提供搭配 Azure DevOps Server 使用 2.x 版代理程式軟體的指引。 如果您使用 Azure DevOps Services,請參閱 自我裝載的 Windows 代理程式

若要建置及部署 Windows、Azure 和其他 Visual Studio 解決方案,您至少需要一個 Windows 代理程式。 Windows 代理程式也可以建置 Java 和 Android 應用程式。

在開始之前:

  • 如果您的程式代碼位於 Azure Pipelines 中,且 Microsoft 裝載的代理程式 符合您的需求,您可以略過設定自我裝載的 Windows 代理程式。
  • 否則,您已來到正確的位置,在 Windows 上設定代理程式。 繼續進行下一節。

瞭解代理程式

如果您已經知道代理程序是什麼及其運作方式,請放心直接跳到下列各節。 但是,如果您想要更多有關其運作方式及其運作方式的背景,請參閱 Azure Pipelines 代理程式

檢查先決條件

請確定您的電腦具有下列必要條件:

  • Windows 7 SP1 ESU、8.1、10 或 11 (如果使用用戶端 OS)
  • Windows 2012 或更高版本(如果使用伺服器 OS)
  • PowerShell 3.0 或更高版本
  • .NET Framework 4.6.2 或更高版本

重要

從 2019 年 12 月開始,組建代理程式的最低必要 .NET 版本是 4.6.2 或更高版本。

建議配備:

如果您要從 Subversion 存放庫建置,則必須 在電腦上安裝 Subversion 用戶端

您第一次應該手動執行代理程式設定。 在您瞭解代理程式的運作方式,或想要自動設定許多代理程序之後,請考慮使用 自動設定。

硬體規格

代理程式的硬體規格會隨您的需求、小組大小等而有所不同。無法提出適用於每個人的一般建議。 作為參考點,Azure DevOps 小組會使用利用 託管代理程式的管線來建置託管的代理程序代碼。 另一方面,大部分的 Azure DevOps 程式代碼是由執行 4 個自我裝載代理程式的 24 核心伺服器類別機器所建置。

準備許可權

自我裝載式代理程式的資訊安全

設定代理程式的使用者需要集區管理員權限,但是執行代理程式的使用者則不需要。

代理程式所控制的資料夾應盡可能限制為少數使用者,因為其中包含可能會遭到解密或外洩的祕密。

Azure Pipelines 代理程式是一種軟體產品,其設計目的是執行從外部來源下載的程式碼。 它本質上可能是遠端程式代碼執行 (RCE) 攻擊的目標。

因此,請務必考慮管線代理程式每個個別使用方式的威脅模型來執行工作,並決定可以將哪些最低許可權授與執行代理程式的使用者、代理程序執行所在的計算機、具有管線定義寫入許可權的使用者、yaml 儲存所在的 git 存放庫、 或控制新管線集區存取權的使用者群組。

最佳做法是讓執行代理程式的身分識別與具有將代理程式連線到集區之許可權的身分識別不同。 產生認證 (和其他代理程式相關檔案) 的使用者與需要讀取認證的使用者不同。 因此,請務必仔細考慮授與代理程式計算機本身的存取權,以及包含敏感性檔案的代理程序資料夾,例如記錄和成品。

僅針對 DevOps 系統管理員和執行代理程式程序的使用者身分識別授與存取權很合理。 管理員 istrators 可能需要調查文件系統,以瞭解建置失敗或取得記錄檔,才能回報 Azure DevOps 失敗。

決定您將使用的使用者

在單次步驟中,您必須註冊代理程式。 有權 管理代理程式佇列 的人員必須完成這些步驟。 代理程式不會在日常作業中使用此人的認證,但必須完成註冊。 深入瞭解 代理程式如何通訊

使用個人存取權杖進行驗證 (PAT)

  1. 使用您打算在 Azure DevOps Server 入口網站 (https://{your-server}/DefaultCollection/) 中使用的使用者帳戶登入。
  1. 使用您計畫在 Azure DevOps 組織 (https://dev.azure.com/{your_organization}) 中使用的使用者帳戶登入。
  1. 從首頁開啟您的配置檔。 移至您的安全性詳細數據。

    移至您的安全性詳細數據。

  2. 建立個人存取令牌

    建立個人存取權杖。

    注意

    如果您要設定部署群組代理程式,或在註冊 VM 環境資源時看到錯誤,則必須將 PAT 範圍設定為 [所有可存取的組織]。 將 PAT 範圍設定為所有可存取組織的螢幕快照。

  1. 從您的首頁開啟使用者設定,然後選取 [個人存取權杖]

    移至您的安全性詳細數據。

  2. 建立個人存取令牌

    建立個人存取權杖。

  1. 針對範圍,選取 [代理程式集區](讀取、管理), 並確定清除所有其他方塊。 如果是部署群組代理程式,請針對範圍選取 [部署群組](讀取、管理),並確定清除所有其他方塊。

    選取 [建立新的個人存取令牌] 視窗底部的 [顯示所有範圍],以查看範圍的完整清單。

  2. 複製權杖。 當您設定代理程式時,將會使用此令牌。

確認使用者具有許可權

請確定您將使用的用戶帳戶具有註冊代理程序的許可權。

使用者是 Azure DevOps 組織擁有者或 TFS 或 Azure DevOps Server 系統管理員嗎? 在此停止,您有許可權。

否則:

  1. 開啟瀏覽器並流覽至 Azure Pipelines 組織或 Azure DevOps Server 或 TFS 伺服器的 [代理程式集 區] 索引標籤:

    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。

  2. 選取頁面右側的集區,然後按兩下 [ 安全性]。

  3. 如果未顯示您要使用的用戶帳戶,請取得系統管理員來新增它。 系統管理員可以是代理程式集區管理員、 Azure DevOps 組織擁有者,或是 TFS 或 Azure DevOps Server 系統管理員

    如果是部署群組代理程序,系統管理員可以是部署群組管理員、Azure DevOps 組織擁有者TFS 或 Azure DevOps Server 系統管理員

    您可以在 Azure Pipelines 的 [部署群組] 頁面[安全性] 索引卷標中,將使用者新增至部署群組管理員角色。

注意

如果您看到如下的訊息: 很抱歉,我們無法新增身分識別。請嘗試不同的身分識別。您可能已針對組織擁有者或 TFS 或 Azure DevOps Server 系統管理員遵循上述步驟。 您不需要執行任何動作;您已有管理代理程式佇列的許可權。

下載並設定代理程式

Azure Pipelines

  1. 使用您已備妥許可權的帳戶登入計算機,如上一節所述。

  2. 在您的網頁瀏覽器中,登入 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。

  3. 選取 [ 預設 集區],選取 [代理程式] 索引 卷標,然後選擇 [ 新增代理程式]。

  4. 在 [ 取得代理程式 ] 對話框中,選擇 [Windows]。

  5. 在左窗格中,選取電腦上已安裝 Windows 作業系統版本的處理器結構。 x64 版本適用於 64 位 Windows,而 x86 版本則適用於 32 位 Windows。 如果您不確定已安裝哪個 Windows 版本, 請遵循這些指示來找出

  6. 在右窗格中,按兩下 [ 下載] 按鈕。

  7. 請依照頁面上的指示下載代理程式。

  8. 將代理程式解壓縮到您選擇的目錄中。 請確定目錄的路徑不包含空格,因為工具和腳本不一定會正確逸出空格。 建議的資料夾為 C:\agents。 在下載資料夾中擷取或其他使用者資料夾可能會導致許可權問題。 然後執行 config.cmd,並回應一系列問題來設定代理程式。

Azure DevOps Server 2019 和 Azure DevOps Server 2020

  1. 使用您已備妥許可權的帳戶登入計算機,如上所述。

  2. 在您的網頁瀏覽器中,登入 Azure DevOps Server 2019,然後流覽至 [代理程式集 區] 索引卷標:

    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。

  3. 按兩下 [ 下載代理程式]。

  4. 在 [ 取得代理程式] 對話框中,按兩下 [Windows]。

  5. 在左窗格中,選取電腦上已安裝 Windows 作業系統版本的處理器結構。 x64 版本適用於 64 位 Windows,而 x86 版本則適用於 32 位 Windows。 如果您不確定已安裝哪個 Windows 版本, 請遵循這些指示來找出

  6. 在右窗格中,按兩下 [ 下載] 按鈕。

  7. 請依照頁面上的指示下載代理程式。

  8. 將代理程式解壓縮到您選擇的目錄中。 請確定目錄的路徑不包含空格,因為工具和腳本不一定會正確逸出空格。 建議的資料夾為 C:\agents。 在下載資料夾中擷取或其他使用者資料夾可能會導致許可權問題。 接著,執行 config.cmd。 這會詢問您一系列設定代理程序的問題。

重要

強烈建議您從提升許可權的 PowerShell 視窗設定代理程式。 如果您想要設定為服務,則需要此專案。

您不得使用 Windows PowerShell ISE 來設定代理程式。

重要

基於安全性考慮,我們強烈建議您確定代理程式資料夾 (C:\agents) 只能由系統管理員編輯。

注意

請避免針對代理程式組態使用mintty型殼層,例如 git-bash。 Mintty 與原生輸入/輸出 Windows API 完全相容(以下是 一些相關信息),在此案例中我們無法保證正確執行安裝腳本。

伺服器 URL 和驗證

當安裝程式要求您的伺服器 URL 時,請回答 https://dev.azure.com/{your-organization}Azure DevOps Services。

當安裝程式要求伺服器 URL 時,若為 TFS,請回答 https://{your_server}/tfs

設定要求驗證類型時,請選擇 PAT。 然後將您建立PAT 令牌貼到命令提示字元視窗中。

注意

使用 PAT 做為驗證方法時,PAT 令牌只會在代理程式的初始設定期間使用。 稍後,如果 PAT 到期或需要更新,則代理程式不需要進一步變更。

重要

請確定您的伺服器已 設定為支援您想要使用的驗證方法

當您將代理程式設定為連線到 Azure DevOps Server 時,您有下列選項:

  • 使用基本身份驗證將替代 連線 至 Azure DevOps Server。 選取 [替代] 之後,系統會提示您輸入認證。

  • 透過 NTLM 或 Kerberos 等 Windows 驗證 配置,將 連線 交涉到 Azure DevOps Server 作為登入使用者以外的使用者。 選取 [交涉] 之後,系統會提示您輸入認證。

  • 整合式 (預設值) 連線 Windows 代理程式到 Azure DevOps Server,並使用透過 NTLM 或 Kerberos 等 Windows 驗證 配置登入使用者的認證。 選擇此方法之後,系統不會提示您輸入認證。

  • PAT 選擇 PAT 之後,請將您建立PAT 令牌貼到命令提示字元視窗中。 如果您的 Azure DevOps Server 實例和代理程式電腦不在受信任的網域中,請使用個人存取令牌 (PAT)。 PAT 驗證是由您的 Azure DevOps Server 實例處理,而不是域控制器。

注意

使用 PAT 做為驗證方法時,PAT 令牌只會用於代理程式的初始設定。 如果需要重新產生 PAT,則代理程式不需要進一步變更。

若要深入瞭解,請參閱 與 Azure Pipelines 或 Azure DevOps Server 的通訊。

選擇互動式或服務模式

如需在互動式模式或即服務中執行代理程式的指引,請參閱 Agents:Interactive vs. service

如果您選擇以服務身分執行 (我們建議),您執行的使用者名稱應該為 20 個字元或更少。

執行代理程式

以互動方式執行

如果您將代理程式設定為以互動方式執行,請執行它:

.\run.cmd

若要重新啟動代理程式,請按 Ctrl+C 停止代理程式,然後執行 run.cmd 以重新啟動代理程式。

執行一次

針對設定為以互動方式執行的代理程式,您可以選擇讓代理程式只接受一項作業。 若要在此組態中執行:

.\run.cmd --once

此模式中的代理程式只會接受一項作業,然後正常地向下旋轉(適用於在 Docker執行的服務,例如 Azure 容器執行個體)。

以服務身分執行

如果您將代理程式設定為以服務身分執行,它會自動啟動。 您可以從服務嵌入式管理單元檢視及控制代理程式執行狀態。 執行 services.msc 並尋找下列其中一項:

  • Azure Pipelines Agent (*name of your agent*)
  • VSTS Agent (*name of your agent*)
  • vstsagent.(*organization name*).(*name of your agent*)

注意

若要在以服務方式執行之代理程式的訪問控制時,能夠透過旗標或提示,將代理程式服務 SID 類型設定為 [SERVICE_SID_TYPE_UNRESTRICTED] 以在互動式設定流程期間更有彈性。 根據預設,代理程式服務會設定為 SERVICE_SID_TYPE_NONE

如需 SID 類型的詳細資訊,請參閱此

若要重新啟動代理程式,請以滑鼠右鍵按兩下專案,然後選擇 [ 重新啟動]。

注意

如果您需要變更代理程式的登入帳戶,請勿從服務嵌入式管理單元進行。 請改為參閱下列資訊以重新設定代理程式。

若要使用您的代理程式,請使用代理程式的集區執行 作業 。 如果您未選擇不同的集區,您的代理程式將會位於預設集區中

取代代理程式

若要取代代理程式,請遵循 下載並再次設定代理程式 步驟。

當您使用與已經存在之代理程式相同的名稱來設定代理程式時,系統會詢問您是否要取代現有的代理程式。 如果您回答 Y,請確定您移除要取代的代理程式(如下所示)。 否則,在幾分鐘的衝突之後,其中一個代理程式將會關閉。

拿掉並重新設定代理程式

若要移除代理程式:

.\config remove

拿掉代理程序之後,您可以 再次進行設定。

自動設定

您可以從腳本設定代理程式,而不需要人為介入。 您必須通過 --unattended 並回答所有問題。

若要設定代理程式,它必須知道貴組織的 URL,或已獲授權設定代理程式的某人的集合和認證。 所有其他回應都是選擇性的。 您可以使用環境變數來指定任何命令行參數:將其名稱放在大寫和前面 VSTS_AGENT_INPUT_。 例如, VSTS_AGENT_INPUT_PASSWORD 而不是指定 --password

必要選項

  • --unattended - 代理程式設定不會提示資訊,而且必須在命令行上提供所有設定
  • --url <url> - 伺服器的 URL。 例如: https://dev.azure.com/myorganization 或 http://my-azure-devops-server:8080/tfs
  • --auth <type> - 驗證類型。 有效值為:
    • pat (個人存取令牌) - PAT 是與 Azure DevOps Services 搭配運作的唯一配置。
    • negotiate (Kerberos 或 NTLM)
    • alt (基本身份驗證)
    • integrated (Windows 預設認證)

驗證選項

  • 如果您選擇 --auth pat
    • --token <token> - 指定您的個人存取令牌
    • PAT 是與 Azure DevOps Services 搭配運作的唯一配置。
  • 如果您選擇 --auth negotiate--auth alt
    • --userName <userName>- 以 或 格式指定 Windows 用戶名稱domain\userNameuserName@domain.com
    • --password <password> - 指定密碼

集區和代理程式名稱

  • --pool <pool> - 要加入之代理程式的集區名稱
  • --agent <agent> - 代理程式名稱
  • --replace - 取代集區中的代理程式。 如果另一個代理程式以相同名稱接聽,它會開始失敗併發生衝突

代理程式設定

  • --work <workDirectory> - 工作目錄,其中儲存作業數據。 預設為在 _work 代理程式目錄的根目錄下。 工作目錄是由指定的代理程式所擁有,不應在多個代理程式之間共用。
  • --acceptTeeEula - 接受 Team Explorer 隨處終端使用者許可協定(僅限 macOS 和 Linux)
  • --disableloguploads - 不要將主控台記錄輸出串流或傳送至伺服器。 相反地,您可以在作業完成之後,從代理程式主機的文件系統擷取它們。

僅限 Windows 啟動

  • --runAsService - 將代理程式設定為以 Windows 服務執行(需要系統管理員權限)
  • --runAsAutoLogon - 設定自動登入並在啟動時執行代理程式 (需要系統管理員權限)
  • --windowsLogonAccount <account> - 與 或 搭配 --runAsService 使用,以 或 --runAsAutoLogon 格式 domain\userName 指定 Windows 用戶名稱。 userName@domain.com
  • --windowsLogonPassword <password>- 搭配 --runAsService--runAsAutoLogon 用來指定 Windows 登入密碼(群組受管理的服務帳戶和 Windows 內建帳戶不需要,例如 'NT AUTHORITY\NETWORK SERVICE')
  • --enableservicesidtypeunrestricted - 用來 --runAsService 將服務 SID 類型的代理程式設定為 SERVICE_SID_TYPE_UNRESTRICTED (需要系統管理員權限)
  • --overwriteAutoLogon - 用來 --runAsAutoLogon 覆寫電腦上現有的自動登入
  • --noRestart - 用來 --runAsAutoLogon 在代理程式設定完成之後停止主機重新啟動

使用 runAsAutoLogon 選項設定代理程式進行疑難解答

使用 選項設定代理程式 runAsAutoLogon 時,每次重新啟動機器之後都會執行代理程式。 如果代理程式在重新啟動機器之後未執行,請執行後續步驟。

如果電腦上已設定代理程式

重新設定代理程式之前,必須先移除舊的代理程式組態,因此請嘗試從代理程式資料夾執行此命令:

.\config.cmd remove --auth 'PAT' --token '<token>'

在執行 命令之後,檢查代理程式是否已從代理程式集區中移除:

<Azure DevOps organization> / <Project> / Settings / Agent pools / <Agent Pool> / Agents

如果執行 命令未移除代理程式集區,請手動從代理程式集區中移除代理程式。

然後,從代理程式資料夾執行此命令,嘗試重新設定代理程式:

.\config.cmd --unattended --agent '<agent-name>' --pool '<agent-pool-name>' --url '<azure-dev-ops-organization-url>' --auth 'PAT' --token '<token>' --runAsAutoLogon --windowsLogonAccount '<domain\user-name>' --windowsLogonPassword '<windows-password>'

指定代理程式名稱(任何特定的唯一名稱),並在重新設定之後檢查此代理程式是否出現在代理程式集區中。

將代理程式封存解壓縮會更好(可以在這裡下載),並從新的解壓縮代理程式資料夾執行此命令。

檢查是否已記錄並正確儲存 Windows 登錄機碼

whoami /user執行 命令以取得 <sid>。 開啟 Registry Editor 並遵循路徑:

Computer\HKEY_USERS\<sid>\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

檢查是否有 VSTSAgent 金鑰。 如果存在,請刪除此金鑰,然後從代理程式資料夾執行 .\config.cmd 命令來關閉Registry Editor並設定代理程式。 在回答問題 Enter Restart the machine at a later time?之前,請再次開啟 Registry Editor 並檢查密鑰是否已 VSTSAgent 出現。 按 Enter 以回答問題,並檢查密鑰是否 VSTSAgent 在重新啟動計算機後仍留在其位置。

檢查 Windows 登錄機碼在您的電腦上是否正常運作

建立 autorun.cmd 包含下列這一行的檔案: echo "Hello from AutoRun!"。 在新的索引鍵/值組與索引鍵AutoRun和值上方的路徑中開啟Registry Editor並建立

C:\windows\system32\cmd.exe /D /S /C start "AutoRun" "D:\path\to\autorun.cmd"

重新啟動電腦。 如果您沒有看到含有訊息的 Hello from AutoRun! 控制台視窗,則 Windows 登錄機碼有問題。

僅限部署群組

  • --deploymentGroup - 將代理程式設定為部署群組代理程式
  • --deploymentGroupName <name> - 用來 --deploymentGroup 指定要加入之代理程式的部署群組
  • --projectName <name> - 用來 --deploymentGroup 設定項目名稱
  • --addDeploymentGroupTags - 用來 --deploymentGroup 指出應該新增部署群組標籤
  • --deploymentGroupTags <tags> - 用於 --addDeploymentGroupTags 指定部署群組代理程式的逗號分隔標籤清單 , 例如 “web, db”

僅限環境

  • --addvirtualmachineresourcetags - 用來指出應該新增環境資源標籤
  • --virtualmachineresourcetags <tags> - 用於 --addvirtualmachineresourcetags 指定環境資源代理程式的逗號分隔卷標清單 - 例如 “web, db”

.\config --help 一律會列出最新的必要和選擇性回應。

診斷

如果您在自我裝載代理程式時遇到問題,您可以嘗試執行診斷。 設定代理程式之後:

.\run --diagnostics

這會透過診斷套件執行,以協助您針對問題進行疑難解答。 診斷功能從 2.165.0 版開始提供。

其他選項的說明

若要瞭解其他選項:

.\config --help

說明提供驗證替代方案和自動設定的相關信息。

功能

代理程式的功能會在集區中編錄和公告,以便只指派其可處理的組建和發行。 請參閱 建置和發行代理程式功能

在許多情況下,部署代理程序之後,您必須安裝軟體或公用程式。 一般而言,您應該在代理程式上安裝任何您在開發計算機上所使用的軟體和工具。

例如,如果您的組建包含 npm 工作,則除非集區中有已安裝 npm 的組建代理程式,否則不會執行組建。

重要

功能包括所有環境變數,以及代理程式執行時所設定的值。 如果代理程式執行時有任何一個值變更,則必須重新啟動代理程式以挑選新的值。 在代理程式上安裝新軟體之後,您必須重新啟動代理程式,讓新功能顯示在集區中,讓組建能夠執行。

如果您想要將環境變數排除為功能,您可以藉由設定以逗號分隔的變數清單來指定它們 VSO_AGENT_IGNORE

常見問題集

如何? 確定我有最新的代理程式版本嗎?

  1. 瀏覽至 [ 代理程式集區 ] 索引標籤:

    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。

  2. 按兩下包含代理程式的集區。

  3. 請確定代理程式已啟用。

  4. 瀏覽至 [功能] 索引標籤:

    1. 從 [ 代理程式集區] 索引卷標中,選取所需的代理程式集區。

      從 [代理程式集區] 中,選取所需的代理程式集區。

    2. 選取 [ 代理程式 ],然後選擇所需的代理程式。

      選取 [代理程式],然後選擇代理程式。

    3. 選擇 [功能] 索引標籤。

      選擇 [功能] 索引標籤。

      注意

      Microsoft 裝載的代理程式不會顯示系統功能。 如需 Microsoft 裝載代理程式上安裝的軟體清單,請參閱 使用 Microsoft 裝載的代理程式

    1. 從 [ 代理程式集區 ] 索引卷標中,選取所需的集區。

      選取所需的集區。

    2. 選取 [ 代理程式 ],然後選擇所需的代理程式。

      選取 [代理程式],然後選擇所需的代理程式。

    3. 選擇 [功能] 索引標籤。

      [代理程式功能] 索引標籤。

    1. 從 [ 代理程式集區 ] 索引卷標中,選取所需的集區。

      選取所需的索引標籤 2019。

    2. 選取 [ 代理程式 ],然後選擇所需的代理程式。

      選擇所需的代理程式 2019。

    3. 選擇 [功能] 索引標籤。

      選擇 [功能] 索引標籤,2019。

  5. 尋找 Agent.Version 功能。 您可以針對最新的已發佈代理程式版本檢查此值。 請參閱 Azure Pipelines 代理程式 ,並檢查頁面以取得列出的最高版本號碼。

  6. 當每個代理程式執行需要較新版本代理程式的工作時,就會自動更新它本身。 如果您想要手動更新某些代理程式,請以滑鼠右鍵按下集區,然後選取 [ 更新所有代理程式]。

我可以更新屬於 Azure DevOps Server 集區一部分的代理程式嗎?

是。 從 Azure DevOps Server 2019 開始,您可以設定伺服器來尋找本機磁碟上的代理程式套件檔案。 此組態將會覆寫伺服器發行時隨附的預設版本。 當伺服器無法存取因特網時,也會套用此案例。

  1. 從可存取因特網的計算機,從 Azure Pipelines Agent GitHub Releases 頁面下載最新版的代理程式套件檔案(.zip或.tar.gz窗體)。

  2. 使用您選擇的方法,將下載的套件檔案傳輸至每個 Azure DevOps Server 應用層(例如 USB 磁碟驅動器、網路傳輸等等)。 將代理程式檔案放在下列資料夾下:

  • Windows:%ProgramData%\Microsoft\Azure DevOps\Agents
  • Linux:usr/share/Microsoft/Azure DevOps/Agents
  • macOS: usr/share/Microsoft/Azure DevOps/Agents

如果不存在,請 建立 Agents 資料夾。

  1. 一切準備就緒! 您的 Azure DevOps Server 現在會在更新代理程式時使用本機檔案。 當每個代理程式執行需要較新版本代理程式的工作時,就會自動更新它本身。 但如果您想要手動更新某些代理程式,請以滑鼠右鍵按兩下集區,然後選擇 [ 更新所有代理程式]。

如何? 確定我有最新的 v2 代理程式版本?

  1. 瀏覽至 [ 代理程式集區 ] 索引標籤:

    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。

  2. 按兩下包含代理程式的集區。

  3. 請確定代理程式已啟用。

  4. 瀏覽至 [功能] 索引標籤:

    1. 從 [ 代理程式集區] 索引卷標中,選取所需的代理程式集區。

      從 [代理程式集區] 中,選取所需的代理程式集區。

    2. 選取 [ 代理程式 ],然後選擇所需的代理程式。

      選取 [代理程式],然後選擇代理程式。

    3. 選擇 [功能] 索引標籤。

      選擇 [功能] 索引標籤。

      注意

      Microsoft 裝載的代理程式不會顯示系統功能。 如需 Microsoft 裝載代理程式上安裝的軟體清單,請參閱 使用 Microsoft 裝載的代理程式

    1. 從 [ 代理程式集區 ] 索引卷標中,選取所需的集區。

      選取所需的集區。

    2. 選取 [ 代理程式 ],然後選擇所需的代理程式。

      選取 [代理程式],然後選擇所需的代理程式。

    3. 選擇 [功能] 索引標籤。

      [代理程式功能] 索引標籤。

    1. 從 [ 代理程式集區 ] 索引卷標中,選取所需的集區。

      選取所需的索引標籤 2019。

    2. 選取 [ 代理程式 ],然後選擇所需的代理程式。

      選擇所需的代理程式 2019。

    3. 選擇 [功能] 索引標籤。

      選擇 [功能] 索引標籤,2019。

  5. 尋找 Agent.Version 功能。 您可以針對最新的已發佈代理程式版本檢查此值。 請參閱 Azure Pipelines 代理程式 ,並檢查頁面以取得列出的最高版本號碼。

  6. 當每個代理程式執行需要較新版本代理程式的工作時,就會自動更新它本身。 如果您想要手動更新某些代理程式,請以滑鼠右鍵按下集區,然後選取 [ 更新所有代理程式]。

我可以更新屬於 Azure DevOps Server 集區一部分的 v2 代理程式嗎?

是。 從 Azure DevOps Server 2019 開始,您可以設定伺服器來尋找本機磁碟上的代理程式套件檔案。 此組態將會覆寫伺服器發行時隨附的預設版本。 當伺服器無法存取因特網時,也會套用此案例。

  1. 從可存取因特網的計算機,從 Azure Pipelines Agent GitHub Releases 頁面下載最新版的代理程式套件檔案(.zip或.tar.gz窗體)。

  2. 使用您選擇的方法,將下載的套件檔案傳輸至每個 Azure DevOps Server 應用層(例如 USB 磁碟驅動器、網路傳輸等等)。 將代理程式檔案放在資料夾下 %ProgramData%\Microsoft\Azure DevOps\Agents 。 如果不存在,請 建立 Agents 資料夾。

  3. 一切準備就緒! 您的 Azure DevOps Server 現在會在更新代理程式時使用本機檔案。 當每個代理程式執行需要較新版本代理程式的工作時,就會自動更新它本身。 但如果您想要手動更新某些代理程式,請以滑鼠右鍵按兩下集區,然後選擇 [ 更新所有代理程式]。

我正在執行防火牆,而我的程式碼是 Azure Repos。 代理程式需要與哪些 URL 通訊?

如果您在防火牆後方的安全網路中執行代理程式,請確定代理程式可以起始與下列 URL 和 IP 位址的通訊。

網域 URL 描述
https://{organization_name}.pkgs.visualstudio.com 使用網域的組織使用 {organization_name}.visualstudio.com Azure DevOps 封裝 API
https://{organization_name}.visualstudio.com 針對使用網域的組織{organization_name}.visualstudio.com
https://{organization_name}.vsblob.visualstudio.com 使用網域的組織使用 {organization_name}.visualstudio.com Azure DevOps 遙測
https://{organization_name}.vsrm.visualstudio.com 使用 {organization_name}.visualstudio.com 網域的組織發行管理服務
https://{organization_name}.vssps.visualstudio.com 使用網域的組織使用 {organization_name}.visualstudio.com Azure DevOps Platform Services
https://{organization_name}.vstmr.visualstudio.com 使用網域的組織使用 {organization_name}.visualstudio.com Azure DevOps Test Management Services
https://*.blob.core.windows.net Azure Artifacts
https://*.dev.azure.com 針對使用網域的組織dev.azure.com
https://*.vsassets.io 透過 CDN 的 Azure 成品
https://*.vsblob.visualstudio.com 使用網域的組織使用 dev.azure.com Azure DevOps 遙測
https://*.vssps.visualstudio.com 使用網域的組織使用 dev.azure.com Azure DevOps Platform Services
https://*.vstmr.visualstudio.com 使用網域的組織使用 dev.azure.com Azure DevOps Test Management Services
https://app.vssps.visualstudio.com 針對使用網域的組織{organization_name}.visualstudio.com
https://dev.azure.com 針對使用網域的組織dev.azure.com
https://login.microsoftonline.com 檢視 Microsoft Entra 登入記錄
https://management.core.windows.net Azure 管理 API 的
https://vstsagentpackage.azureedge.net 代理程式套件

若要確保您的組織可搭配任何現有的防火牆或IP限制運作,請確定 dev.azure.com 並開啟並 *dev.azure.com 更新允許列出的IP,以根據您的IP版本包含下列IP位址。 如果您目前允許列出 13.107.6.18313.107.9.183 IP位址,請保留它們,因為您不需要移除它們。

IPv4 範圍

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

IPv6 範圍

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

注意

如需允許位址的詳細資訊,請參閱 允許的位址清單和網路連線

如何? 使用自我簽署憑證執行代理程式嗎?

注意

使用自我簽署憑證執行代理程式僅適用於 Azure DevOps Server。

使用自我簽署憑證執行代理程式

如何? 在 Web Proxy 後方執行代理程式嗎?

在 Web Proxy 後方執行代理程式

如何? 重新啟動代理程式

如果您是以互動方式執行代理程式,請參閱以互動方式執行中的重新啟動指示。 如果您是以服務身分執行代理程式,請依照執行身分服務中的步驟重新啟動代理程式。

如何? 為每個個別代理程式設定不同的環境變數?

在代理程式的根目錄下建立 .env 檔案,並將您想要設定的環境變數放入檔案中,格式如下:

MyEnv0=MyEnvValue0
MyEnv1=MyEnvValue1
MyEnv2=MyEnvValue2
MyEnv3=MyEnvValue3
MyEnv4=MyEnvValue4

如何? 設定代理程式略過 Web Proxy 並連線到 Azure Pipelines?

如果您想要讓代理程式略過 Proxy 並直接連線到 Azure Pipelines,則您應該設定 Web Proxy 以讓代理程式存取下列 URL。

針對使用網域的組織 *.visualstudio.com

https://login.microsoftonline.com
https://app.vssps.visualstudio.com 
https://{organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com
https://{organization_name}.pkgs.visualstudio.com
https://{organization_name}.vssps.visualstudio.com

針對使用網域的組織 dev.azure.com

https://dev.azure.com
https://*.dev.azure.com
https://login.microsoftonline.com
https://management.core.windows.net
https://vstsagentpackage.azureedge.net
https://vssps.dev.azure.com

若要確保您的組織可搭配任何現有的防火牆或IP限制運作,請確定 dev.azure.com 並開啟並 *dev.azure.com 更新允許列出的IP,以根據您的IP版本包含下列IP位址。 如果您目前允許列出 13.107.6.18313.107.9.183 IP位址,請保留它們,因為您不需要移除它們。

IPv4 範圍

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

IPv6 範圍

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

注意

此程式可讓代理程式略過 Web Proxy。 您的組建管線和腳本仍然必須針對您在組建中執行的每個工作和工具,處理略過您的 Web Proxy。

例如,如果您使用 NuGet 工作,您必須設定 Web Proxy 以支援略過裝載您使用之 NuGet 摘要的伺服器 URL。

我在上述各節中使用 TFS 和 URL 不適用於我。 我可以在哪裡取得協助?

網站設定和安全性

我使用內部部署 TFS,但看不到其中一些功能。 為什麼呢?

部分功能僅適用於 Azure Pipelines ,但尚未提供內部部署。 如果您已 升級至最新版的 TFS,某些功能可在內部部署使用。

什麼是為代理程式服務啟用SERVICE_SID_TYPE_UNRESTRICTED?

在 Windows Server 上設定代理程式軟體時,您可以從下列提示指定服務安全性識別碼。

Enter enable SERVICE_SID_TYPE_UNRESTRICTED for agent service (Y/N) (press enter for N)

舊版的代理程式軟體會將服務安全性標識元類型設定為 SERVICE_SID_TYPE_NONE,這是目前代理程式版本的預設值。 若要將安全性服務識別元類型設定為 SERVICE_SID_TYPE_UNRESTRICTED,請按 Y

如需詳細資訊,請參閱SERVICE_SID_INFO結構和安全性標識符