共用方式為


自託管的 macOS 代理程式

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

本文提供使用 3.x 代理程式軟體 搭配 Azure DevOps Services 和最新版 Azure DevOps Server 的指引。 如需支援 3.x 代理程式的 Azure DevOps Server 版本清單,請參閱 Azure DevOps Server 是否支援 3.x 代理程式

若要建置及部署 Xcode 應用程式,您需要至少一個 macOS 代理程式。 此代理程式也可以建置及部署 Java 和 Android 應用程式。

注意

本文說明如何設定 自我載入代理程式。 如果您使用 Azure DevOps Services 和 Microsoft裝載的代理程式, 符合您的需求,您可以略過設定自我裝載的 macOS 代理程式。

瞭解代理人

如果您已經知道什麼是代理及其運作方式,可以直接閱讀下列各節。 但是,如果您想要更多有關其職責內容及運作方式的背景資訊,請參閱 Azure Pipelines 代理程式

檢查必要條件

  • 支援的作業系統
    • x64
      • macOS 10.15 “Catalina”
      • macOS 11.0 “Big Sur”
      • macOS 12.0 “Monterey”
      • macOS 13.0 “Ventura”
      • macOS 14.0 “Sonoma”
    • ARM64
      • macOS 11.0 “Big Sur”
      • macOS 12.0 “Monterey”
      • macOS 13.0 “Ventura”
      • macOS 14.0 “Sonoma”
  • Git - Git 2.9.0 或更高版本 (建議使用最新版本 - 您可以使用 Homebrew輕鬆安裝 )
  • .NET - 代理程式軟體會在 .NET 6 上執行,但會安裝自己的 .NET 版本,因此沒有 .NET 必要條件。
  • TFVC - 如果您要從 TFVC 存放庫建置,請參閱 TFVC 必要條件

準備權限設定

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

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

自行架設代理程式的資訊安全

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

代理程式所控制的資料夾應限制為盡可能少的使用者,因為它們包含可以解密或外洩的秘密。

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

因此,請務必考慮每一次使用管線代理的威脅模型,以及針對不同的執行案例,決定授予負責執行代理的使用者的最低許可權、代理執行所在的機器、擁有管線定義寫入權限的使用者、存放 yaml 的 git 倉庫,及控制新管線集區存取權的使用者群組。

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

只有 DevOps 系統管理員和執行代理程式的使用者身分識別,具合理性地才能授與代理程式資料夾的存取權。 系統管理員可能需要調查文件系統,以瞭解建置失敗,或取得記錄檔,才能回報 Azure DevOps 失敗。

選擇您要使用的帳戶

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

確認使用者具有許可權

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

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

否則:

  1. 開啟瀏覽器並前往 Azure Pipelines 組織、Azure DevOps Server 或 TFS 伺服器的 Agent 集區 標籤頁:

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

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

      選擇 [組織設定]。

    3. 選擇 代理池

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

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

    2. 選擇 Azure DevOps集合設定

      [選擇集合設定]。

    3. 選擇 Agent 集區

      選擇代理程式集區。

    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. 選擇 Agent 集區

      選擇代理池,2019。

  3. 選取 [預設 集區],選取 [代理] 標籤,然後選擇 新增代理人

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

  5. 請點擊 [下載] 按鈕

  6. 遵循頁面上的指示。

  7. 清除 tar 檔案上的擴充屬性:xattr -c vsts-agent-osx-x64-V.v.v.tar.gz

  8. 將代理程式解壓縮到您選擇的目錄中。 cd 至該目錄,然後執行 ./config.sh。 請確定目錄的路徑不包含空格,因為工具和腳本不一定會正確逸出空格。

伺服器 URL

Azure Pipelines:https://dev.azure.com/{your-organization}

Azure DevOps Server:https://{your_server}/tfs

驗證類型

當您註冊代理程式時,請選擇下列驗證類型,而代理程式設定會提示您輸入每個驗證類型所需的特定其他資訊。 如需詳細資訊,請參閱 自我托管代理驗證選項

以互動方式執行

如需有關在互動模式或服務模式上執行代理程序的指引,請參閱 代理程式:互動模式 vs. 服務模式

若要以互動方式執行代理程式:

  1. 如果您已以服務身分執行代理程式,卸載服務

  2. 執行代理程式。

    ./run.sh
    

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

若要使用代理程式,請使用代理程式的資源池來執行 作業。 如果您未選擇不同的集區,您的代理程式會放在 預設 集區中。

執行一次

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

./run.sh --once

此模式中的代理程式僅接受一項工作,然後優雅地關閉(這對於在 Azure Container Instances 等服務上執行非常有用)。

以已啟動的服務身分執行

我們提供 ./svc.sh 腳本,讓您以 launchd LaunchAgent 服務的形式執行和管理代理程式。 此文稿會在您設定代理程序之後產生。 服務可以存取 UI 來執行 UI 測試。

注意

如果您偏好其他方法,您可以使用任何偏好的服務機制。 請參閱 服務檔案

令牌

在下一節中,會取代這些令牌:

  • {agent-name}

  • {tfs-name}

例如,您已配置了一個名叫 our-osx-agent的代理程式(如上一個範例所示)。 在下列範例中,{tfs-name} 可以是:

  • Azure Pipelines:您組織的名稱。 例如,如果您連線到 https://dev.azure.com/fabrikam,則服務名稱會 vsts.agent.fabrikam.our-osx-agent

  • TFS:內部部署 TFS AT 伺服器的名稱。 例如,如果您連線到 http://our-server:8080/tfs,則服務名稱會 vsts.agent.our-server.our-osx-agent

命令

變更為代理目錄

例如,如果您在主目錄的 myagent 子資料夾中安裝:

cd ~/myagent$

安裝

命令:

./svc.sh install

此命令會建立指向 ./runsvc.shlaunchd plist。 此腳本會設定環境(下一節中的詳細數據),並啟動代理程式的主機。

開始

命令:

./svc.sh start

輸出:

starting vsts.agent.{tfs-name}.{agent-name}
status vsts.agent.{tfs-name}.{agent-name}:

/Users/{your-name}/Library/LaunchAgents/vsts.agent.{tfs-name}.{agent-name}.plist

Started:
13472 0 vsts.agent.{tfs-name}.{agent-name}

如果服務正在執行,左邊的數字是 pid。 如果第二個數位不是零,則發生問題。

地位

命令:

./svc.sh status

輸出:

status vsts.agent.{tfs-name}.{agent-name}:

/Users/{your-name}/Library/LaunchAgents/vsts.{tfs-name}.{agent-name}.testsvc.plist

Started:
13472 0 vsts.agent.{tfs-name}.{agent-name}

如果服務正在執行,則左邊的數字是 pid。 如果第二個數位不是零,則發生問題。

命令:

./svc.sh stop

輸出:

stopping vsts.agent.{tfs-name}.{agent-name}
status vsts.agent.{tfs-name}.{agent-name}:

/Users/{your-name}/Library/LaunchAgents/vsts.{tfs-name}.{agent-name}.testsvc.plist

Stopped

卸載

卸載之前,您應該先停止。

命令:

./svc.sh uninstall

自動登入和鎖定

一般而言,代理程式服務只會在使用者登入之後執行。 如果您希望代理程式服務在機器重新啟動時自動啟動,您可以將電腦設定為在啟動時自動登入和鎖定。 請參閱 將 Mac 設定為啟動期間自動登入 - Apple 支援服務

備註

如需詳細資訊,請參閱部落格文章 Terminally Geeky,了解如何更安全地使用自動登入。 該部落格中提及的 .plist 檔案可能無法再於來源取得,但您可以在這裡找到一份複本:Lifehacker - 在登入之前,讓 OS X 載入您的桌面。

更新環境變數

當您設定服務時,它會為目前的登入使用者擷取一些實用的環境變數快照,例如PATH、LANG、JAVA_HOME、ANT_HOME和MYSQL_PATH。 如果您需要更新變數(例如,安裝一些新軟體之後):

./env.sh
./svc.sh stop
./svc.sh start

環境變數的快照集會儲存在代理程式根目錄下的 .env 檔案中,您也可以直接變更該檔案以套用環境變數變更。

在服務啟動之前執行指示

您也可以執行自己的指示和命令,以在服務啟動時執行。 例如,您可以設定環境或呼叫腳本。

  1. 編輯 runsvc.sh

  2. 使用您的指示取代下列這一行:

    # insert anything to setup env when running as a service
    

服務檔案

當您安裝服務時,會就地放置一些服務檔案。

.plist 服務檔案

已建立 .plist 服務檔案:

~/Library/LaunchAgents/vsts.agent.{tfs-name}.{agent-name}.plist

例如:

~/Library/LaunchAgents/vsts.agent.fabrikam.our-osx-agent.plist

./svc.sh install 從此範本產生此檔案:./bin/vsts.agent.plist.template

.service 檔案

./svc.sh start 讀取 .service 檔案來尋找服務,其中包含上述 plist 服務檔案的路徑。

替代服務機制

我們提供 ./svc.sh 腳本,讓您以 launchd LaunchAgent 服務的方式執行和管理代理程式。 但是,您可以使用任何偏好的服務機制。

您可以使用上述範本來協助產生其他類型的服務檔案。 例如,如果您不需要UI測試,而且不想設定自動登入和鎖定,您可以修改範本來產生以啟動精靈的形式執行的服務。 請參閱 Apple 開發人員連結庫:建立啟動精靈和代理程式

取代代理人

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

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

拿掉並重新設定代理程式

若要移除代理程式:

  1. 停止並卸載服務,如上一節所述。

  2. 拿掉代理程式。

    ./config.sh remove
    
  3. 輸入您的認證。

移除代理程序之後,您可以再次設定它

無人值守設定

您可以從腳本設定代理程式,而不需要人為介入。 您必須傳遞 --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 搭配運作的唯一配置。
    • alt (基本身份驗證)

驗證選項

  • 如果您選擇 --auth pat
    • --token <token> - 指定您的個人存取令牌
    • PAT 是與 Azure DevOps Services 搭配運作的唯一配置。
  • 如果您選擇 --auth negotiate--auth alt
    • --userName <userName> - 指定使用者名稱
    • --password <password> - 指定密碼

集區和代理程式名稱

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

代理程式設定

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

僅供部署群組使用

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

僅限環境

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

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

診斷

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

./run.sh --diagnostics

這會透過診斷套件執行,以協助您針對問題進行疑難解答。 診斷功能可從代理程式 2.165.0 版開始使用。

自行架設代理程式的網路診斷

Agent.Diagnostic 的值設定為 true,以收集額外的記錄,這些記錄可用於排除自我托管代理的網路問題。 如需詳細資訊,請參閱 自我載入代理程式的網路診斷

其他選項的說明

若要瞭解其他選項:

./config.sh --help

說明提供有關驗證替代方案和無人值守配置的資訊。

能力

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

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

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

重要

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

如果您想要將環境變數排除在功能之外,可以透過設定環境變數 VSO_AGENT_IGNORE,並提供以逗號分隔的要忽略變數清單來達成。

常見問題

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

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

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

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

      選擇 [組織設定]。

    3. 選擇 Agent 集區

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

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

    2. 選擇 Azure DevOps集合設定

      [選擇集合設定]。

    3. 選擇 代理程式集區

      選擇代理程式集區。

    1. 選擇 Azure DevOps集合設定

      集合設定 2019。

    2. 選擇 Agent 集區

      選擇代理集區,2019。

  2. 點擊包含代理的集區。

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

  4. 瀏覽至 [功能] 頁籤:

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

      從代理程式集區選取所需的代理程式集區。

    2. 選取 代理人 並選擇所需的代理人。

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

    3. 選擇 [功能] 選項卡。

      選擇 [功能] 索引標籤。

      注意

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

    1. 從 [Agent 集區] 分頁中,選取所需的集區。

      選取所需的集區。

    2. 選取 代理程式 並選擇所需的代理程式。

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

    3. 選擇「功能」標籤。

      Agent 能力標籤。

    1. 從 [代理集區] 選項卡中,選取所需的代理集區。

      選取所需的索引標籤 2019

    2. 選取 代理 並選擇所需的代理。

      選擇所需的代理程式,2019。

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

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

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

  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 現在會在更新代理程式時使用本機檔案。 當每個代理程式執行需要較新版本代理程式的工作時,就會自動更新它本身。 但是,如果您希望手動更新某些代理程式,請以滑鼠右鍵點按集區,然後選擇選項 更新所有代理程式

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

  1. 瀏覽至 代理集區 標籤:

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

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

      選擇 [組織設定]。

    3. 選擇 Agent 集區

      [選擇代理池] 索引標籤。

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

    2. 選擇 Azure DevOps集區設定

      [選擇集合設定]。

    3. 選擇 Agent 集區

      選擇代理集區。

    1. 選擇 Azure DevOps中的 集合設定

      集合設定,2019。

    2. 選擇 代理集區

      選擇代理池,2019。

  2. 點擊包含代理程式的集區。

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

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

    1. 從 [代理集區] 標籤中,選取所需的代理集區。

      從代理程式集區選取所需的代理程式集區。

    2. 選取 代理人 並選擇所需的代理人。

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

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

      選擇 [功能] 索引標籤。

      注意

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

    1. 從 [Agent 工作池] 標籤中,選取所需的工作池。

      選取所需的集區。

    2. 選擇 代理程式 並選擇所需的代理程式。

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

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

      Agent 功能索引標籤。

    1. 從 [Agent 集區] 標籤中,選取所需的集區。

      選取所需的索引標籤 2019。

    2. 選取 [代理程式 並選擇所需的代理程式。

      選擇所需的代理程式 2019。

    3. 選擇 功能 索引標籤。

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

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

  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 現在會在更新代理程式時使用本機檔案。 當每個代理程式執行需要較新版本代理程式的工作時,就會自動更新它本身。 但是如果您要手動更新某些代理人,請在集區上按滑鼠右鍵,然後選擇 [更新所有代理人]。

我可以在哪裡深入瞭解已啟動的服務運作方式?

Apple 開發人員連結庫:建立啟動精靈和代理程式

我正在執行防火牆,而我的程式代碼位於 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 平台服務
https://{organization_name}.vstmr.visualstudio.com Azure DevOps 測試管理服務適用於使用 {organization_name}.visualstudio.com 網域的組織
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 平台服務
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 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

注意

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

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

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

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

在網路代理伺服器後面執行代理程式

如何重新啟動代理程式

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

如何設定代理程式略過 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 位址加入白名單。 如果您目前允許列出 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。 您的建置管線和腳本仍舊必須處理在建置中每個任務和工具略過您的網路代理伺服器。

例如,如果您使用 NuGet 任務,您必須設定 Web 代理伺服器,以支援繞過裝載您所使用之 NuGet 餵送的伺服器 URL。

我正在使用 TFS,但上述各節中的 URL 對我來說無法正常運作。 我可以在哪裡取得協助?

網站設定和安全性

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

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

TFVC 必要條件

如果您使用 TFVC,您也需要 Oracle Java JDK 1.6 或更高版本。 (Oracle JRE 和 OpenJDK 不足以達到此目的。

TEE 外掛程式 用於 TFVC 功能。 其具有EULA,如果您打算使用 TFVC,則必須在設定期間接受此 EULA。

由於 TEE 外掛程式已不再維護,而且包含一些過時的 Java 相依項,從 Agent 2.198.0 開始,它已不再包含在代理的發行版中。 不過,當您檢出 TFVC 儲存庫時,會在檢出程序執行期間下載 TEE 外掛程式。 工作執行之後會移除 TEE 外掛程式。

注意

注意:由於此下載機制,您可能會注意到您的結帳流程花費很長時間才能開始。

如果代理程式在 Proxy 或防火牆後方執行,您必須接受以確保存取下列網站:https://vstsagenttools.blob.core.windows.net/。 TEE 外掛程式會從這個地址下載。

如果您使用自我載入代理程式並遇到 TEE 下載的問題,您可以手動安裝 TEE:

  1. DISABLE_TEE_PLUGIN_REMOVAL 環境或管線變數設定為 true。 此變數可防止代理程式在簽出 TFVC 存放庫之後移除 TEE 外掛程式。
  2. Team Explorer Everywhere GitHub 發行手動下載 TEE-CLC 14.135.0 版。
  3. TEE-CLC-14.135.0 資料夾的內容解壓縮至 <agent_directory>/externals/tee