Agentes do Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018
Observação
Em Microsoft Team Foundation Server (TFS) 2018 e versões anteriores, pipelines de build e versão são chamados de definições, execuções são chamadas de builds, conexões de serviço são chamadas de pontos de extremidade de serviço, estágios são chamados de ambientes e trabalhos são chamados de fases.
Para criar seu código ou implantar seu software usando Azure Pipelines, você precisa de pelo menos um agente. Conforme você adicionar código e pessoas, eventualmente precisará de mais.
Quando o pipeline é executado, o sistema inicia um ou mais trabalhos. Um agente está computando a infraestrutura com o software do agente instalado que executa um trabalho por vez.
Os trabalhos podem ser executados diretamente no computador host do agente ou em um contêiner.
Agentes hospedados pela Microsoft
Se seus pipelines estiverem em Azure Pipelines, você tem uma opção conveniente para executar seus trabalhos usando um agente hospedado pela Microsoft. Com os agentes hospedados pela Microsoft, a manutenção e as atualizações são feitas para você. Cada vez que você executa um pipeline, obtém uma máquina virtual nova 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 da máquina virtual, como o check-out de código, ficará indisponível para o próximo trabalho). Os agentes hospedados pela Microsoft podem executar trabalhos diretamente na VM ou em um contêiner.
Azure Pipelines fornece um pool de agentes 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 um agente auto-hospedado.
Dica
Você pode experimentar um agente hospedado pela Microsoft sem custo.
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 em Azure Pipelines ou Azure DevOps Server, anteriormente nomeado Team Foundation Server (TFS). Agentes auto-hospedados oferecem mais controle para instalar o software dependente necessário para suas compilações e implantações. Além disso, os caches no nível do computador e a configuração persistem da execução para a 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 de seus pipelines.
Dica
Antes de instalar um agente auto-hospedado, convém ver se um pool de agentes hospedado pela Microsoft funcionará para você. Em muitos casos, esta é a maneira mais simples de começar. Tente.
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:
- Agente macOS
- Agente Linux (x64, ARM, ARM64, RHEL6)
- agente Windows (x64, x86)
- Agente do Docker
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 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 um computador, você pode instalar qualquer outro software nesse computador, conforme exigido pelos trabalhos.
Observação
Os agentes são amplamente compatíveis com versões anteriores. Qualquer versão do agente deve ser compatível com qualquer versão Azure DevOps desde que Azure DevOps não exija uma versão mais alta do agente.
Só damos suporte à versão mais recente do agente, pois essa é a única versão garantida para ter todos os patches e correções de bug atualizados.
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 dimensionados 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 para manter em espera, um número máximo de máquinas virtuais no conjunto de dimensionamento e Azure Pipelines gerencia o dimensionamento de seus agentes para você.
Para obter mais informações, consulte agentes do conjunto 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 em sua organização. Se sua organização tiver um único trabalho paralelo, você poderá executar um único trabalho por vez em sua organização, com quaisquer 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. Em 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 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, consulte trabalhos paralelos em Azure Pipelines.
Talvez você precise 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ê só é limitado pelo número de agentes que tem.
Funcionalidades
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, nesse caso eles são chamados de recursos do sistema ou aqueles que você define, nesse caso, eles são chamados de recursos de usuário.
O software do agente determina automaticamente vários recursos do sistema, como o nome do computador, o tipo de sistema operacional e versões de determinado software instalado no computador. Além disso, variáveis de ambiente definidas no computador aparecem automaticamente na lista de recursos 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, quaisquer alterações nas variáveis de ambiente feitas enquanto o agente estiver em execução não serão coletadas e usadas por nenhuma tarefa. Se você tiver variáveis de ambiente confidenciais que são alteradas e não quiser que elas sejam armazenadas como funcionalidades, você poderá ignorá-las definindo a VSO_AGENT_IGNORE variável de ambiente, com uma lista delimitada por vírgulas de variáveis a ser ignorada. Por exemplo, PATH é uma variável crítica que talvez você queira 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 recursos que correspondem às demandas especificadas no pipeline. Como resultado, as funcionalidades do agente permitem direcionar trabalhos para agentes específicos.
Observação
As demandas e as funcionalidades são projetadas 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, você não precisa usar recursos com agentes hospedados pela Microsoft.
Configurar recursos do agente
Você pode exibir os detalhes de um agente, incluindo suas funcionalidades de versão e sistema e gerenciar seus recursos de usuário, navegando até pools do Agente e selecionando a guia Recursos para o agente desejado.
No navegador da Web, navegue até pools do Agente:
Escolha Azure DevOps, configurações da organização.

Escolha pools do Agente.

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

Escolha pools do Agente.

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

Escolha pools do Agente.

Navegue até o projeto e escolha Configurações (ícone de engrenagem) >Filas do Agente.

Escolha Gerenciar pools.

Navegue até a guia funcionalidades:
Na guia Pools do Agente , selecione o pool de agentes desejado.

Selecione Agentes e escolha o agente desejado.

Escolha a guia Recursos .

Observação
Os agentes hospedados pela Microsoft não exibem recursos do sistema. Para obter uma lista de softwares instalados em agentes hospedados pela Microsoft, consulte Usar um agente hospedado pela Microsoft.
Na guia Pools do Agente , selecione o pool desejado.

Selecione Agentes e escolha o agente desejado.

Escolha a guia Recursos .

Na guia Pools do Agente , selecione o pool desejado.

Selecione Agentes e escolha o agente desejado.

Escolha a guia Recursos .

Selecione o agente desejado e escolha a guia Recursos .

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, consulte Reiniciar Windows agente, reiniciar agente linux e reiniciar agente Mac.
Comunicação
Comunicação com o Azure Pipelines
Comunicação com TFS
O agente se comunica com 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 Azure Pipelines ou Azure DevOps Server acontecem por 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.


Aqui está um padrão de comunicação comum entre o agente e Azure Pipelines ou Azure DevOps Server.
O usuário registra um agente com 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 apenas no momento do registro e não é mantida no agente, nem é usada em qualquer comunicação adicional entre o agente e Azure Pipelines ou Azure DevOps Server. Depois que o registro é concluído, o agente baixa um token OAuth do ouvinte e o usa para escutar a fila de trabalho.
O agente escuta para ver se uma nova solicitação de trabalho foi postada para ele na fila de trabalho em Azure Pipelines/Azure DevOps Server usando 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 por Azure Pipelines/Azure DevOps Server para a identidade com escopo especificada no pipeline. Esse token tem duração curta e é usado pelo agente para acessar recursos (por exemplo, código-fonte) ou modificar recursos (por exemplo, carregar resultados de teste) em Azure Pipelines ou Azure DevOps Server dentro desse trabalho.
Depois que o trabalho é concluído, o agente descarta o token OAuth específico do trabalho e volta a verificar se há uma nova solicitação de trabalho usando o token OAuth do ouvinte.
O conteúdo das mensagens trocadas entre o agente e Azure Pipelines/Azure DevOps Server são protegidos 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.
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" para 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 um 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 pelo 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 a Azure Pipelines ou Team Foundation Server, conforme mostrado no esquema a seguir.

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 e não é mantida no agente e não é usada em nenhuma comunicação subsequente entre o agente e Azure Pipelines ou Azure DevOps Server. Além disso, você deve ser um administrador local no servidor para configurar o agente.
Seu agente pode autenticar para Azure Pipelines usando o seguinte método:
Seu agente pode autenticar para Azure DevOps Server ou TFS usando um dos seguintes métodos:
Pat (Token de Acesso Pessoal):
Gere e use um PAT para conectar um agente com Azure Pipelines ou TFS 2017 e mais recente. O PAT é o único esquema que funciona com o Azure Pipelines. O PAT deve ter o escopo de Pools de Agentes (leitura, gerenciamento) (para um agente de grupo de implantação , o PAT deve ter o escopo de grupo de implantação (leitura, gerenciamento) e, embora um único PAT possa ser usado para registrar vários agentes, o PAT é usado apenas no momento do registro do agente e não para comunicação subsequente. Para obter mais informações, consulte a seção Autenticar com um PAT (token de acesso pessoal) nos artigos de agentes auto-hospedados Windows, Linux ou macOS.
Para usar um PAT com Azure DevOps Server, seu servidor deve ser configurado com HTTPS. Consulte as configurações e a segurança do site.
Integrado
Conexão um agente de Windows para o TFS usando as credenciais do usuário conectado por meio de um esquema de autenticação do Windows, como NTLM ou Kerberos.
Para usar esse método de autenticação, primeiro você deve configurar o servidor TFS.
Entre no computador em que você está executando o TFS.
Iniciar Serviços de Informações da Internet (IIS) Manager. Selecione seu site TFS e verifique se Windows Autenticação está habilitada com um provedor válido, como NTLM ou Kerberos.


Negotiate
Conexão ao TFS como um usuário diferente do usuário conectado por meio de um esquema de autenticação do Windows, como NTLM ou Kerberos.
Para usar esse método de autenticação, primeiro você deve configurar o servidor TFS.
Faça logon no computador em que você está executando o TFS.
Iniciar Serviços de Informações da Internet (IIS) Manager. Selecione seu site TFS e verifique se Windows Autenticação está habilitada com o provedor Negotiate e com outro método, como NTLM ou Kerberos.


Alternativo
Conexão ao TFS usando a autenticação básica. Para usar esse método, primeiro você deve configurar HTTPS no TFS.
Para usar esse método de autenticação, você deve configurar o servidor TFS da seguinte maneira:
Entre no computador em que você está executando o TFS.
Configure a autenticação básica. Consulte Usar
tfxno Team Foundation Server 2015 usando a Autenticação Básica.
Interativo vs. serviço
Você pode executar seu agente auto-hospedado como um serviço ou um processo interativo. Depois de configurar o agente, recomendamos primeiro experimentá-lo no modo interativo para garantir que ele funcione. Em seguida, para uso em produção, recomendamos que você execute o agente em um dos modos a seguir para que ele permaneça confiável em um estado em execução. Esses modos também garantem que o agente seja iniciado automaticamente se o computador for reiniciado.
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.
Como um processo interativo com 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 o protetor 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 porque você permite que outros usuários andem até 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ê 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 quaisquer testes de interface do usuário executados neste agente podem 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 de computador você usa para executar o agente. (Observe que isso é diferente das credenciais que você usa ao registrar o agente com Azure Pipelines ou Azure DevOps Server.) A escolha da conta do agente depende apenas das necessidades das tarefas em execução em 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 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 codificados que exigem um navegador, o navegador será iniciado no contexto da conta do agente.
Em 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 em 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 atualizados. Se a versão mais recente do agente for diferente apenas na versão secundária, agentes auto-hospedados geralmente poderão ser atualizados automaticamente (configure essa configuração em pools do Agente, selecione seu agente, Configurações - o padrão é habilitado) 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 do Agente em sua organização. Seus pipelines não serão executados até que possam direcionar um agente compatível.
Para atualizar agentes auto-hospedados
Navegue até Project configurações, pools do Agente.

Selecione o pool de agentes e escolha Atualizar todos os agentes.

Você também pode atualizar agentes individualmente escolhendo o Agente de Atualização no menu ...

Selecione Atualizar para confirmar a atualização.

Uma solicitação de atualização é enfileirada para cada agente no pool, que é executada quando todos os trabalhos em execução são concluídos no momento. 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 de seus agentes na guia Agentes .
Atualizamos o software do agente a cada atualização no Azure DevOps Server e no TFS.
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 servidor Azure DevOps Server ou TFS tem uma versão mais recente do agente e esse agente mais recente é apenas 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 na 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 do Agente em sua coleção de projetos. Seus pipelines não serão executados até que possam ser direcionados a um agente compatível.
Você pode exibir a versão de um agente navegando até pools do Agente e selecionando a guia Funcionalidades do agente desejado, conforme descrito em Configurar recursos 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 o pool de agentes específico?.
Observação
Para servidores sem acesso à Internet, copie manualmente o arquivo zip do agente para C:\ProgramData\Microsoft\Azure DevOps\Agents\ usar como um arquivo local.
Perguntas frequentes
Como fazer ter certeza de que tenho a versão mais recente do agente v2?
Navegue até a guia Pools do Agente :
Escolha Azure DevOps, configurações da organização.

Escolha pools do Agente.

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

Escolha pools do Agente.

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

Escolha pools do Agente.

Navegue até seu projeto e escolha Configurações (ícone de engrenagem) >Filas do Agente.

Escolha Gerenciar pools.

Clique no pool que contém o agente.
Verifique se o agente está habilitado.
Navegue até a guia recursos:
Na guia Pools do Agente , selecione o pool de agentes desejado.

Selecione Agentes e escolha o agente desejado.

Escolha a guia Recursos .

Observação
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.
Na guia Pools do Agente , selecione o pool desejado.

Selecione Agentes e escolha o agente desejado.

Escolha a guia Recursos .

Na guia Pools do Agente , selecione o pool desejado.

Selecione Agentes e escolha o agente desejado.

Escolha a guia Recursos .

Selecione o agente desejado e escolha a guia Recursos .

Procure a
Agent.Versionfuncionalidade. Você pode verificar esse valor em relação à versão mais recente do agente publicado. Consulte Azure Pipelines Agent e verifique a página para obter o número de versão mais alto listado.Cada agente se atualiza automaticamente quando executa uma tarefa que requer 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 de Azure DevOps Server?
Sim. A partir do Azure DevOps Server 2019, 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 no momento de sua versão. Esse cenário também se aplica quando o servidor não tem acesso à Internet.
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) da página Azure Pipelines Agent GitHub Releases.
Transfira os arquivos de pacote baixados para cada camada de aplicativo 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
%ProgramData%\Microsoft\Azure DevOps\Agentspasta.Vocês estão prontos! Seu Azure DevOps Server 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 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, seus builds normalmente serão executados mais rapidamente. Quando você usa um agente hospedado pela Microsoft, não obtém esses benefícios porque o agente é destruído após a conclusão do pipeline de build ou lançamento.
Um agente hospedado pela Microsoft pode levar mais tempo para iniciar o seu build. Embora geralmente leve 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.
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.
Você pode descobrir que, em outros casos, você não ganha muita eficiência executando vários agentes no mesmo computador. Por exemplo, pode não valer a pena para agentes que executam builds que consomem muitos recursos de E/S e disco.
Você também poderá ter problemas se trabalhos de build paralelos estiverem usando 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 de 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 encerrar o processo. Se o processo não atender às duas solicitações iniciais de encerramento, ele será encerrado. Da solicitação inicial ao encerramento leva aproximadamente 10 segundos.
Os comandos emitidos para o processo são diferentes com base no sistema operacional do agente.
- macOS e Linux – os comandos enviados são SIGINT, seguidos por SIGTERM, seguidos por SIGKILL.
- Windows - Os comandos enviados para o processo são Ctrl+C, seguidos por Ctrl+Break, seguidos por Process.Kill.
Como posso disparar atualizações do agente programaticamente para um pool de agentes específico?
Você pode disparar atualizações do agente para o pool usando a próxima API:
POST https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0
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
Azure Pipelines Agent está código aberto no GitHub.
Saiba mais
Para obter mais informações sobre agentes, consulte os seguintes módulos dos aplicativos build com Azure DevOps roteiro de aprendizagem.