Agentes do Azure Pipelines

Serviços de DevOps do Azure | 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 você adiciona mais código e pessoas, você acabará precisando de mais.

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

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 agentes hospedados pela Microsoft, a manutenção e as atualizações são cuidadas para você. Você sempre obtém a versão mais recente da imagem da VM especificada em seu pipeline. Cada vez que você executa um pipeline, você 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 que um trabalho faça no sistema de arquivos da máquina virtual, como o código de check-out, não estará 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 agentes predefinido chamado Azure Pipelines com agentes hospedados pela 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 numa máquina, pode instalar qualquer outro software nessa máquina, conforme exigido pelos 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 Node 10 como um manipulador universal, no entanto, os clientes ainda podem usar tarefas personalizadas que usam a biblioteca desatualizada do Node 6. 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.
    • 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, um número de agentes para manter 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.

Tarefas paralelas

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 todos os trabalhos simultâneos adicionais sendo 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 em sua própria infraestrutura (auto-hospedada).

A Microsoft fornece uma camada gratuita de serviço por padrão em todas as organizações que incluem pelo menos um trabalho paralelo. Dependendo do número de pipelines simultâneos que você precisa executar, você pode precisar de 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 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, caso em que são chamados de recursos do sistema, ou aqueles que você define, caso em que são chamados de 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 os Pipelines do Azure

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. Esta comunicação é sempre iniciada pelo agente. 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. Este modelo de extração permite que o agente seja configurado em diferentes topologias, conforme mostrado abaixo.

Topologias de agente em instalações locais.

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

Segue-se 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 conjunto de agentes só é necessária no momento do registo e não é persistida no agente nem é utilizada em posteriores comunicações 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 foi publicado um pedido de trabalho novo no mesmo na fila de trabalhos no Azure Pipelines/Azure DevOps Server com uma pesquisa longa HTTP. Quando um trabalho está disponível, o agente baixa o trabalho, bem como um token OAuth específico do trabalho. Esse token é gerado pelo Azure Pipelines/Azure DevOps Server para a identidade de escopo especificada no pipeline. Este token é de curta duração e é utilizado pelo agente para aceder a recursos (por exemplo, código de origem) ou para modificar os recursos (por exemplo, carregar resultados de testes) no Azure Pipelines ou no Azure DevOps Server nesse trabalho.

  3. Após a conclusão do trabalho, o agente elimina o token de OAuth específico do trabalho e volta a verificar se existe um novo pedido de trabalho mediante a utilização do token de OAuth do serviço de escuta.

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. É assim que os segredos armazenados em pipelines ou grupos de variáveis são protegidos à medida que são 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 os ambientes no local não tiverem conectividade a um conjunto de agentes alojados pela Microsoft (que é, geralmente, o caso devido a firewalls intermédias), terá de configurar manualmente um agente autoalojado nos computador(es) no local. Os agentes têm de ter conectividade aos ambientes no local de destino e acesso à Internet para se ligarem ao Azure Pipelines ou ao Team Foundation Server, como mostra o seguinte esquema.

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 conjunto de agentes só é necessária no momento do registo e não é persistida no agente nem é utilizada em comunicações subsequentes 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.

Os agentes do Windows têm as duas opções de autenticação adicionais 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 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 o experimente primeiro no modo interativo, para ter a certeza de que funciona. 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. Pode tirar partido do gestor de serviços do sistema operativo para gerir o ciclo de vida do agente. Além disso, a experiência de atualização automática do agente é melhor quando é executada como 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. (Observe que isso é diferente das credenciais que você usa quando registra o agente no Azure Pipelines ou no Azure DevOps Server.) 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 que usam a autenticação do Windows para acessar um serviço externo, você deve executar o agente usando uma conta que tenha 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 contas têm permissões restritas e suas 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 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 , os agentes auto-hospedados geralmente podem ser atualizados automaticamente (configure essa configuração em Pools de agentes, selecione seu agente, Configurações - o padrão está habilitado) pelo Azure Pipelines. 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 fazer isso facilmente na guia Pools de agentes em sua organização. Seus pipelines não serão executados até que possam ter como alvo 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 a camada de aplicativo e essa versão será 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 fazer isso facilmente na guia Pools de agentes em sua coleção de projetos. Seus pipelines não serão executados até que possam ter como alvo 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 v2?

  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 v2 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 serão executadas mais rapidamente. Quando você usa um agente hospedado pela Microsoft, não obtém esses benefícios (a menos que use recursos como cache) porque o agente é destruído após a conclusão do pipeline de compilação ou liberação.

  • 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 tiver 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 eliminar o processo. Se o processo não honrar os dois pedidos iniciais de rescisão, será eliminado. 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 será 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. Isso 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 .