Versão 3 do Software do Agente

Cuidado

Este artigo faz referência ao CentOS, uma distribuição do Linux que está se aproximando do status de EOL (fim da vida útil). Considere seu uso e planejamento adequadamente. Para obter mais informações, veja as Diretrizes sobre fim da vida útil do CentOS.

A equipe de pipelines está atualizando o software do agente da versão 2.x (usando o .NET Core 3.1) para a versão 3.x (usando o .NET 6). A nova versão do agente dá suporte ao novo hardware Apple Silicon e sistemas operacionais mais recentes, como Ubuntu 22.04 ou Windows no ARM64.

Observação

Esse recurso está disponível a partir do Azure DevOps Server 2022.1.

Atualizar para o agente 3.x em sistemas operacionais compatíveis

Se você estiver executando seus agentes auto-hospedados em sistemas operacionais mais recentes compatíveis com o .NET 6, a atualização para a nova versão do agente será automática.

Os sistemas operacionais a seguir são compatíveis com o agente 3.x.

  • Linux
    • X64
      • CentOS 7, 8
      • Debian 10+
      • Fedora 36+
      • openSUSE 15+
      • Red Hat Enterprise Linux 7+
        • Não requer mais um pacote separado
      • SUSE Enterprise Linux 12 SP2 ou posterior
      • 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"
      • Observação: nem todas as tarefas do Azure Pipelines foram atualizadas para dar suporte ao ARM64 ainda
  • Windows
    • Sistema Operacional do cliente
      • Windows 7 SP1 ESU
      • Windows 8.1
      • Windows 10
      • Windows 11
    • Sistema Operacional do servidor
      • Windows Server 2012 ou posterior

Atualizar para o agente 3.x em sistemas operacionais incompatíveis

Se você estiver executando seus agentes auto-hospedados em um sistema operacional incompatível com o .NET 6, atualize seus computadores para usar um sistema operacional mais recente compatível com o .NET 6.

A lista de sistemas operacionais a seguir é comumente usada para agentes 2.x auto-hospedados. Esses sistemas operacionais não são compatíveis com o .NET 6 e não podem ser usados para executar o novo agente do .NET 6 baseado na versão 3.x.

Sistema/Distribuição A versão não é compatível com o .NET 6
CentOS < 7
Debian <= 4.9
Fedora <= 32
RedHat Enterprise Linux <= 6
Ubuntu < 18.04 LTS
macOS < 10.15

Você pode usar um script para prever se os agentes em seus pools autohospedados poderão fazer o upgrade da 2.x para 3.x.

Ao tentar executar pipelines na versão 2.218 do agente (ou 2.214 no RHEL 6), os pipelines em execução em um dos sistemas operacionais incompatíveis listados aqui falharão com a seguinte mensagem de erro: 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.

Para resolver esse erro, você pode:

  1. Atualizar ou mover os computadores do agente para um dos sistemas operacionais compatíveis listados anteriormente neste artigo. Essa é a solução preferencial e permite que você obtenha atualizações futuras do agente.
  2. Defina uma variável AGENT_ACKNOWLEDGE_NO_UPDATES no agente, definindo uma variável de ambiente ou uma variável de pipeline.
  • Você pode definir AGENT_ACKNOWLEDGE_NO_UPDATES configurando uma variável de ambiente no agente, por exemplo, em /etc/environment ou etc/profile.d: AGENT_ACKNOWLEDGE_NO_UPDATES=true.

  • Você pode definir uma variável de pipeline.

    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
    

Perguntas frequentes

Qual é a diferença entre os agentes 2.x e 3.x?

Os agentes 2.x (por exemplo, 2.212) são .NET Core 3.1, e os agentes 3.x (por exemplo, 3.212) são .NET 6. Durante as Fases I e II, ambas as versões estão disponíveis, enquanto as versões 3.x estão em pré-lançamento.

Como posso verificar meus agentes para ver se eles podem atualizar para o 3.x?

Você pode usar um script para prever se os agentes em seus pools auto-hospedados poderão fazer o upgrade da 2.x para 3.x.

Como os problemas de segurança no agente serão corrigidos daqui para frente?

Quando o agente do .NET 6 ficar em disponibilidade geral para pools auto-hospedados no primeiro trimestre de 2023, nenhum patch será feito para os agentes 2.x. Os patches serão feitos somente para os agentes 3.x. No entanto, também temos clientes do Azure DevOps Server que ainda contarão com agentes 2.x. Portanto, examinaremos os problemas de segurança caso a caso para decidir.

O que preciso fazer quando estou em um sistema operacional incompatível?

Você deve migrar para um sistema operacional mais recente compatível com o .NET 6 agora. Caso contrário, o agente poderá tentar atualizar e falhará, pois o .NET 6 não pode ser instalado no sistema operacional. Publicaremos algumas diretrizes em uma postagem de acompanhamento no blog que impedirão atualizações automáticas do agente. No entanto, isso só se destina a ser uma solução temporária para dar a você mais tempo para atualizar os computadores do agente.

Posso ficar com agentes 2.x se não estiver mais trabalhando em nenhuma alteração no meu projeto?

Não. A equipe de pipelines está adicionando regularmente novos recursos ao Azure Pipelines e alguns deles podem exigir uma atualização do agente, embora seu pipeline não dependa explicitamente desse recurso. Quando você impede atualizações automáticas do agente usando as diretrizes em um blog de acompanhamento, esse agente não pode ser usado para agendar o pipeline. Se nenhum agente com os recursos necessários puder ser encontrado, a execução do pipeline falhará.

Preciso instalar o .NET 6 antes de instalar o software do agente 3.x?

Você não precisa instalar o .NET 6 no computador do agente antes de instalar e configurar o software do agente 3.x. Todas as dependências do .NET exigidas pelo agente 3.x fazem parte do agente propriamente dito.

Preciso criar meu código usando o .NET 6 se estiver usando o agente 3.x?

A versão do .NET usada para executar o agente 3.x é independente na instalação do agente e não é usada para compilar seu código. A versão do .NET usada para compilar seu código depende do pipeline e da versão ou das versões do .NET instaladas no computador do agente.

Uso Azure DevOps Server e não o Serviço do Azure DevOps. Esta alteração me afeta?

Não. Atualmente, o novo agente só é aplicável para clientes do Azure DevOps Service. No entanto, uma versão futura do Azure DevOps Server incluirá o novo agente. A equipe de pipelines recomenda que você atualize seus computadores de agente para sistemas operacionais mais recentes compatíveis com o .NET 6 a partir de agora, se você planeja acompanhar os lançamentos do Azure DevOps Server no futuro.

Qual é o linha do tempo para a implantação do agente versão 3?

A versão 3 do agente foi lançada em março de 2023.

O que acontecerá quando uma tarefa exigir que um agente seja atualizado para o agente versão 3?

Normalmente, quando uma tarefa exige uma versão mais recente do agente, ele se atualiza automaticamente. Por enquanto, enquanto a versão 2 do agente continua a ser atualizada, desabilitamos a atualização automática do agente versão 2 para a versão 3. Depois de habilitá-la, para sistemas operacionais incompatíveis com o agente versão 3, a versão 2.217 e mais recentes do agente não tentarão se atualizar para o agente v3. Em vez disso, um aviso será mostrado informando aos usuários que eles precisam atualizar o sistema operacional primeiro: 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