自我載入的 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 或更高版本。
建議配備:
- Visual Studio 建置工具 (2015 或更高版本)
如果您要從 Subversion 存放庫建置,則必須 在電腦上安裝 Subversion 用戶端 。
您第一次應該手動執行代理程式設定。 在您瞭解代理程式的運作方式,或想要自動設定許多代理程序之後,請考慮使用 自動設定。
硬體規格
代理程式的硬體規格會隨您的需求、小組大小等而有所不同。無法提出適用於每個人的一般建議。 作為參考點,Azure DevOps 小組會使用利用 託管代理程式的管線來建置託管的代理程序代碼。 另一方面,大部分的 Azure DevOps 程式代碼是由執行 4 個自我裝載代理程式的 24 核心伺服器類別機器所建置。
準備許可權
自我裝載式代理程式的資訊安全
設定代理程式的使用者需要集區管理員權限,但是執行代理程式的使用者則不需要。
代理程式所控制的資料夾應盡可能限制為少數使用者,因為其中包含可能會遭到解密或外洩的祕密。
Azure Pipelines 代理程式是一種軟體產品,其設計目的是執行從外部來源下載的程式碼。 它本質上可能是遠端程式代碼執行 (RCE) 攻擊的目標。
因此,請務必考慮管線代理程式每個個別使用方式的威脅模型來執行工作,並決定可以將哪些最低許可權授與執行代理程式的使用者、代理程序執行所在的計算機、具有管線定義寫入許可權的使用者、yaml 儲存所在的 git 存放庫、 或控制新管線集區存取權的使用者群組。
最佳做法是讓執行代理程式的身分識別與具有將代理程式連線到集區之許可權的身分識別不同。 產生認證 (和其他代理程式相關檔案) 的使用者與需要讀取認證的使用者不同。 因此,請務必仔細考慮授與代理程式計算機本身的存取權,以及包含敏感性檔案的代理程序資料夾,例如記錄和成品。
僅針對 DevOps 系統管理員和執行代理程式程序的使用者身分識別授與存取權很合理。 管理員 istrators 可能需要調查文件系統,以瞭解建置失敗或取得記錄檔,才能回報 Azure DevOps 失敗。
決定您將使用的使用者
在單次步驟中,您必須註冊代理程式。 有權 管理代理程式佇列 的人員必須完成這些步驟。 代理程式不會在日常作業中使用此人的認證,但必須完成註冊。 深入瞭解 代理程式如何通訊。
使用個人存取權杖進行驗證 (PAT)
- 使用您打算在 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 伺服器的 [代理程式集 區] 索引標籤:
登入您的組織 (
https://dev.azure.com/{yourorganization}
)。選擇 [Azure DevOps]、 [組織設定]。
選擇 [ 代理程式集區]。
登入您的專案集合 (
http://your-server/DefaultCollection
)。選擇 [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,然後流覽至 [代理程式集 區] 索引標籤:
登入您的組織 (
https://dev.azure.com/{yourorganization}
)。選擇 [Azure DevOps]、 [組織設定]。
選擇 [ 代理程式集區]。
登入您的專案集合 (
http://your-server/DefaultCollection
)。選擇 [Azure DevOps]、 [集合設定]。
選擇 [ 代理程式集區]。
選擇 [Azure DevOps]、 [集合設定]。
選擇 [ 代理程式集區]。
選取 [ 預設 集區],選取 [代理程式] 索引 卷標,然後選擇 [ 新增代理程式]。
在 [ 取得代理程式 ] 對話框中,選擇 [Windows]。
在左窗格中,選取電腦上已安裝 Windows 作業系統版本的處理器結構。 x64 版本適用於 64 位 Windows,而 x86 版本則適用於 32 位 Windows。 如果您不確定已安裝哪個 Windows 版本, 請遵循這些指示來找出。
在右窗格中,按兩下 [ 下載] 按鈕。
請依照頁面上的指示下載代理程式。
將代理程式解壓縮到您選擇的目錄中。 請確定目錄的路徑不包含空格,因為工具和腳本不一定會正確逸出空格。 建議的資料夾為
C:\agents
。 在下載資料夾中擷取或其他使用者資料夾可能會導致許可權問題。 然後執行config.cmd
,並回應一系列問題來設定代理程式。
Azure DevOps Server 2019 和 Azure DevOps Server 2020
使用您已備妥許可權的帳戶登入計算機,如上所述。
在您的網頁瀏覽器中,登入 Azure DevOps Server 2019,然後流覽至 [代理程式集 區] 索引卷標:
登入您的組織 (
https://dev.azure.com/{yourorganization}
)。選擇 [Azure DevOps]、 [組織設定]。
選擇 [ 代理程式集區]。
登入您的專案集合 (
http://your-server/DefaultCollection
)。選擇 [Azure DevOps]、 [集合設定]。
選擇 [ 代理程式集區]。
選擇 [Azure DevOps]、 [集合設定]。
選擇 [ 代理程式集區]。
按兩下 [ 下載代理程式]。
在 [ 取得代理程式] 對話框中,按兩下 [Windows]。
在左窗格中,選取電腦上已安裝 Windows 作業系統版本的處理器結構。 x64 版本適用於 64 位 Windows,而 x86 版本則適用於 32 位 Windows。 如果您不確定已安裝哪個 Windows 版本, 請遵循這些指示來找出。
在右窗格中,按兩下 [ 下載] 按鈕。
請依照頁面上的指示下載代理程式。
將代理程式解壓縮到您選擇的目錄中。 請確定目錄的路徑不包含空格,因為工具和腳本不一定會正確逸出空格。 建議的資料夾為
C:\agents
。 在下載資料夾中擷取或其他使用者資料夾可能會導致許可權問題。 接著,執行config.cmd
。 這會詢問您一系列設定代理程序的問題。
重要
基於安全性考慮,我們強烈建議您確定代理程式資料夾 (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
。
若要重新啟動代理程式,請以滑鼠右鍵按兩下專案,然後選擇 [ 重新啟動]。
注意
如果您需要變更代理程式的登入帳戶,請勿從服務嵌入式管理單元進行。 請改為參閱下列資訊以重新設定代理程式。
若要使用您的代理程式,請使用代理程式的集區執行 作業 。 如果您未選擇不同的集區,您的代理程式將會位於預設集區中。
取代代理程式
若要取代代理程式,請遵循 下載並再次設定代理程式 步驟。
當您使用與已經存在之代理程式相同的名稱來設定代理程式時,系統會詢問您是否要取代現有的代理程式。 如果您回答 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\userName
userName@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
。
常見問題集
如何? 確定我有最新的代理程式版本嗎?
瀏覽至 [ 代理程式集區 ] 索引標籤:
登入您的組織 (
https://dev.azure.com/{yourorganization}
)。選擇 [Azure DevOps]、 [組織設定]。
選擇 [ 代理程式集區]。
登入您的專案集合 (
http://your-server/DefaultCollection
)。選擇 [Azure DevOps]、 [集合設定]。
選擇 [ 代理程式集區]。
選擇 [Azure DevOps]、 [集合設定]。
選擇 [ 代理程式集區]。
按兩下包含代理程式的集區。
請確定代理程式已啟用。
瀏覽至 [功能] 索引標籤:
從 [ 代理程式集區] 索引卷標中,選取所需的代理程式集區。
選取 [ 代理程式 ],然後選擇所需的代理程式。
選擇 [功能] 索引標籤。
注意
Microsoft 裝載的代理程式不會顯示系統功能。 如需 Microsoft 裝載代理程式上安裝的軟體清單,請參閱 使用 Microsoft 裝載的代理程式。
從 [ 代理程式集區 ] 索引卷標中,選取所需的集區。
選取 [ 代理程式 ],然後選擇所需的代理程式。
選擇 [功能] 索引標籤。
從 [ 代理程式集區 ] 索引卷標中,選取所需的集區。
選取 [ 代理程式 ],然後選擇所需的代理程式。
選擇 [功能] 索引標籤。
尋找
Agent.Version
功能。 您可以針對最新的已發佈代理程式版本檢查此值。 請參閱 Azure Pipelines 代理程式 ,並檢查頁面以取得列出的最高版本號碼。當每個代理程式執行需要較新版本代理程式的工作時,就會自動更新它本身。 如果您想要手動更新某些代理程式,請以滑鼠右鍵按下集區,然後選取 [ 更新所有代理程式]。
我可以更新屬於 Azure DevOps Server 集區一部分的代理程式嗎?
是。 從 Azure DevOps Server 2019 開始,您可以設定伺服器來尋找本機磁碟上的代理程式套件檔案。 此組態將會覆寫伺服器發行時隨附的預設版本。 當伺服器無法存取因特網時,也會套用此案例。
從可存取因特網的計算機,從 Azure Pipelines Agent GitHub Releases 頁面下載最新版的代理程式套件檔案(.zip或.tar.gz窗體)。
使用您選擇的方法,將下載的套件檔案傳輸至每個 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 資料夾。
- 一切準備就緒! 您的 Azure DevOps Server 現在會在更新代理程式時使用本機檔案。 當每個代理程式執行需要較新版本代理程式的工作時,就會自動更新它本身。 但如果您想要手動更新某些代理程式,請以滑鼠右鍵按兩下集區,然後選擇 [ 更新所有代理程式]。
如何? 確定我有最新的 v2 代理程式版本?
瀏覽至 [ 代理程式集區 ] 索引標籤:
登入您的組織 (
https://dev.azure.com/{yourorganization}
)。選擇 [Azure DevOps]、 [組織設定]。
選擇 [ 代理程式集區]。
登入您的專案集合 (
http://your-server/DefaultCollection
)。選擇 [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
。 如果不存在,請 建立 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 網域的組織發行管理服務 |
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.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
注意
如需允許位址的詳細資訊,請參閱 允許的位址清單和網路連線。
如何? 使用自我簽署憑證執行代理程式嗎?
注意
使用自我簽署憑證執行代理程式僅適用於 Azure DevOps Server。
如何? 在 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,某些功能可在內部部署使用。
什麼是為代理程式服務啟用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結構和安全性標識符。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應