代理程式軟體第 3 版

警告

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

管線小組正在將代理程式軟體從 2.x 版(使用 .NET Core 3.1)升級至 3.x 版(使用 .NET 6)。 新的代理程式版本支援新的Apple晶片硬體和較新的作業系統,例如Ubuntu22.04或ARM64上的Windows。

注意

此功能可從 Azure DevOps Server 2022.1 開始提供。

升級至支援的作業系統上的 3.x 代理程式

如果您在 .NET 6 支援的較新作業系統上執行自我裝載代理程式,則升級至新的代理程式版本是自動的。

3.x 代理程序支援下列作業系統。

  • Linux
    • 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
  • macOS
    • x64
      • macOS 10.15 "Catalina"
      • macOS 11.0 "Big Sur"
      • macOS 12.0 "Monterey"
      • macOS 13.0 "Ventura"
    • ARM64
      • macOS 11.0 "Big Sur"
      • macOS 12.0 "Monterey"
      • macOS 13.0 "Ventura"
      • 注意:尚未更新所有 Azure Pipelines 工作以支援 ARM64
  • Windows
    • 用戶端OS
      • Windows 7 SP1 ESU
      • Windows 8.1
      • Windows 10
      • Windows 11
    • 伺服器OS
      • Windows Server 2012 或更新版本

在不支援的作業系統上升級至 3.x 代理程式

如果您在 .NET 6 不支援的作業系統上執行自我裝載代理程式,您必須更新您的電腦,以使用 .NET 6 支援的較新作業系統

下列作業系統清單通常用於自我裝載 2.x 代理程式。 .NET 6 不支援這些操作系統,無法用來執行新的 .NET 6 版本 3.x 代理程式。

系統/散發 .NET 6 不支援的版本
CentOS < 7
Debian <= 4.9
Fedora <= 32
RedHat Enterprise Linux <= 6
Ubuntu < 18.04 LTS
macOS < 10.15

您可以使用指令碼來預測自我裝載集區中的代理程式是否可以從 2.x 升級至 3.x。

嘗試在代理程式 2.218 版(或 RHEL 6 上的 2.214 或 2.214)上執行管線時,在此所列的其中一個不支援操作系統上執行的管線將會失敗,並出現下列錯誤訊息:This operating system will stop receiving updates of the Pipelines Agent in the future. To be able to continue to run pipelines please upgrade the operating system or set an environment variable or agent knob "AGENT_ACKNOWLEDGE_NO_UPDATES" to "true". See https://aka.ms/azdo-pipeline-agent-v2-eos for more information.

若要解決此錯誤,您可以:

  1. 將代理程式機器升級或移至本文先前所列的其中一個支援操作系統。 這是慣用的解決方案,可讓您取得未來的代理程式更新,
  2. AGENT_ACKNOWLEDGE_NO_UPDATES藉由設定環境變數或管線變數,在代理程式上設定變數。
  • 您可以在代理程式上設定環境變數來設定 AGENT_ACKNOWLEDGE_NO_UPDATES ,例如 / etc/environmentetc/profile.dAGENT_ACKNOWLEDGE_NO_UPDATES=true

  • 您可以設定管線變數。

    jobs:
    - job: 'agentWithVariables'
      displayName: 'Agent with variables'
    
      variables:
        AGENT_ACKNOWLEDGE_NO_UPDATES: 'true' # Required to not fail job on operating system that is not supported by .NET 6
    

常見問題集

2.x 和 3.x 代理程式之間的差異為何?

2.x 代理程式(例如 2.212)是 .NET Core 3.1,而 3.x 代理程式(例如 3.212) 是 .NET 6。 在階段 I 和 II 期間,這兩個版本都可供使用,3.x 版本處於發行前版本。

如何檢查我的代理程式,以查看他們是否可以升級至 3.x?

您可以使用 文稿 來預測自我裝載集區中的代理程式是否可以從 2.x 升級至 3.x。

代理程式中的安全性問題將如何修補?

當 .NET 6 代理程式在 2023 年第 1 季正式推出供自我裝載集區使用時,2.x 代理程式一般不會完成任何修補程式。 修補程式只會針對 3.x 代理程式完成。 不過,我們也擁有仍依賴 2.x 代理程式的 Azure DevOps Server 客戶。 因此,我們會逐案檢閱安全性問題,以決定。

當我在不支援的操作系統上時,我需要做什麼?

您現在應該移轉至 .NET 6 所支援的較新作業系統。 否則,您的代理程式可能會嘗試升級,而且它將會失敗,因為 .NET 6 無法安裝在您的OS上。 我們將在後續部落格文章中發佈一些指引,以避免自動升級代理程式。 不過,這隻是暫時解決方案,讓您有更多時間升級代理程序機器。

如果我不再處理專案中的任何變更,我可以留在 2.x 代理程式上嗎?

否。 管線小組會定期將新功能新增至 Azure Pipelines,其中有些可能需要更新代理程式,即使您的管線並未明確相依於該功能。 當您使用後續部落格中的指引來防止代理程式的自動升級時,該代理程式無法用來排程管線。 如果找不到具有必要功能的代理程式,管線執行將會失敗。

安裝 3.x 代理程式軟體之前,我是否需要安裝 .NET 6?

在安裝及設定 3.x 代理程式軟體之前,您不需要在代理程式電腦上安裝 .NET 6。 3.x 代理程式需要的所有 .NET 相依性都是代理程式本身的一部分。

如果我使用 3.x 代理程式,是否需要使用 .NET 6 來建置程式代碼?

用來執行 3.x 代理程式的 .NET 版本在代理程式安裝中是獨立的,而且不會用來建置程式代碼。 用來建置程式代碼的 .NET 版本取決於您已安裝至代理程式計算機的管線和 .NET 版本或版本。

我使用 Azure DevOps Server,而不是 Azure DevOps Service。 此變更是否會對我造成影響?

否。 新的代理程式目前僅適用於 Azure DevOps Service 客戶。 不過,未來的 Azure DevOps Server 版本將會包含新的代理程式。 如果您計劃在未來跟上 Azure DevOps Server 版本,管線小組建議您將代理程式機器更新為 .NET 6 現在支援的較新操作系統。

代理程式第 3 版部署的時程表為何?

代理程式第 3 版發行於 2023 年 3 月。

當工作需要將代理程式更新為代理程式第 3 版時,會發生什麼事?

一般而言,當工作需要較新版本的代理程式時,它會自動更新本身。 目前,雖然代理程式第 2 版會繼續更新,但我們已停用從代理程式第 2 版到代理程式第 3 版的自動更新。 一旦啟用它,對於與代理程式版本 3 不相容的作業系統,代理程式版本 2.217 和更新版本將不會嘗試自行更新至 v3 代理程式。 相反地,系統會顯示警告,告知使用者他們必須先升級作業系統: The operating system the agent is running on is <OS>, which will not be supported by the .NET 6 based v3 agent. Please upgrade the operating system of this host to ensure compatibility with the v3 agent. See https://aka.ms/azdo-pipeline-agent-version