Программное обеспечение агента версии 3

Внимание

Эта статья ссылается на CentOS, дистрибутив Linux, который приближается к состоянию конца жизни (EOL). Пожалуйста, рассмотрите возможность использования и планирования соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.

Команда конвейеров обновляет программное обеспечение агента с версии 2.x (с помощью .NET Core 3.1) до версии 3.x (с помощью .NET 6). Новая версия агента поддерживает новое оборудование Apple silicon и более новые операционные системы, такие как Ubuntu 22.04 или Windows в ARM64.

Примечание.

Эта функция доступна начиная с 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 с пакетом обновления 2 (SP2) или более поздней версии
      • Ubuntu 22.04, 20.04, 18.04, 16.04
      • Azure Linux 2.0
    • ARM64
      • Debian 10+
      • Ubuntu 22.04, 20.04, 18.04
    • Альпийская 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
    • Клиентская ОС
      • Windows 7 с пакетом обновления 1 (SP1), ESU
      • Windows 8.1
      • Windows 10
      • Windows 11
    • ОС сервера
      • на нем установлена 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 (или 2.214 в RHEL 6), конвейеры, работающие на одном из неподдерживаемых операционных систем, перечисленных здесь, завершаются ошибкой со следующим сообщением об ошибке: 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/environment или etc/profile.d: AGENT_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 становится общедоступным для локально размещенных пулов в Q1 2023, в целом для агентов 2.x не будет сделано исправлений. Исправления будут выполнены только для агентов 3.x. Однако у нас также есть клиенты Azure DevOps Server, которые по-прежнему будут полагаться на агенты 2.x. Таким образом, мы рассмотрим вопросы безопасности по делу на основе решения.

Что делать, когда я на неподдерживаемой ОС?

Теперь следует перейти на более новую операционную систему, поддерживаемую .NET 6. В противном случае агент может попытаться обновиться, и он завершится ошибкой, так как не удается установить .NET 6 в ос. Мы опубликуем некоторые рекомендации в следующей записи блога, которая будет препятствовать автоматическому обновлению агента. Однако это только временное решение, чтобы предоставить вам еще некоторое время для обновления компьютеров агентов.

Могу ли я остаться на агентах 2.x, если я больше не работаю над изменениями в моем проекте?

№ Команда конвейеров регулярно добавляет новые функции в Azure Pipelines, и для некоторых из них может потребоваться обновление агента, даже если конвейер не зависит от этой функции. При предотвращении автоматического обновления агента с помощью инструкций в блоге по дальнейшим действиям этот агент не может использоваться для планирования конвейера. Если агент с необходимыми возможностями не найден, выполнение конвейера завершится ошибкой.

Необходимо ли установить .NET 6 перед установкой программного обеспечения агента 3.x?

Перед установкой и настройкой программного обеспечения агента 3.x не нужно устанавливать .NET 6 на компьютере агента. Все зависимости .NET, необходимые агенту 3.x, являются частью самого агента.

Нужно ли создавать код с помощью .NET 6, если я использую агент 3.x?

Версия .NET, используемая для запуска агента 3.x, является автономной в установке агента и не используется для сборки кода. Версия .NET, используемая для сборки кода, зависит от конвейера и версии или версий .NET, установленных на компьютере агента.

Я использую Azure DevOps Server, а не Службу Azure DevOps. Повлияет ли это изменение на мою работу?

№ Новый агент применяется только для клиентов Azure DevOps Service в настоящее время. Однако в будущую версию Azure DevOps Server будет включен новый агент. Команда конвейеров рекомендует обновить компьютеры агента до новых операционных систем, поддерживаемых .NET 6, начиная с этого момента, если вы планируете поддерживать выпуски Azure DevOps Server в будущем.

Что такое временная шкала для развертывания агента версии 3?

Агент версии 3 выпущен в марте 2023 г.

Что произойдет, когда задача требует обновления агента до версии 3?

Как правило, если для задачи требуется более новая версия агента, она автоматически обновляется. Пока агент версии 2 продолжает обновляться, мы отключили автоматическое обновление от агента версии 2 до агента версии 3. После включения операционной системы, несовместимые с агентом версии 3, агент версии 2.217 и более поздние версии не попытается обновить себя до агента версии 3. Вместо этого появится предупреждение, информирующее пользователей о необходимости обновления операционной системы в первую очередь: 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