自我裝載的 Windows 代理程式
Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019 |TFS 2018
注意
管線小組正在發行目前處於預覽狀態的 3.x 代理程式軟體版本。 如需詳細資訊,請參閱 代理程式軟體第 3 版預覽。
若要建置和部署 Windows、Azure 和其他 Visual Studio 解決方案,您需要至少一個 Windows 代理程式。 Windows 代理程式也可以建置 JAVA 和 Android 應用程式。
開始之前:
- 如果您的程式碼位於 Azure Pipelines 中,且 Microsoft 裝載的代理程式 符合您的需求,您可以略過設定自我裝載的 Windows 代理程式。
- 如果您的程式碼位於內部部署 Team Foundation Server (TFS) 2015 伺服器,請參閱在 Windows 上部署內部部署 TFS 2015 的代理程式。
- 否則,您已前往正確的位置,在 Windows 上設定代理程式。 繼續進行下一節。
瞭解代理程式
如果您已經知道代理程式是什麼及其運作方式,請放心地直接跳到下列各節。 但是,如果您想要更多有關其用途及其運作方式的背景,請參閱 Azure Pipelines 代理程式。
檢查先決條件
請確定您的電腦具有下列必要條件:
- 如果使用用戶端 OS) ,Windows 7 SP1 ESU、8.1、10 或 11 (
- 如果使用伺服器 OS) ,則為 Windows 2012 或更高版本 (
- PowerShell 3.0 或更高版本
- .NET Framework 4.6.2 或更高版本
重要
從 2019 年 12 月開始,組建代理程式的最小必要 .NET 版本為 4.6.2 或更高版本。
建議使用:
- Visual Studio 建置工具 (2015 或更高版本)
如果您要從 Subversion 存放庫建置,則必須在電腦上安裝 Subversion 用戶端 。
您應該第一次手動執行代理程式設定。 當您瞭解代理程式的運作方式,或想要自動設定許多代理程式之後,請考慮使用 自動設定。
硬體規格
代理程式的硬體規格會隨著您的需求、小組大小等而有所不同。無法提出將套用至每個人的一般建議。 作為參考點,Azure DevOps 小組會使用利用 託管代理程式的管線來建置託管的代理程式程式碼。 另一方面,大部分的 Azure DevOps 程式碼是由執行 4 個自我裝載代理程式的 24 核心伺服器類別機器所建置。
準備許可權
自我裝載代理程式的資訊安全性
設定代理程式的使用者需要集區管理員許可權,但執行代理程式的使用者則不需要。
代理程式所控制的資料夾應盡可能限制為最少的使用者,而且它們包含可解密或外泄的秘密。
Azure Pipelines 代理程式是一種軟體產品,其設計目的是執行從外部來源下載的程式碼。 它原本可能是遠端程式碼執行 (RCE) 攻擊的目標。
因此,請務必考慮管線代理程式每個個別使用方式的相關威脅模型來執行工作,並決定可以授與執行代理程式之使用者的最小許可權、代理程式執行所在的電腦、具有管線定義寫入權限的使用者、儲存 yaml 的 git 存放庫、 或控制新管線集區存取權的使用者群組。
最佳做法是讓執行代理程式的身分識別與具有將代理程式連線到集區之許可權的身分識別不同。 產生認證 (和其他代理程式相關檔案的使用者) 與需要讀取認證的使用者不同。 因此,請謹慎考慮授與代理程式電腦本身的存取權,以及包含敏感性檔案的代理程式資料夾,例如記錄和成品。
只有 DevOps 系統管理員和執行代理程式程式程式的使用者身分識別,才能授與代理程式資料夾的存取權。 系統管理員可能需要調查檔案系統,以瞭解組建失敗或取得記錄檔,才能回報 Azure DevOps 失敗。
決定您將使用的使用者
您必須註冊代理程式,才能進行單次步驟。 有權 管理代理程式佇列 的人員必須完成這些步驟。 代理程式不會在日常作業中使用此人員的認證,但必須完成註冊。 深入瞭解 代理程式如何通訊。
使用 PAT) (個人存取權杖進行驗證
- 使用您打算在 Team Foundation Server 入口網站中使用的使用者帳戶登入, (
https://{your-server}:8080/tfs/
) 。
- 使用您打算在 Azure DevOps Server 入口
https://{your-server}/DefaultCollection/
網站中使用的使用者帳戶登入, () 。
- 使用您計畫在 Azure DevOps 組織 (
https://dev.azure.com/{your_organization}
) 中使用的使用者帳戶登入。
從首頁開啟您的設定檔。 移至您的安全性詳細資料。
-
注意
如果您要設定部署群組代理程式,或在註冊 VM 環境資源時看到錯誤,您必須將 PAT 範圍設定為 [所有可存取的組織]。
從您的首頁開啟使用者設定,然後選取 [個人存取權杖]。
-
針對範圍選取 [代理程式組件區 (讀取、管理) ,並確定已清除所有其他方塊。 如果是 部署群組 代理程式,請針對範圍選取 [ 部署群組 (讀取、管理) ,並確定已清除所有其他方塊。
選取 [建立新的個人存取權杖] 視窗視窗底部的 [顯示所有範圍],以查看範圍的完整清單。
複製權杖。 當您設定代理程式時,將會使用此權杖。
確認使用者具有許可權
請確定您要使用的使用者帳戶具有註冊代理程式的許可權。
使用者是 Azure DevOps 組織擁有者或 TFS 或Azure DevOps Server系統管理員嗎? 請在這裡停止,您有許可權。
否則:
開啟瀏覽器並流覽至 Azure Pipelines 組織的[代理程式組件區] 索引標籤,或Azure DevOps Server或 TFS 伺服器:
選擇 [Azure DevOps]、 [組織設定]。
選擇 [代理程式組件區]。
選擇 [Azure DevOps]、 [集合設定]。
選擇 [代理程式組件區]。
選擇 [Azure DevOps]、 [集合設定]。
選擇 [代理程式組件區]。
流覽至您的專案,然後選擇 [設定] (齒輪圖示) >[代理程式佇列]。
選擇 [管理集區]。
選取頁面右側的集區,然後按一下 [ 安全性]。
如果未顯示您要使用的使用者帳戶,請取得系統管理員來新增它。 系統管理員可以是代理程式組件區管理員、Azure DevOps 組織擁有者或TFS 或Azure DevOps Server系統管理員。
如果是部署群組代理程式,系統管理員可以是部署群組管理員、Azure DevOps 組織擁有者或TFS 或Azure DevOps Server系統管理員。
您可以在Azure Pipelines的 [部署群組] 頁面的 [安全性] 索引標籤中,將使用者新增至部署群組管理員角色。
注意
如果您看到如下的訊息:很抱歉,我們無法新增身分識別。請嘗試不同的身分識別。您可能已針對組織擁有者或 TFS 或Azure DevOps Server系統管理員遵循上述步驟。 您不需要執行任何動作;您已經擁有管理代理程式佇列的許可權。
下載並設定代理程式
Azure Pipelines
使用您已備妥許可權的帳戶登入電腦,如上所述。
在您的網頁瀏覽器中,登入 Azure Pipelines,然後流覽至 [代理程式組件區] 索引標籤:
選擇 [Azure DevOps]、 [組織設定]。
選擇 [代理程式組件區]。
選擇 [Azure DevOps]、 [集合設定]。
選擇 [代理程式組件區]。
選擇 [Azure DevOps]、 [集合設定]。
選擇 [代理程式組件區]。
流覽至您的專案,然後選擇 [設定] (齒輪圖示) >[代理程式佇列]。
選擇 [管理集區]。
選取 [預設 集區],選取 [ 代理程式 ] 索引標籤,然後選擇 [ 新增代理程式]。
在 [ 取得代理程式 ] 對話方塊中,選擇 [Windows]。
在左窗格中,選取電腦上已安裝 Windows OS 版本的處理器架構。 x64 代理程式版本適用于 64 位 Windows,而 x86 版本則適用于 32 位 Windows。 如果您不確定已安裝哪個版本的 Windows, 請遵循這些指示來找出。
在右窗格中,按一下 [ 下載] 按鈕。
請依照頁面上的指示下載代理程式。
將代理程式解壓縮到您選擇的目錄中。 請確定目錄的路徑不包含空格,因為工具和腳本不一定會正確逸出空格。 建議的資料夾是
C:\agents
。 在下載資料夾中擷取或其他使用者資料夾可能會導致許可權問題。 然後執行config.cmd
。 這會詢問您一系列設定代理程式的問題。
Azure DevOps Server 2019 和 Azure DevOps Server 2020
使用您已備妥許可權的帳戶登入電腦,如上所述。
在您的網頁瀏覽器中,登入 Azure DevOps Server 2019,然後流覽至[代理程式組件區] 索引標籤:
選擇 [Azure DevOps]、 [組織設定]。
選擇 [代理程式組件區]。
選擇 [Azure DevOps]、 [集合設定]。
選擇 [代理程式組件區]。
選擇 [Azure DevOps]、 [集合設定]。
選擇 [代理程式組件區]。
流覽至您的專案,然後選擇 [設定] (齒輪圖示) >[代理程式佇列]。
選擇 [管理集區]。
按一下 [下載代理程式]。
在 [ 取得代理程式 ] 對話方塊中,按一下 [Windows]。
在左窗格中,選取電腦上已安裝 Windows OS 版本的處理器架構。 x64 代理程式版本適用于 64 位 Windows,而 x86 版本則適用于 32 位 Windows。 如果您不確定已安裝哪個版本的 Windows, 請遵循這些指示來找出。
在右窗格中,按一下 [ 下載] 按鈕。
請依照頁面上的指示下載代理程式。
將代理程式解壓縮到您選擇的目錄中。 請確定目錄的路徑不包含空格,因為工具和腳本不一定會正確逸出空格。 建議的資料夾是
C:\agents
。 在下載資料夾中擷取或其他使用者資料夾可能會導致許可權問題。 然後執行config.cmd
。 這會詢問您一系列設定代理程式的問題。
TFS 2018
使用您已備妥許可權的帳戶登入電腦,如上所述。
在您的網頁瀏覽器中,登入 TFS,然後流覽至 [代理程式組件區] 索引標籤:
流覽至您的專案,然後選擇 [設定] (齒輪圖示) >[代理程式佇列]。
選擇 [管理集區]。
按一下 [下載代理程式]。
在 [ 取得代理程式 ] 對話方塊中,按一下 [Windows]。
按一下 [ 下載] 按鈕。
請依照頁面上的指示下載代理程式。
將代理程式解壓縮到您選擇的目錄中。 請確定目錄的路徑不包含空格,因為工具和腳本不一定會正確逸出空格。 建議的資料夾是
C:\agents
。 在下載資料夾中擷取或其他使用者資料夾可能會導致許可權問題。 然後執行config.cmd
。
重要
基於安全性考慮,我們強烈建議確保代理程式資料夾 (C:\agents
) 只能由系統管理員編輯。
注意
請避免針對代理程式設定使用以 mintty 為基礎的殼層,例如 git-bash。 Mintty 與原生輸入/輸出 Windows API 完全不相容, (以下是) 的一些相關資訊,在此案例中無法保證正確設定腳本的工作。
伺服器 URL 和驗證
當安裝程式要求伺服器 URL 時,請回答 Azure DevOps Services https://dev.azure.com/{your-organization}
。
當安裝程式要求伺服器 URL 時,針對 TFS 回答 https://{your_server}/tfs
。
當安裝程式要求驗證類型時,請選擇 PAT。 然後將 您建立的 PAT 權杖 貼到命令提示字元視窗中。
注意
使用 PAT 作為驗證方法時,PAT 權杖只會在代理程式的初始設定期間使用。 稍後,如果 PAT 到期或需要更新,則代理程式不需要進一步變更。
重要
請確定您的伺服器已 設定為支援您想要使用的驗證方法 。
當您將代理程式設定為連線到 TFS 時,您有下列選項:
互生 使用基本驗證連線到 TFS。 選取 [替代] 之後,系統會提示您輸入認證。
洽談透過 NTLM 或 Kerberos 等Windows 驗證配置,以非登入使用者以外的使用者身分連線到 TFS。 選取 [交涉] 之後,系統會提示您輸入認證。
整合式 (預設) 透過 NTLM 或 Kerberos 等Windows 驗證配置,使用登入使用者的認證將 Windows 代理程式連線到 TFS。 選擇此方法之後,系統不會提示您輸入認證。
派特 僅支援 Azure Pipelines 和 TFS 2017 和更新版本。 選擇 PAT 之後,將 您建立的 PAT 權杖 貼到命令提示字元視窗中。 如果您的 TFS 實例和代理程式電腦不在信任的網域中,請使用個人存取權杖 (PAT) 。 PAT 驗證是由 TFS 實例處理,而不是網域控制站。
注意
使用 PAT 作為驗證方法時,PAT 權杖只會用於代理程式的初始設定。 如果需要重新產生 PAT,代理程式不需要進一步的變更。
若要深入瞭解 ,請參閱與 Azure Pipelines 或 TFS 通訊。
選擇互動式或服務模式
如需是否要在互動式模式或服務中執行代理程式的指引,請參閱 代理程式:互動式與服務。
如果您選擇以服務 (執行,建議您) ,您執行的使用者名稱應該為 20 個字元或更少。
執行代理程式
以互動方式執行
如果您已將代理程式設定為以互動方式執行,請執行它:
.\run.cmd
若要重新開機代理程式,請按 Ctrl+C 停止代理程式,然後執行 run.cmd
以重新開機代理程式。
執行一次
針對設定為以互動方式執行的代理程式,您可以選擇讓代理程式只接受一個作業。 若要在此組態中執行:
.\run.cmd --once
此模式中的代理程式只會接受一個作業,然後正常地向下微調, (適用于在Docker中執行的服務,例如 Azure 容器執行個體) 。
以服務身分執行
如果您將代理程式設定為以服務的形式執行,它會自動啟動。 您可以從服務嵌入式管理單元檢視和控制代理程式執行狀態。 執行 services.msc
並尋找下列其中一項:
- 「Azure Pipelines Agent (代理程式的名稱) 」。
- 「VSTS 代理程式 (代理程式名稱) 」。
- 「vstsagent. (組織名稱) . (代理程式名稱) 」。
若要重新開機代理程式,請以滑鼠右鍵按一下專案,然後選擇 [ 重新開機]。
注意
如果您需要變更代理程式的登入帳戶,請勿從服務嵌入式管理單元執行此動作。 相反地,請參閱下列資訊以重新設定代理程式。
若要使用您的代理程式,請使用代理程式的集區執行 作業 。 如果您未選擇不同的集區,您的代理程式將會位於 預設 集區中。
取代代理程式
若要取代代理程式,請遵循 下載並再次設定代理程式 步驟。
當您使用與已經存在之代理程式相同的名稱來設定代理程式時,系統會詢問您是否要取代現有的代理程式。 如果您回答 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>
- 指定格式domain\userName
為 或 的 Windows 使用者名稱userName@domain.com
--password <password>
- 指定密碼
集區和代理程式名稱
--pool <pool>
- 要加入之代理程式的集區名稱--agent <agent>
- 代理程式名稱--replace
- 取代集區中的代理程式。 如果另一個代理程式以相同名稱接聽,它將會開始失敗併發生衝突
代理程式設定
--work <workDirectory>
- 工作目錄,其中會儲存作業資料。 預設為_work
在代理程式目錄的根目錄下。 工作目錄是由指定的代理程式所擁有,不應在多個代理程式之間共用。--acceptTeeEula
- 僅接受 macOS 和 Linux (使用者授權合約Team Explorer Everywhere)--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')--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
金鑰。 如果此機碼存在,請關閉並設定 Registry Editor
代理程式,方法是執行 .\config.cmd
命令 (,而不需從代理程式資料夾) 。 在回答問題 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
來加以指定。
常見問題集
如何?確定我有最新的 v2 代理程式版本嗎?
流覽至 [代理程式組件區 ] 索引標籤:
選擇 [Azure DevOps]、 [組織設定]。
選擇 [代理程式組件區]。
選擇 [Azure DevOps]、 [集合設定]。
選擇 [代理程式組件區]。
選擇 [Azure DevOps]、 [集合設定]。
選擇 [代理程式組件區]。
流覽至您的專案,然後選擇 [設定] (齒輪圖示) >[代理程式佇列]。
選擇 [管理集區]。
按一下包含代理程式的集區。
請確定代理程式已啟用。
流覽至 [功能] 索引標籤:
從 [ 代理程式組件區 ] 索引標籤中,選取所需的代理程式組件區。
選取 [代理程式 ],然後選擇所需的代理程式。
選擇 [ 功能] 索引卷 標。
注意
Microsoft 裝載的代理程式不會顯示系統功能。 如需 Microsoft 裝載代理程式上安裝的軟體清單,請參閱 使用 Microsoft 裝載的代理程式。
從 [ 代理程式組件區 ] 索引標籤中,選取所需的集區。
選取 [代理程式 ],然後選擇所需的代理程式。
選擇 [ 功能] 索引卷 標。
從 [ 代理程式組件區 ] 索引標籤中,選取所需的集區。
選取 [代理程式 ],然後選擇所需的代理程式。
選擇 [ 功能] 索引卷 標。
選取所需的代理程式,然後選擇 [功能] 索引 卷 標。
尋找
Agent.Version
功能。 您可以針對最新的已發佈代理程式版本檢查此值。 請參閱 Azure Pipelines 代理程式 ,並檢查頁面中所列的最高版本號碼。當每個代理程式執行需要較新版本代理程式的工作時,每個代理程式都會自動更新本身。 如果您想要手動更新某些代理程式,請以滑鼠右鍵按一下集區,然後選取 [ 更新所有代理程式]。
我可以更新屬於Azure DevOps Server集區一部分的 v2 代理程式嗎?
是的 從 Azure DevOps Server 2019 開始,您可以設定伺服器來尋找本機磁片上的代理程式套件檔案。 此組態將會覆寫伺服器發行時隨附的預設版本。 當伺服器無法存取網際網路時,也會套用此案例。
從具有網際網路存取的電腦,從 Azure Pipelines Agent GitHub Releases 頁面下載最新版的代理程式套件檔案 (.zip或 .tar.gz 表單) 。
使用您選擇的方法,將下載的套件檔案傳送至每個Azure DevOps Server應用層 (,例如 USB 磁片磁碟機、網路傳輸等等) 。 將代理程式檔案放在 資料夾底下
%ProgramData%\Microsoft\Azure DevOps\Agents
。您全都已設定! 每當更新代理程式時,您的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 Release Management服務 |
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 測試管理服務 |
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 測試管理服務 |
https://app.vssps.visualstudio.com |
針對使用網域的組織 {organization_name}.visualstudio.com |
https://dev.azure.com |
針對使用網域的組織 dev.azure.com |
https://login.microsoftonline.com |
Azure Active Directory 登入 |
https://management.core.windows.net |
Azure 管理 API 的 |
https://vstsagentpackage.azureedge.net |
代理程式套件 |
若要確保您的組織使用任何現有的防火牆或 IP 限制,請確定 dev.azure.com
和 已開啟並 *dev.azure.com
更新允許列出的 IP,以根據您的 IP 版本包含下列 IP 位址。 如果您目前允許列出 13.107.6.183
和 13.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 後方執行代理程式嗎?
如何?重新開機代理程式
如果您是以互動方式執行代理程式,請參閱 以互動方式執行中的重新開機指示。 如果您要以服務的形式執行代理程式,請依照 執行身分服務中的步驟重新開機代理程式。
如何?為每個個別代理程式設定不同的環境變數嗎?
在代理程式的根目錄下建立 .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.183
和 13.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,有些功能可在內部部署使用。