自我裝載 Linux 代理程式

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

重要

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

警告

本文參考 CentOS,亦即接近生命週期結束 (EOL) 狀態的 Linux 發行版本。 請據此考量您的使用方式和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指引

若要執行您的作業,您至少需要一個代理程式。 Linux 代理程式可以建置及部署不同類型的應用程式,包括 Java 和 Android 應用程式。 如需支援的Linux發行版清單,請參閱 檢查必要條件

注意

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

瞭解代理程式

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

檢查先決條件

代理程式是以 .NET 6 為基礎。 您可以在數個 Linux 發行版上執行此代理程式。 我們支援下列 .NET 6 支援散發套件的子集:

  • 支持的發行版
    • x64
      • CentOS 7、8
      • Debian 10+
      • Fedora 36+
      • openSUSE 15+
      • Red Hat Enterprise Linux 7+
        • 不再需要個別的套件
      • SUSE Enterprise Linux 12 SP2 或更新版本
      • Ubuntu 22.04、20.04、18.04、16.04
      • Azure Linux 2.0
    • ARM64
      • Debian 10+
      • Ubuntu 22.04、20.04、18.04
    • Alpine x64
  • Git - 無論您的平台為何,您都需要安裝 Git 2.9.0 或更高版本。 強烈建議您安裝最新版本的 Git。
  • .NET - 代理程式軟體會在 .NET 6 上執行,但會安裝自己的 .NET 版本,因此沒有 .NET 必要條件。
  • Subversion - 如果您要從 Subversion 存放庫建置,則必須在電腦上安裝 Subversion 用戶端。
  • TFVC - 如果您要從 TFVC 存放庫建置,請參閱 TFVC 必要條件

注意

代理程式安裝程式知道如何檢查其他相依性。 您可以在代理程式目錄中執行 ./bin/installdependencies.sh ,在支援的 Linux 平臺上安裝這些相依性。

請注意,.NET 所需的部分相依性是從第三方網站擷取,例如 packages.efficios.com。 檢閱腳本, installdependencies.sh 並確定在執行腳本之前,可從您的Linux計算機存取任何參考的第三方網站。

也請確定所有必要的存放庫都已連線到 中使用的 installdependencies.sh 相關套件管理員(例如 aptzypper)。

對於相依性安裝的問題(例如存放庫中找不到相依性」或「擷取存放庫索引檔時發生問題」-您可以連絡散發擁有者以取得進一步的支援。

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

準備許可權

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

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

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

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

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

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

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

決定您將使用的使用者

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

確認使用者具有許可權

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

使用者是 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. 在 [ 取得代理程式] 對話框中,按兩下 [ Linux]。

  5. 在左窗格中,選取特定類別。 我們為許多Linux發行版提供 x64 或 ARM。

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

  7. 遵循頁面上的指示。

  8. 將代理程式解壓縮到您選擇的目錄中。 cd 至該目錄並執行 ./config.sh

伺服器 URL

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

驗證類型

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

以互動方式執行

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

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

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

  2. 執行代理程式。

    ./run.sh
    

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

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

執行一次

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

./run.sh --once

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

以系統服務身分執行

如果您的代理程式在這些作業系統上執行,您可以執行代理程式即 systemd 服務:

  • Ubuntu 16 LTS 或更新版本
  • Red Hat 7.1 或更新版

我們提供範例 ./svc.sh 腳本,讓您執行和管理代理程式即 systemd 服務。 此文稿會在您設定代理程序之後產生。 建議您先檢閱並視需要更新腳本,再執行腳本。

一些重要的注意事項:

  • 如果您以服務身分執行代理程式,則無法以使用者身分 root 執行代理程序服務。
  • 執行 SELinux 的用戶回報了所提供 svc.sh 腳本的困難。 將此代理程式問題稱為起點。 SELinux 不是正式支持的組態。

注意

如果您有不同的散發,或偏好其他方法,則可以使用任何偏好的服務機制。 請參閱 服務檔案

命令

變更為代理程序目錄

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

cd ~/myagent$

安裝

命令:

sudo ./svc.sh install [username]

此命令會建立指向 ./runsvc.sh的服務檔案。 此文稿會設定環境(以下更多詳細數據),並啟動代理程式主機。 如果未 username 指定參數,則用戶名稱取自 sudo 命令所設定的 $SUDO_USER 環境變數。 這個變數一律等於叫 sudo 用命令的用戶名稱。

啟動

sudo ./svc.sh start

狀態

sudo ./svc.sh status

停止

sudo ./svc.sh stop

解除安裝

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

sudo ./svc.sh uninstall

更新環境變數

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

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

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

在服務啟動之前執行指示

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

  1. 編輯 runsvc.sh

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

    # insert anything to setup env when running as a service
    

服務檔案

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

systemd 服務檔案

服務 systemd 檔案已建立:

/etc/systemd/system/vsts.agent.{tfs-name}.{agent-name}.service

例如,您已使用 名稱 our-linux-agent設定代理程式(請參閱上圖)。 服務檔案會是:

  • Azure Pipelines:您組織的名稱。 例如,如果您連接到 https://dev.azure.com/fabrikam,則服務名稱會是 /etc/systemd/system/vsts.agent.fabrikam.our-linux-agent.service

  • TFS 或 Azure DevOps Server:內部部署伺服器的名稱。 例如,如果您連接到 http://our-server:8080/tfs,則服務名稱會是 /etc/systemd/system/vsts.agent.our-server.our-linux-agent.service

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

.service 檔案

sudo ./svc.sh start 讀取檔案來尋找 .service 服務,其中包含上述 systemd 服務檔案的名稱。

替代服務機制

./svc.sh我們提供腳本作為方便的方式,讓您以系統化服務身分執行和管理代理程式。 但是,您可以使用任何偏好的服務機制(例如:initd 或 upstart)。

您可以使用上述範本來協助產生其他類型的服務檔案。

使用 cgroup 來避免代理程序失敗

請務必避免代理程式失敗或變成無法使用的情況,否則代理程式無法將管線記錄或報告管線狀態串流回伺服器。 您可以藉由使用 cgroups 和較低的 oom_score_adj,降低這類問題所造成的風險。 完成此動作之後,Linux 會先從管線作業進程回收系統記憶體,再從代理程式進程回收記憶體。 瞭解如何設定 cgroups 和 OOM 分數

取代代理程式

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

當您使用與已經存在之代理程式相同的名稱來設定代理程式時,系統會詢問您是否要取代現有的代理程式。 如果您回答 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 隨處終端使用者許可協定(僅限 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

常見問題集

我可以在哪裡深入瞭解新的 v3 代理程序軟體?

如需 v3 代理程式軟體的相關信息和常見問題,請參閱 代理程式軟體第 3 版。

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

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

為什麼需要 sudo 才能執行服務命令?

./svc.sh 會使用 systemctl,這需要 sudo

原始程式碼: GitHub 上的 systemd.svc.sh.template

我正在執行防火牆,而我的程式碼是 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

注意

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

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

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

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

在 Web Proxy 後方執行代理程式

如何? 重新啟動代理程式

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

如何? 設定代理程式略過 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,某些功能可在內部部署使用。

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_REMOVALtrue。 此變數可防止代理程式在簽出 TFVC 存放庫之後移除 TEE 外掛程式。
  2. Team Explorer 隨處 GitHub 版本手動下載 TEE-CLC 14.135.0 版
  3. 將資料夾的內容 TEE-CLC-14.135.0 解壓縮至 <agent_directory>/externals/tee