Agentes do Azure Pipelines

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

Para criar seu código ou implantar seu software usando o Azure Pipelines, você precisa de pelo menos um agente. À medida que sua base de código e equipe crescem, você precisará de mais agentes.

Quando o pipeline é executado, o sistema inicia um ou mais trabalhos. Um agente é uma infraestrutura de computação com software de agente instalado que executa um trabalho de cada vez.

O Azure Pipelines fornece vários tipos diferentes de agentes.

Tipo de agente Description Disponibilidade
Agentes alojados na Microsoft Agentes hospedados e gerenciados pela Microsoft Serviços de DevOps do Azure
Agentes autoalojados Agentes que você configura e gerencia, hospedados em suas VMs Serviços de DevOps do Azure, Servidor de DevOps do Azure
Agentes do Conjunto de Dimensionamento de Máquina Virtual do Azure Uma forma de agentes auto-hospedados, usando Conjuntos de Escala de Máquina Virtual do Azure, que podem ser dimensionados automaticamente para atender às demandas Serviços de DevOps do Azure
Agentes de Pools de DevOps Gerenciados Os Pools de DevOps Gerenciados são um serviço totalmente gerenciado em que máquinas virtuais ou contêineres que alimentam os agentes vivem em uma assinatura do Microsoft Azure e não em sua própria assinatura do Azure Serviços de DevOps do Azure

Os trabalhos podem ser executados diretamente na máquina host do agente ou em um contêiner.

Agentes alojados na Microsoft

Se seus pipelines estiverem no Azure Pipelines, você terá uma opção conveniente para executar seus trabalhos usando um agente hospedado pela Microsoft. Com os agentes alojados na Microsoft, a manutenção e as atualizações são feitas por si. Terá sempre a versão mais recente da imagem de VM especificada no pipeline. Cada vez que executar um pipeline, obterá uma nova máquina virtual para cada trabalho no pipeline. A máquina virtual é rejeitada após um trabalho (o que significa que qualquer alteração que um trabalho faça no sistema de ficheiros da máquina virtual, como o check-out do código, não estará disponível para o trabalho seguinte). Os agentes hospedados pela Microsoft podem executar trabalhos diretamente na VM ou em um contêiner.

O Azure Pipelines fornece um conjunto de agentes predefinido chamado Azure Pipelines com agentes alojados na Microsoft.

Para muitas equipas, esta é a forma mais simples de executar os seus trabalhos. Você pode experimentá-lo primeiro e ver se ele funciona para sua compilação ou implantação. Caso contrário, você pode usar agentes de conjunto de escala ou um agente auto-hospedado.

Gorjeta

Você pode tentar um agente hospedado pela Microsoft gratuitamente.

Saiba mais sobre os agentes hospedados pela Microsoft.

Agentes autoalojados

Um agente que você configura e gerencia por conta própria para executar trabalhos é um agente auto-hospedado. Pode utilizar agentes autoalojados no Azure Pipelines ou no Azure DevOps Server, anteriormente designado Team Foundation Server (TFS). Os agentes autoalojados dão-lhe mais controlo para instalar software dependente necessário para as suas compilações e implementações. Além disso, os caches e a configuração no nível da máquina persistem de execução em execução, o que pode aumentar a velocidade.

Nota

Embora vários agentes possam ser instalados por máquina, sugerimos fortemente instalar apenas um agente por máquina. A instalação de dois ou mais agentes pode afetar negativamente o desempenho e o resultado de seus pipelines.

Gorjeta

Antes de instalar um agente auto-hospedado, convém ver se um pool de agentes hospedados pela Microsoft funcionará para você. Em muitos casos, esta é a maneira mais simples de começar. Experimente.

Pode instalar o agente em máquinas Linux, macOS ou Windows. Também pode instalar um agente num contentor Docker. Para obter mais informações sobre a instalação de um agente autoalojado, veja:

Nota

No macOS, você precisa limpar o atributo especial no arquivo de download para impedir que a proteção do Gatekeeper seja exibida para cada assembly no arquivo tar quando ./config.sh for executado. O comando a seguir limpa o atributo estendido no arquivo:

xattr -c vsts-agent-osx-x64-V.v.v.tar.gz  ## replace V.v.v with the version in the filename downloaded.

# then unpack the gzip tar file normally:

tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz

Depois de instalar o agente em uma máquina, você pode instalar qualquer outro software nessa máquina, conforme exigido por seus trabalhos.

Nota

Os agentes são amplamente compatíveis com versões anteriores. Qualquer versão do agente deve ser compatível com qualquer versão do Azure DevOps, desde que o Azure DevOps não exija uma versão superior do agente.

Suportamos apenas a versão mais recente do agente, uma vez que essa é a única versão garantida com todos os patches e correções de bugs atualizados.

Versões do corredor de nó

O agente é fornecido com várias versões de bibliotecas NodeJS para dar suporte a tarefas de destino que usam manipuladores de nó diferentes.

Todas as tarefas oficiais do Azure DevOps usam o Nó 20 como um manipulador universal, no entanto, os clientes ainda podem usar tarefas personalizadas que usam as bibliotecas de fim de vida útil do Nó 6, do Nó 10 ou do Nó 16. Para oferecer suporte à compatibilidade com versões anteriores com o Nó que atingiu o Fim da Vida Útil, fornecemos os seguintes métodos de autoatendimento para instalar manualmente o executor de Nó designado.

  • Instale manualmente o executor Node 6. Para obter mais informações sobre como instalar manualmente o executor do Nó 6, consulte Suporte do Nó 6 para obter mais detalhes.

  • Use a tarefa NodeTaskRunnerInstaller@0 em seus pipelines que exigem a biblioteca do Node 6 desatualizada.

  • Instale um pacote de agente que inclua o Nó 6.

    O Azure Pipelines fornece duas versões de pacotes de agente.

    • Os pacotes vsts-agent-* suportam o Nó 6.
    • Os pacotes pipelines-agent-* não suportam o Nó 6. Esta versão do pacote se tornará o pacote de agente padrão no futuro.

    Se você souber que não está usando nenhuma tarefa dependente do Nó 6 e não quiser que o Nó 6 seja instalado na máquina do agente, poderá instalar o agente na seção Downloads do Agente Alternativo do https://github.com/microsoft/azure-pipelines-agent/releases.

Agentes do Conjunto de Dimensionamento de Máquina Virtual do Azure

Os agentes do Conjunto de Escala de Máquina Virtual do Azure são uma forma de agentes auto-hospedados que podem ser dimensionados automaticamente para atender às suas demandas. Esta elasticidade reduz a sua necessidade de executar agentes dedicados constantemente. Ao contrário dos agentes alojados pela Microsoft, tem flexibilidade quanto ao tamanho e a imagem das máquinas em que os agentes funcionam.

Você especifica um Conjunto de Escala de Máquina Virtual, o número de agentes a serem mantidos em espera, um número máximo de máquinas virtuais no conjunto de escala e o Azure Pipelines gerencia o dimensionamento de seus agentes para você.

Para obter mais informações, consulte Agentes do Conjunto de Dimensionamento de Máquina Virtual do Azure.

Agentes de Pools de DevOps Gerenciados

Os Pools de DevOps Gerenciados permitem que as equipes de desenvolvimento criem pools de agentes do Azure DevOps de forma rápida e fácil, adaptados às necessidades específicas de uma equipe. Os Pools de DevOps Gerenciados implementam práticas recomendadas de segurança, fornecem botões para equilibrar custo e desempenho, fornecem caminhos para os cenários mais comuns e reduzem significativamente o tempo gasto na criação e manutenção de pools personalizados.

Os Pools de DevOps Gerenciados são uma evolução dos pools de agentes do Conjunto de Escala de Máquina Virtual do Azure DevOps, simplificando ainda mais a criação de pools personalizados, melhorando a escalabilidade e a confiabilidade dos pools personalizados. O Managed DevOps Pools é um serviço totalmente gerido em que as máquinas virtuais ou os contentores que alimentam os agentes residem numa subscrição do Microsoft Azure e não na sua própria subscrição do Azure, como acontece quando utiliza os pools de agentes dos Conjuntos de Dimensionamento de Máquinas Virtuais do Azure DevOps. Para obter mais informações, veja a Documentação do Managed DevOps Pools.

Trabalhos paralelos

Trabalhos paralelos representam o número de trabalhos que você pode executar ao mesmo tempo em sua organização. Se sua organização tiver um único trabalho paralelo, você poderá executar um único trabalho de cada vez em sua organização, com quaisquer outros trabalhos simultâneos sendo enfileirados até que o primeiro trabalho seja concluído. Para executar dois trabalhos ao mesmo tempo, precisa de dois trabalhos paralelos. No Azure Pipelines, pode executar trabalhos paralelos na infraestrutura alojada na Microsoft ou na sua própria infraestrutura (autoalojada).

A Microsoft fornece um escalão gratuito de serviço por predefinição em cada organização que inclua, pelo menos, um trabalho paralelo. Consoante o número de pipelines simultâneos que tem de executar, pode precisar de mais trabalhos paralelos para utilizar vários agentes alojados na Microsoft ou autoalojados ao mesmo tempo. Para obter mais informações sobre trabalhos paralelos e diferentes camadas gratuitas de serviço, consulte Trabalhos paralelos no Azure Pipelines.

Você pode precisar de mais trabalhos paralelos para usar vários agentes ao mesmo tempo:

Importante

A partir do Azure DevOps Server 2019, você não precisa pagar por trabalhos simultâneos auto-hospedados em versões. Você está limitado apenas pelo número de agentes que você tem.

Capacidades

Cada agente auto-hospedado tem um conjunto de recursos que indicam o que ele pode fazer. Os recursos são pares nome-valor que são descobertos automaticamente pelo software do agente, chamados recursos do sistema, ou recursos que você define, chamados recursos do usuário.

O software do agente determina automaticamente vários recursos do sistema, como o nome da máquina, o tipo de sistema operacional e as versões de determinados softwares instalados na máquina. Além disso, as variáveis de ambiente definidas na máquina aparecem automaticamente na lista de recursos do sistema.

Nota

Armazenar variáveis de ambiente como recursos significa que, quando um agente é executado, os valores de capacidade armazenados são usados para definir as variáveis de ambiente. Além disso, quaisquer alterações nas variáveis de ambiente feitas enquanto o agente está em execução não serão captadas e usadas por nenhuma tarefa. Se você tiver variáveis de ambiente sensíveis que mudam e não quiser que elas sejam armazenadas como recursos, poderá ignorá-las definindo a variável de ambiente, com uma lista delimitada por vírgulas VSO_AGENT_IGNORE de variáveis a serem ignoradas. Por exemplo, PATH é uma variável crítica que você pode querer ignorar se estiver instalando software.

Ao criar um pipeline, você especifica determinadas demandas do agente. O sistema envia o trabalho apenas para agentes que têm recursos correspondentes às demandas especificadas no pipeline. Como resultado, os recursos do agente permitem direcionar trabalhos para agentes específicos.

Nota

As demandas e os recursos são projetados para uso com agentes auto-hospedados para que os trabalhos possam ser combinados com um agente que atenda aos requisitos do trabalho. Ao usar agentes hospedados pela Microsoft, você seleciona uma imagem para o agente que corresponde aos requisitos do trabalho, portanto, embora seja possível adicionar recursos a um agente hospedado pela Microsoft, não é necessário usar recursos com agentes hospedados pela Microsoft.

Configurar demandas

Para adicionar uma demanda ao seu pipeline de construção YAML, adicione a demands: linha à pool seção .

pool:
  name: Default
  demands: SpecialSoftware # exists check for SpecialSoftware

Você pode verificar a existência de um recurso ou fazer uma comparação com o valor de um recurso. Para obter mais informações, consulte Esquema YAML - Demandas.

Configurar recursos do agente

Você pode exibir os detalhes de um agente, incluindo sua versão e recursos do sistema, e gerenciar seus recursos de usuário, navegando até Pools de agentes e selecionando a guia Recursos para o agente desejado.

  1. No navegador da Web, navegue até Pools de agentes:

    1. Inicie sessão na sua organização (https://dev.azure.com/{yourorganization}).

    2. Escolha Azure DevOps, Configurações da organização.

      Escolha Configurações da organização.

    3. Escolha Pools de agentes.

      Escolha a guia Pools de agentes.

    1. Inicie sessão na sua coleção de projetos (http://your-server/DefaultCollection).

    2. Escolha Azure DevOps, Configurações de coleção.

      Escolha Configurações da coleção.

    3. Escolha Pools de agentes.

      Escolha Pools de agentes.

    1. Escolha Azure DevOps, Configurações de coleção.

      Configurações de coleção, 2019.

    2. Escolha Pools de agentes.

      Escolha Agent pools, 2019.

  2. Navegue até a guia de recursos:

    1. Na guia Pools de agentes, selecione o pool de agentes desejado.

      Em Pools de agentes, selecione o pool de agentes desejado.

    2. Selecione Agentes e escolha o agente desejado.

      Selecione Agentes e escolha o agente.

    3. Escolha a guia Recursos .

      Escolha a guia Recursos.

      Nota

      Os agentes hospedados pela Microsoft não exibem recursos do sistema. Para obter uma lista de software instalado em agentes hospedados pela Microsoft, consulte Usar um agente hospedado pela Microsoft.

    1. Na guia Pools de agentes, selecione o pool desejado.

      Selecione o pool desejado.

    2. Selecione Agentes e escolha o agente desejado.

      Selecione Agentes e escolha o agente desejado.

    3. Escolha a guia Recursos .

      Guia Recursos do agente.

    1. Na guia Pools de agentes, selecione o pool desejado.

      Selecione a guia desejada, 2019.

    2. Selecione Agentes e escolha o agente desejado.

      Escolha o agente desejado, 2019.

    3. Escolha a guia Recursos .

      Escolha a guia Recursos, 2019.

  3. Para registrar um novo recurso com o agente, escolha Adicionar um novo recurso.

Gorjeta

Depois de instalar o novo software em um agente auto-hospedado, você deve reiniciar o agente para que o novo recurso apareça. Para obter mais informações, consulte Reiniciar agente Windows, Reiniciar agente Linux e Reiniciar agente Mac.

Comunicação

Comunicação com o Azure Pipelines

Comunicação com o Azure DevOps Server

O agente comunica com o Azure Pipelines ou o Azure DevOps Server para determinar que trabalho tem de executar e para reportar os registos e o estado dos trabalhos. O agente inicia sempre esta comunicação. Todas as mensagens do agente para o Azure Pipelines ou o Azure DevOps Server têm lugar através de HTTP ou HTTPS, dependendo da forma como configurar o agente. Esse modelo de pull permite que o agente seja configurado em topologias diferentes, conforme mostrado pelos exemplos a seguir.

Topologias de agente em instalações locais.

Topologias de agente nos Serviços de DevOps do Azure.

Aqui está um padrão de comunicação comum entre o agente e o Azure Pipelines ou o Azure DevOps Server.

  1. O usuário registra um agente no Azure Pipelines ou no Azure DevOps Server adicionando-o a um pool de agentes. Você precisa ser um administrador do pool de agentes para registrar um agente nesse pool de agentes. A identidade do administrador do pool de agentes é necessária apenas no momento do registro e não é mantida no agente. Ele não é usado em nenhuma comunicação adicional entre o agente e o Azure Pipelines ou o Azure DevOps Server. Quando o registro estiver concluído, o agente baixa um token OAuth de ouvinte e o usa para ouvir a fila de trabalhos.

  2. O agente escuta para ver se uma nova solicitação de trabalho é postada para ela na fila de trabalhos no Azure Pipelines/Azure DevOps Server usando uma pesquisa HTTP longa. Quando um trabalho está disponível, o agente baixa o trabalho e um token OAuth específico do trabalho. O Azure Pipelines/Azure DevOps Server gera um token de curta duração para a identidade com escopo especificada no pipeline. O token é usado pelo agente para acessar ou modificar recursos no Azure Pipelines ou no Azure DevOps Server dentro desse trabalho. Por exemplo, para acessar o código-fonte ou carregar resultados de testes.

  3. O agente descarta o token OAuth específico do trabalho depois que o trabalho é concluído e, em seguida, volta a verificar se há uma nova solicitação de trabalho usando o token OAuth do ouvinte.

O payload das mensagens trocadas entre o agente e o Azure Pipelines/Azure DevOps Server é protegido através de encriptação assimétrica. Cada agente tem um par de chaves públicas-privadas e a chave pública é trocada com o servidor durante o registo. O servidor utiliza a chave pública para encriptar o payload do trabalho antes de o enviar para o agente. O agente desencripta o conteúdo do trabalho com a respetiva chave privada. Esse método protege segredos armazenados em pipelines ou grupos de variáveis quando trocados com o agente.

Nota

O agente fornece suporte para a saída de codificação do cliente UTF-8. No entanto, se o seu sistema tiver uma codificação diferente do UTF-8, você pode encontrar alguns problemas com a saída de logs. Por exemplo, os logs podem conter caracteres que não são reconhecidos pela codificação do sistema, portanto, podem aparecer como símbolos ilegíveis ou ausentes.

Comunicação para implementar em servidores de destino

Quando utiliza o agente para implementar artefactos num conjunto de servidores, o mesmo tem de ter conectividade de "linha de visão" a esses servidores. Por predefinição, os conjuntos de agentes alojados pela Microsoft têm conectividade para os sites e servidores do Azure em execução no Azure.

Nota

Se seus recursos do Azure estiverem sendo executados em uma Rede Virtual do Azure, você poderá obter os intervalos de IP do Agente onde os agentes hospedados pela Microsoft são implantados para que você possa configurar as regras de firewall para sua VNet do Azure para permitir o acesso pelo agente.

Se seus ambientes locais não tiverem conectividade com um pool de agentes hospedados pela Microsoft, o que normalmente é o caso devido a firewalls intermediários, você precisará configurar manualmente agentes auto-hospedados em computadores locais. Os agentes devem ter conectividade com os ambientes locais de destino e acesso à Internet para se conectar ao Azure Pipelines ou Team Foundation Server, conforme mostrado no esquema a seguir.

Conectividade do agente para ambientes locais

Autenticação

Para registrar um agente, você precisa ser membro da função de administrador no pool de agentes. A identidade do administrador do pool de agentes é necessária apenas no momento do registro e não é mantida no agente. Ele não é usado em nenhuma comunicação subsequente entre o agente e o Azure Pipelines ou o Azure DevOps Server. Além disso, para configurar o agente, tem de ser administrador local no servidor.

Ao registrar um agente, escolha entre os seguintes tipos de autenticação e a configuração do agente solicitará as informações adicionais específicas necessárias para cada tipo de autenticação. Para obter mais informações, consulte Opções de autenticação de agente auto-hospedado.

  • Token de acesso pessoal
  • Alterne Conectar-se ao Servidor de DevOps do Azure ou ao TFS usando a autenticação Básica. Ao selecionar Alternativa, suas credenciais serão solicitadas.

Além disso, os agentes do Windows têm as duas opções de autenticação a seguir no Servidor de DevOps do Azure.

  • Negocie Conectar-se ao Servidor de DevOps do Azure como um usuário diferente do usuário conectado por meio de um esquema de autenticação do Windows, como o New Technology LAN Manager (NTLM) ou Kerberos. Depois de selecionar Negociar, você será solicitado a fornecer credenciais.
  • Integrado (padrão) Conecte um agente do Windows ao Servidor de DevOps do Azure usando as credenciais do usuário conectado por meio de um esquema de autenticação do Windows, como NTLM ou Kerberos. As credenciais não serão solicitadas depois de escolher esse método.

Importante

O servidor deve ser configurado para suportar o método de autenticação para usar a autenticação Alternativa, Negociar ou Integrada.

O método de autenticação usado para registrar o agente é usado somente durante o registro do agente. Para saber mais sobre como os agentes se comunicam com o Azure Pipelines após o registro, consulte Comunicação com o Azure Pipelines ou o Azure DevOps Server.

Interativo vs. serviço

Pode executar o seu agente autoalojado como um serviço ou um processo interativo.

Depois de configurar o agente, recomendamos que você primeiro experimente-o no modo interativo para garantir que ele funcione. Em seguida, para utilização em produção, recomendamos que utilize o agente num dos seguintes modos para que permaneça em funcionamento. Estes modos também asseguram que o agente é iniciado automaticamente caso a máquina seja reiniciada.

  1. Como um serviço. Você pode usar o gerenciador de serviços do sistema operacional para gerenciar o ciclo de vida do agente. Além disso, a experiência de atualização automática do agente é melhor quando você executa o agente como um serviço.

  2. Como um processo interativo com logon automático habilitado. Em alguns casos, poderá ter de executar o agente interativamente para utilização em produção, como para realizar testes de IU. Quando o agente está configurado para funcionar neste modo, o protetor de ecrã também é desativado. Algumas políticas de domínio podem impedir que você habilite o logon automático ou desabilite a proteção de tela. Nesses casos, talvez seja necessário buscar uma isenção da diretiva de domínio ou executar o agente em um computador do grupo de trabalho onde as diretivas de domínio não se aplicam.

    Nota

    Existem riscos de segurança quando ativa o início de sessão automático ou desativa a proteção de ecrã porque permite que outros utilizadores se desloquem até ao computador e utilizem a conta que inicia sessão automaticamente. Se você configurar o agente para ser executado dessa maneira, deverá garantir que o computador esteja fisicamente protegido; por exemplo, localizado em uma instalação segura. Se você usar a Área de Trabalho Remota para acessar o computador no qual um agente está sendo executado com logon automático, simplesmente fechar a Área de Trabalho Remota fará com que o computador seja bloqueado e todos os testes de interface do usuário executados nesse agente poderão falhar. Para evitar isso, use o comando tscon para se desconectar da Área de Trabalho Remota. Por exemplo:

    %windir%\System32\tscon.exe 1 /dest:console

Conta de agente

Se você executa um agente como um serviço ou interativamente, você pode escolher qual conta de computador você usa para executar o agente. A escolha da conta do agente depende exclusivamente das necessidades das tarefas em execução em seus trabalhos de compilação e implantação.

Por exemplo, para executar tarefas usando a autenticação do Windows para acessar um serviço externo, o agente deve ser executado usando uma conta com acesso a esse serviço. No entanto, se você estiver executando testes de interface do usuário, como Selenium ou testes de interface do usuário codificada que exigem um navegador, o navegador será iniciado no contexto da conta do agente.

No Windows, você deve considerar o uso de uma conta de serviço, como Serviço de Rede ou Serviço Local. Essas permissões de contas são restritas e suas senhas não expiram, o que significa que o agente requer menos gerenciamento ao longo do tempo.

Essas credenciais são diferentes das credenciais que você usa quando registra o agente no Azure Pipelines ou no Azure DevOps Server.

Versão e atualizações do agente

Atualizamos o software do agente a cada poucas semanas no Azure Pipelines. Indicamos a versão do agente no formato {major}.{minor}. Por exemplo, se a versão do agente é 2.1, então a versão principal é 2 e a versão secundária é 1.

Os agentes hospedados pela Microsoft são sempre mantidos atualizados. Se a versão mais recente do agente for diferente apenas na versão secundária , o Azure Pipelines poderá atualizar automaticamente os agentes auto-hospedados. Você pode definir essa configuração em Pools de agentes, selecione seu agente, Configurações - o padrão está habilitado. Uma atualização é solicitada quando um recurso da plataforma ou uma das tarefas usadas no pipeline requer uma versão mais recente do agente.

Se você executar um agente auto-hospedado interativamente, ou se houver uma versão principal mais recente do agente disponível, talvez seja necessário atualizar manualmente os agentes. Você pode atualizar os agentes facilmente na guia Pools de agentes em sua organização. Os pipelines não podem ser executados sem um agente compatível

Para atualizar agentes auto-hospedados

  1. Navegue até Configurações do projeto, Pools de agentes.

    Configurações do projeto, Pools de agentes

  2. Selecione seu pool de agentes e escolha Atualizar todos os agentes.

    Atualizar todos os agentes

    Você também pode atualizar os agentes individualmente escolhendo Atualizar agente no menu ... .

    Agente de atualização

  3. Selecione Atualizar para confirmar a atualização.

    Atualizar todas as confirmações de agentes

  4. Uma solicitação de atualização é enfileirada para cada agente no pool e é executada quando qualquer trabalho em execução no momento é concluído. A atualização normalmente leva apenas alguns momentos - tempo suficiente para baixar a versão mais recente do software do agente (aproximadamente 200 MB), descompactá-lo e reiniciar o agente com a nova versão. Você pode monitorar o status de seus agentes na guia Agentes .

Atualizamos o software do agente a cada atualização no Azure DevOps Server. Indicamos a versão do agente no formato {major}.{minor}. Por exemplo, se a versão do agente é 2.1, então a versão principal é 2 e a versão secundária é 1.

Quando o Servidor de DevOps do Azure tem uma versão mais recente do agente, e esse agente mais recente só é diferente na versão secundária , ele geralmente pode ser atualizado automaticamente. Uma atualização é solicitada quando um recurso da plataforma ou uma das tarefas usadas no pipeline requer uma versão mais recente do agente. A partir do Azure DevOps Server 2019, você não precisa esperar por uma nova versão do servidor. Você pode carregar uma nova versão do agente para sua camada de aplicativo, e essa versão é oferecida como uma atualização.

Se você executar o agente interativamente ou se houver uma versão principal mais recente do agente disponível, talvez seja necessário atualizar manualmente os agentes. Você pode atualizar facilmente o agente na guia Pools de agentes em sua coleção de projetos. Os pipelines não podem ser executados sem um agente compatível.

Você pode exibir a versão de um agente navegando até Pools de agentes e selecionando a guia Recursos para o agente desejado, conforme descrito em Configurar recursos do agente.

Para acionar a atualização do agente programaticamente, você pode usar a API de atualização do agente conforme descrito na seção Como posso acionar atualizações do agente programaticamente para um pool de agentes específico?.

Nota

Para servidores sem acesso à Internet, copie manualmente o arquivo zip do agente para a seguinte pasta para usar como um arquivo local. Crie a pasta Agentes se ela não estiver presente.

  • Windows: %ProgramData%\Microsoft\Azure DevOps\Agents
  • Linux: usr/share/Microsoft/Azure DevOps/Agents
  • macOS: usr/share/Microsoft/Azure DevOps/Agents

Crie a pasta Agentes se ela não estiver presente.

FAQ

Como posso certificar-me de que tenho a versão mais recente do agente?

  1. Navegue até a guia Pools de agentes:

    1. Inicie sessão na sua organização (https://dev.azure.com/{yourorganization}).

    2. Escolha Azure DevOps, Configurações da organização.

      Escolha Configurações da organização.

    3. Escolha Pools de agentes.

      Escolha a guia Pools de agentes.

    1. Inicie sessão na sua coleção de projetos (http://your-server/DefaultCollection).

    2. Escolha Azure DevOps, Configurações de coleção.

      Escolha Configurações da coleção.

    3. Escolha Pools de agentes.

      Escolha Pools de agentes.

    1. Escolha Azure DevOps, Configurações de coleção.

      Configurações de coleção, 2019.

    2. Escolha Pools de agentes.

      Escolha Agent pools, 2019.

  2. Clique no pool que contém o agente.

  3. Verifique se o agente está habilitado.

  4. Navegue até a guia de recursos:

    1. Na guia Pools de agentes, selecione o pool de agentes desejado.

      Em Pools de agentes, selecione o pool de agentes desejado.

    2. Selecione Agentes e escolha o agente desejado.

      Selecione Agentes e escolha o agente.

    3. Escolha a guia Recursos .

      Escolha a guia Recursos.

      Nota

      Os agentes hospedados pela Microsoft não exibem recursos do sistema. Para obter uma lista de software instalado em agentes hospedados pela Microsoft, consulte Usar um agente hospedado pela Microsoft.

    1. Na guia Pools de agentes, selecione o pool desejado.

      Selecione o pool desejado.

    2. Selecione Agentes e escolha o agente desejado.

      Selecione Agentes e escolha o agente desejado.

    3. Escolha a guia Recursos .

      Guia Recursos do agente.

    1. Na guia Pools de agentes, selecione o pool desejado.

      Selecione a guia desejada, 2019.

    2. Selecione Agentes e escolha o agente desejado.

      Escolha o agente desejado, 2019.

    3. Escolha a guia Recursos .

      Escolha a guia Recursos, 2019.

  5. Procure a Agent.Version capacidade. Você pode verificar esse valor em relação à versão mais recente do agente publicada. Consulte Azure Pipelines Agent e verifique na página o número de versão mais alto listado.

  6. Cada agente se atualiza automaticamente quando executa uma tarefa que requer uma versão mais recente do agente. Se quiser atualizar manualmente alguns agentes, clique com o botão direito do mouse no pool e selecione Atualizar todos os agentes.

Posso atualizar meus agentes que fazem parte de um pool do Azure DevOps Server?

Sim. A partir do Azure DevOps Server 2019, você pode configurar seu servidor para procurar os arquivos do pacote do agente em um disco local. Essa configuração substituirá a versão padrão que acompanhava o servidor no momento de seu lançamento. Esse cenário também se aplica quando o servidor não tem acesso à Internet.

  1. Em um computador com acesso à Internet, baixe a versão mais recente dos arquivos do pacote do agente (no formato .zip ou .tar.gz) na página Versões do GitHub do Agente de Pipelines do Azure.

  2. Transfira os arquivos de pacote baixados para cada Camada de Aplicativo do Servidor de DevOps do Azure usando um método de sua escolha (como unidade USB, transferência de rede e assim por diante). Coloque os arquivos do agente sob a %ProgramData%\Microsoft\Azure DevOps\Agents pasta. Crie a pasta Agentes se ela não estiver presente.

  3. Está pronto! Seu Servidor de DevOps do Azure agora usará os arquivos locais sempre que os agentes forem atualizados. Cada agente se atualiza automaticamente quando executa uma tarefa que requer uma versão mais recente do agente. Mas se você quiser atualizar manualmente alguns agentes, clique com o botão direito do mouse no pool e escolha Atualizar todos os agentes.

Os agentes auto-hospedados têm alguma vantagem de desempenho em relação aos agentes hospedados pela Microsoft?

Em muitos casos, sim. Especificamente:

  • Se você usar um agente auto-hospedado, poderá executar compilações incrementais. Por exemplo, se você definir um pipeline que não limpa o repositório e não executa uma compilação limpa, suas compilações normalmente são executadas mais rapidamente. Você não obtém esses benefícios com um agente hospedado pela Microsoft, a menos que use recursos como cache porque o agente é destruído após a conclusão do pipeline.

  • Um agente hospedado pela Microsoft pode levar mais tempo para iniciar sua compilação. Embora muitas vezes demore apenas alguns segundos para que seu trabalho seja atribuído a um agente hospedado pela Microsoft, às vezes pode levar vários minutos para que um agente seja alocado dependendo da carga em nosso sistema.

Posso instalar vários agentes auto-hospedados na mesma máquina?

Sim. Essa abordagem pode funcionar bem para agentes que executam trabalhos que não consomem muitos recursos compartilhados. Por exemplo, você pode experimentá-lo para agentes que executam versões que orquestram principalmente implantações e não fazem muito trabalho no próprio agente.

Você pode achar que, em outros casos, você não ganha muita eficiência executando vários agentes na mesma máquina. Por exemplo, pode não valer a pena para agentes que executam compilações que consomem muitos recursos de disco e E/S.

Você também pode ter problemas se trabalhos de compilação paralelos estiverem usando a mesma implantação de ferramenta singleton, como pacotes npm. Por exemplo, uma compilação pode atualizar uma dependência enquanto outra compilação está no meio de usá-la, o que pode causar resultados e erros não confiáveis.

Qual é o comportamento dos agentes quando os trabalhos de pipeline são cancelados?

Para agentes hospedados pela Microsoft, o agente é derrubado e retornado ao pool do Azure Pipelines.

Para agentes auto-hospedados:

Quando um pipeline é cancelado, o agente envia uma sequência de comandos para o processo que executa a etapa atual.

  • O primeiro comando é enviado com um tempo limite de 7,5 segundos.
  • Se o processo não terminar, um segundo comando será enviado com um tempo limite de 2,5 segundos.
  • Se o processo não terminar, o agente ordena que ele seja morto.
  • Se o processo ignorar os dois pedidos iniciais de rescisão, é morto à força.

Desde o pedido inicial até à rescisão demora aproximadamente 10 segundos.

Os comandos emitidos para o processo de cancelamento do pipeline diferem com base no sistema operacional do agente.

  • macOS e Linux - Os comandos enviados são SIGINT, seguido de SIGTERM, seguido de SIGKILL.
  • Windows - Os comandos enviados para o processo são Ctrl+C, seguido por Ctrl+Break, seguido por Process.Kill.

Como posso acionar atualizações de agente programaticamente para um pool de agentes específico?

Você pode disparar atualizações de agente para o pool usando a seguinte API:

POST https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0
POST https://{server url}/tfs/{collection}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0

Nota

Para obter mais informações sobre mapeamento de versão da API e do Azure DevOps Server, consulte API e mapeamento de versão do Azure DevOps Server

Parâmetros do URI

Nome Em Necessário Type Description
agentId query False string O agente a ser atualizado. Se não for especificado - a atualização é acionada para todos os agentes.
organization path True string O nome da organização do Azure DevOps.
poolId path True inteiro int32 O pool de agentes a ser usado
api-version query False string Versão da API a ser usada. O valor deve ser definido como '6.0' para usar esta versão da API.

Para acionar a atualização do agente - o corpo da solicitação deve estar vazio.

Nota

O Azure Pipelines Agent é de código aberto no GitHub.

Mais informações

Para obter mais informações sobre agentes, consulte os seguintes módulos do caminho de aprendizado Criar aplicativos com o Azure DevOps .