Agentes do Azure Pipelines

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

Para compilar seu código ou implantar seu software usando o Azure Pipelines, você precisa de pelo menos um agente. Conforme você adicionar código e pessoas, eventualmente precisará de mais.

Quando o pipeline for executado, o sistema iniciará um ou mais trabalhos. Um agente é a infraestrutura de computação com software de agente instalado que executa um trabalho por vez.

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

Tipo de agente Descrição Disponibilidade
Agentes hospedados pela Microsoft Agentes hospedados e gerenciados pela Microsoft Azure DevOps Services
Agentes auto-hospedados Agentes que você configura e gerencia, hospedados em suas VMs Serviços do Azure DevOps, Servidor do Azure DevOps
Agentes do conjunto de dimensionamento de máquinas virtuais do Azure Uma forma de agentes auto-hospedados, usando os Conjuntos de Dimensionamento de Máquinas Virtuais do Microsoft Azure, que podem ser escalados automaticamente para atender às suas demandas Azure DevOps Services

Os trabalhos podem ser executados diretamente no computador host do agente ou em um contêiner.

Agentes hospedados pela Microsoft

Se os pipelines estiverem no Azure Pipelines, você terá uma opção conveniente para executar seus trabalhos com um agente hospedado da Microsoft. Com os agentes hospedados pela Microsoft, a manutenção e as atualizações são feitas para você. Você sempre obtém a versão mais recente da imagem da VM especificada no seu pipeline. Sempre que você executa um pipeline, obtém uma nova máquina virtual para cada trabalho no pipeline. A máquina virtual é descartada após um trabalho (o que significa que qualquer alteração feita por um trabalho no sistema de arquivos de máquina virtual, como a verificação de código, não ficará disponível para o próximo trabalho). Os agentes hospedados pela Microsoft podem executar trabalhos diretamente na VM ou em um contêiner.

O Azure Pipelines fornece um pool de agente predefinido, chamado Azure Pipelines com agentes hospedados pela Microsoft.

Para muitas equipes, essa é a maneira mais simples de executar seus trabalhos. Você pode experimentá-la primeiro e ver se ela funciona para seu build ou sua implantação. Caso contrário, você pode usar agentes do conjunto de dimensionamento ou um agente auto-hospedado.

Dica

Você pode experimentar um agente hospedado pela Microsoft sem custo.

Saiba mais sobre agentes hospedados pela Microsoft.

Agentes auto-hospedados

Um agente que você configura e gerencia por conta própria para executar trabalhos é um agente auto-hospedado. Você pode usar agentes auto-hospedados no Azure Pipelines ou Azure DevOps Server, anteriormente chamado de TFS (Team Foundation Server). Agentes auto-hospedados oferecem mais controle para instalar o software dependente necessário para seus builds e implantações. Além disso, os caches no nível do computador e a configuração persistem de execução para execução, o que pode aumentar a velocidade.

Observação

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

Dica

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

Você pode instalar o agente em computadores Linux, macOS ou Windows. Você também pode instalar um agente em um contêiner do Docker. Para obter mais informações sobre como instalar um agente auto-hospedado, consulte:

Observação

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 seguinte comando 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 um computador, você pode instalar qualquer outro software nesse computador, conforme exigido por seus trabalhos.

Observação

Os agentes são compatíveis com versões anteriores de forma abrangente. 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 posterior do agente.

Só damos suporte à versão mais recente do agente, pois essa é a única versão com garantia de ter todos os patches e correções de bug atualizados.

Versões do executor de nó

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

Todas as tarefas oficiais do Azure DevOps usam o Node 10 como um manipulador universal, no entanto, os clientes ainda podem usar tarefas personalizadas que usam a biblioteca desatualizada do Node 6. Para dar suporte à compatibilidade com versões anteriores do Node que atingiram atualmente o fim da vida útil, fornecemos os seguintes métodos de autoatendimento para instalar manualmente o executor do Node designado.

  • Instale manualmente o executor do Node 6. Para obter mais informações sobre como instalar manualmente o executor do Node 6, consulte Suporte ao Node 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 Node 6.

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

    • Os pacotes vsts-agent-* dão suporte ao Node 6.
    • Os pacotes pipelines-agent-* não dão suporte ao Node 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 Node 6 e não quiser que o Node 6 seja instalado no computador do agente, poderá instalar o agente na seção Downloads Alternativos do Agente por meio de https://github.com/microsoft/azure-pipelines-agent/releases.

Agentes do conjunto de dimensionamento de máquinas virtuais do Azure

Os agentes do conjunto de dimensionamento de máquinas virtuais do Azure são uma forma de agentes auto-hospedados que podem ser escalados automaticamente para atender às suas demandas. Essa elasticidade reduz a necessidade de executar agentes dedicados o tempo todo. Ao contrário dos agentes hospedados pela Microsoft, você tem flexibilidade sobre o tamanho e a imagem dos computadores nos quais os agentes são executados.

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

Para obter mais informações, confira Agentes dos conjuntos de dimensionamento de máquinas virtuais do Azure.

Trabalhos paralelos

Trabalhos paralelos representam o número de trabalhos que você pode executar ao mesmo tempo na sua organização. Se sua organização tiver um único trabalho paralelo, você poderá executar um único trabalho por vez na sua organização, e quaisquer trabalhos simultâneos adicionais serão enfileirados até que o primeiro trabalho seja concluído. Para executar dois trabalhos ao mesmo tempo, você precisa de dois trabalhos paralelos. No Azure Pipelines, você pode executar trabalhos paralelos na infraestrutura hospedada pela Microsoft ou na sua própria infraestrutura (auto-hospedada).

A Microsoft fornece uma camada gratuita de serviço por padrão em cada organização que inclui pelo menos um trabalho paralelo. Dependendo do número de pipelines simultâneos que você precisa executar, talvez seja necessário mais trabalhos paralelos para usar vários agentes hospedados pela Microsoft ou auto-hospedados ao mesmo tempo. Para obter mais informações sobre trabalhos paralelos e diferentes camadas de serviço gratuitas, confira Trabalhos paralelos no Azure Pipelines.

Talvez seja necessário mais trabalhos paralelos para usar vários agentes ao mesmo tempo:

Importante

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

Funcionalidades

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

O software do agente determina automaticamente várias funcionalidades do sistema, como o nome do computador, o tipo de sistema operacional e as versões de determinado software instaladas no computador. Além disso, as variáveis de ambiente definidas no computador são exibidas automaticamente na lista de funcionalidades do sistema.

Observação

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

Ao criar um pipeline, você especifica determinadas demandas do agente. O sistema envia o trabalho somente para agentes que têm funcionalidades que correspondem às demandas especificadas no pipeline. Como resultado, as funcionalidades do agente permitem que você direcione os trabalhos para os agentes específicos.

Observação

As demandas e os recursos são criados para serem usados com agentes auto-hospedados para que os trabalhos possam ser correspondidos 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, você não precisa usar recursos com agentes hospedados pela Microsoft.

Configurar demandas

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

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

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

Configurar funcionalidades do agente

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

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

    1. Entre em 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 Pool de agentes.

    1. Entre 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 da coleção, 2019.

    2. Escolha Pools de agentes.

      Escolha Pools de agentes, 2019.

  2. Navegue até a guia Funcionalidades:

    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. Selecione a guia Funcionalidades.

      Selecione a guia Funcionalidades.

      Observação

      Os agentes hospedados pela Microsoft não exibem funcionalidades do sistema. Para obter uma lista de softwares instalados em agentes hospedados pela Microsoft, confira 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. Selecione a guia Funcionalidades.

      Guia funcionalidades 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. Selecione a guia Funcionalidades.

      Escolha a guia Funcionalidades, 2019.

  3. Para registrar uma nova funcionalidade com o agente, escolha Adicionar uma nova funcionalidade.

Dica

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

Comunicação

Comunicação com o Azure Pipelines

Comunicação com o Azure DevOps Server

O agente se comunica com o Azure Pipelines ou Azure DevOps Server para determinar qual trabalho ele precisa executar e relatar os logs e o status do trabalho. Essa comunicação é sempre iniciada pelo agente. Todas as mensagens do agente para o Azure Pipelines ou Azure DevOps Server são enviadas por meio de HTTP ou HTTPS, dependendo de como você configura o agente. Esse modelo de pull permite que o agente seja configurado em topologias diferentes, conforme mostrado abaixo.

Topologias do agente em instalações locais.

Topologias do agente no Azure DevOps Services.

Este é um padrão de comunicação comum entre o agente e o Azure Pipelines ou Azure DevOps Server.

  1. O usuário registra um agente com o Azure Pipelines ou 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 somente no momento do registro e não é persistida no agente e não é usada em nenhuma outra comunicação entre o agente e o Azure Pipelines ou Azure DevOps Server. Depois que o registro for concluído, o agente baixará um token OAuth do ouvinte e o usará para escutar a fila de trabalho.

  2. O agente escuta se uma nova solicitação de trabalho foi postada para ele na fila de trabalho no Azure Pipelines/Azure DevOps Server usando uma sondagem longa em HTTP. Quando um trabalho está disponível, o agente baixa o trabalho, além de um token OAuth específico do trabalho. Esse token é gerado pelo Azure Pipelines/Azure DevOps Server para a identidade com escopo especificada no pipeline. Esse token é de curta duração e é usado pelo agente para acessar recursos (por exemplo, código-fonte) ou modificar recursos (por exemplo, carregar resultados de teste) no Azure Pipelines ou Azure DevOps Server dentro desse trabalho.

  3. Quando o trabalho é concluído, o agente descarta o token OAuth específico do trabalho e volta para verificar se há uma nova solicitação de trabalho usando o token OAuth do ouvinte.

A carga das mensagens trocadas entre o agente e Azure Pipelines/Azure DevOps Server são protegidas usando criptografia assimétrica. Cada agente tem um par de chaves pública-privada e a chave pública é trocada com o servidor durante o registro. O servidor usa a chave pública para criptografar o conteúdo do trabalho antes de enviá-lo ao agente. O agente descriptografa o conteúdo do trabalho usando sua chave privada. É assim que os segredos armazenados em pipelines ou grupos de variáveis são protegidos à medida que são trocados com o agente.

Observação

O agente fornece suporte para saída de codificação de cliente UTF-8. No entanto, se o seu sistema tiver uma codificação diferente do UTF-8, você poderá 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 implantar em servidores de destino

Quando você usa o agente para implantar artefatos em um conjunto de servidores, ele deve ter conectividade de "linha de visão" com esses servidores. Os pools de agentes hospedados pela Microsoft, por padrão, têm conectividade com sites e servidores do Azure em execução no Azure.

Observação

Se os recursos do Azure estiverem em execução em uma Rede Virtual do Azure, você poderá obter os intervalos de IP do Agente em que 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 do agente.

Se seus ambientes locais não tiverem conectividade com um pool de agentes hospedados pela Microsoft (o que normalmente ocorre devido a firewalls intermediários), você precisará configurar manualmente um agente auto-hospedado 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 um membro da função de administrador no pool de agentes. A identidade do administrador do pool de agentes é necessária somente no momento do registro, não é persistida no agente e não é usada em nenhuma comunicação subsequente entre o agente e o Azure Pipelines ou Azure DevOps Server. Além disso, você deve ser um administrador local no servidor a fim de configurar o agente.

Ao registrar um agente, escolha entre os tipos de autenticação a seguir 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
  • Alternativa Conecte-se ao TFS ou ao Azure DevOps Server usando a autenticação Básica. Depois de selecionar Alternativa, você será solicitado a fornecer suas credenciais.

Os agentes do Windows têm as duas opções de autenticação adicionais a seguir no Azure DevOps Server.

  • Negociar Conectar-se ao Azure DevOps Server como um usuário diferente do usuário conectado por meio de um esquema de autenticação do Windows, como NTLM ou Kerberos. Depois de selecionar Negociar, você será solicitado a fornecer credenciais.
  • Integrado (Padrão): conectar um agente do Windows ao Azure DevOps Server usando as credenciais do usuário conectado por meio de um esquema de autenticação do Windows, como NTLM ou Kerberos. Você não será solicitado a fornecer credenciais depois de escolher esse método.

Importante

Seu servidor precisa ser configurado para dar suporte ao método de autenticação para usar 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

Você pode executar seu agente auto-hospedado como um serviço ou um processo interativo. Após ter configurado o agente, é recomendável que você primeiro experimente-o no modo interativo para se certificar que ele funciona. Em seguida, para uso de produção, é recomendável que você execute o agente em um dos modos a seguir para que ele permaneça de forma confiável em um estado de execução. Esses modos também garantem que o agente seja iniciado automaticamente se o computador for reiniciado.

  1. Como um serviço. Você pode aproveitar 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 ele é executado como um serviço.

  2. Como um processo interativo com o logon automático habilitado. Em alguns casos, talvez seja necessário executar o agente interativamente para uso em produção – por exemplo, para executar testes de interface do usuário. Quando o agente está configurado para ser executado nesse modo, a economia de tela também é desabilitada. 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 política de domínio ou executar o agente em um computador de grupo de trabalho em que as políticas de domínio não se aplicam.

    Observação

    Há riscos de segurança ao habilitar o logon automático ou desabilitar o protetor de tela, pois você permite que outros usuários acessem o computador e usem a conta que faz logon automaticamente. Se você configurar o agente para ser executado dessa maneira, deverá garantir que o computador seja fisicamente protegido; por exemplo, localizado em uma instalação segura. Se você usa a Área de Trabalho Remota para acessar o computador no qual um agente está executando o logon automático, simplesmente fechar o Área de Trabalho Remota fará com que o computador seja bloqueado e qualquer teste de interface do usuário executado nesse agente poderá 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 do agente

Se você executar um agente como um serviço ou interativamente, poderá escolher qual conta do computador você usa para executar o agente. (Observe que isso é diferente das credenciais que você usa ao registrar o agente no Azure Pipelines ou no Azure DevOps Server.) A escolha da conta do agente depende apenas das necessidades das tarefas em execução nos seus trabalhos de build e implantação.

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

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

Versão e atualizações do agente

Atualizamos o software do agente a cada período de algumas semanas no Azure Pipelines. Indicamos a versão do agente no formato {major}.{minor}. Por exemplo, se a versão do agente for 2.1, a versão principal será 2 e a versão secundária será 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, os agentes auto-hospedados geralmente poderão ser atualizados automaticamente (defina essa configuração em Pools de agentes, selecione seu agente, Configurações – o padrão é habilitado) pelo Azure Pipelines. Uma atualização é solicitada quando um recurso de 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 fazer isso facilmente na guia Pools de agentes na sua organização. Seus pipelines não serão executados até que possam direcionar um agente compatível.

Para atualizar agentes auto-hospedados

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

    Configurações de projeto, Pools de agentes

  2. Selecione o 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 ....

    Atualizar Agente

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

    Confirmação para atualizar todos os agentes

  4. Uma solicitação de atualização é enfileirada para cada agente no pool e executada quando todos os trabalhos em execução no momento são concluídos. A atualização normalmente leva apenas alguns instantes – 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 dos 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 for 2.1, a versão principal será 2 e a versão secundária será 1.

Quando o Azure DevOps Server 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 de 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 a camada de aplicativo e essa versão será oferecida como 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 fazer isso com facilidade na guia Pools de agentes, na sua coleção de projetos. Seus pipelines não serão executados até que possam direcionar um agente compatível.

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

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

Observação

Para servidores sem acesso à Internet, copie manualmente o arquivo zip do agente para a ordem a seguir, 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.

Perguntas frequentes

Como fazer para ter certeza de que tenho a versão mais recente do agente v2?

  1. Navegue até a guia Pools de agentes:

    1. Entre em 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 Pool de agentes.

    1. Entre 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 da coleção, 2019.

    2. Escolha Pools de agentes.

      Escolha Pools de agentes, 2019.

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

  3. Verifique se o agente está habilitado.

  4. Navegue até a guia Funcionalidades:

    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. Selecione a guia Funcionalidades.

      Selecione a guia Funcionalidades.

      Observação

      Os agentes hospedados pela Microsoft não exibem funcionalidades do sistema. Para obter uma lista de softwares instalados em agentes hospedados pela Microsoft, confira 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. Selecione a guia Funcionalidades.

      Guia funcionalidades 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. Selecione a guia Funcionalidades.

      Escolha a guia Funcionalidades, 2019.

  5. Procure a funcionalidade Agent.Version. Você pode verificar esse valor em relação à versão publicada mais recente do agente. Confira Agente do Azure Pipelines e confira a página para ver o número de versão mais alto listado.

  6. Cada agente é atualizado automaticamente quando executa uma tarefa que exige uma versão mais recente do agente. Se você 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 v2 que fazem parte de um pool do Azure DevOps Server?

Sim. No Azure DevOps Server 2019 e versões posteriores, você pode configurar o servidor para procurar os arquivos de pacote do agente em um disco local. Essa configuração substituirá a versão padrão que veio com o servidor quando ele foi lançado. 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 de pacote do agente (no formulário .zip ou .tar.gz) na página Versões do GitHub do Agente do Azure Pipelines.

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

  3. Tudo pronto! Seu Azure DevOps Server agora usará os arquivos locais sempre que os agentes forem atualizados. Cada agente é atualizado automaticamente quando executa uma tarefa que exige uma versão mais recente do agente. No entanto, se você quiser atualizar manualmente alguns agentes, clique com o botão direito do mouse no pool e selecione Atualizar todos os agentes.

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

Em muitos casos, sim. Especificamente:

  • Se você usar um agente auto-hospedado, poderá executar builds incrementais. Por exemplo, se você definir um pipeline que não limpa o repositório e não executa um build limpo, normalmente seus builds serão executados mais rapidamente. Ao usar um agente hospedado pela Microsoft, você não obtém esses benefícios (a menos que você use recursos como cache), pois o agente é destruído após a conclusão do pipeline de build ou de lançamento.

  • Um agente hospedado pela Microsoft pode levar mais tempo para iniciar o seu build. Embora geralmente leva apenas alguns segundos para que o 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 do nosso sistema.

Eu posso instalar vários agentes auto-hospedados no mesmo computador?

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 basicamente orquestram implantações e não fazem muito trabalho no agente em si.

Em outros casos, você pode observar que não há muita eficiência em executar vários agentes no mesmo computador. Por exemplo, talvez não seja válido para agentes que executam compilações que consomem muitos recursos de disco e E/S.

Você também poderá encontrar problemas se os trabalhos de build paralelos usarem a mesma implantação de ferramenta singleton, como pacotes npm. Por exemplo, um build pode atualizar uma dependência enquanto outro build está usando essa dependência: isso poderia causar erros e resultados 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 tiver sido terminado, um segundo comando será enviado com um tempo limite de 2,5 segundos. Se o processo não tiver terminado, o agente emitirá um comando para encerrar o processo. Se o processo não atender às duas solicitações iniciais de término, ele será encerrado. O processo da solicitação inicial ao término leva aproximadamente 10 segundos.

Os comandos emitidos para o processo para cancelar o pipeline são diferentes 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 de Ctrl+Break, seguido de Process.Kill.

Como posso disparar atualizações do 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

Observação

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

Parâmetros de URI

Nome Em Obrigatório Type Descrição
agentId Consulta Falso string O agente a ser atualizado. Se não for especificado, a atualização será disparada para todos os agentes.
organization caminho True string O nome da organização do Azure DevOps.
poolId caminho True integer int32 O pool de agentes a ser usado
api-version Consulta Falso string Versão da API a ser usada. Isso deve ser definido como '6.0' para usar essa versão da api.

Para disparar a atualização do agente – o corpo da solicitação deve estar vazio.

Observação

O Agente do Azure Pipelines é o código aberto no GitHub.

Saiba mais

Para obter mais informações sobre agentes, confira os módulos a seguir do roteiro de aprendizagem Criar aplicativos com o Azure DevOps.