Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure DevOps Services | Servidor Azure DevOps | Azure DevOps Server 2022 | Azure DevOps Server 2020
Você precisa de pelo menos um agente para criar seu código ou implantar seu software usando o Azure Pipelines. À medida que sua base de código e sua equipe crescem, você precisa de vários agentes.
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 que são hospedados em suas VMs (máquinas virtuais). | Serviços do Azure DevOps, Servidor do Azure DevOps |
| Agentes de pools de DevOps gerenciados | Os Pools de DevOps gerenciados são um serviço totalmente gerenciado. Máquinas virtuais ou contêineres que alimentam os agentes vivem em uma assinatura do Microsoft Azure e não em sua própria assinatura do Azure. | Azure DevOps Services |
| Agentes de Conjuntos de Dimensionamento de Máquinas Virtuais do Azure | Uma forma de agentes auto-hospedados que usa conjuntos de dimensionamento de máquinas virtuais do Azure e pode ser dimensionado automaticamente para atender às demandas. Se você estiver considerando usar pools de agentes autoscaláveis e autohospedados, recomendamos que você considere Pools de DevOps Gerenciados. Para obter mais informações, consulte Comparar Pools de DevOps Gerenciados com agentes de Conjuntos de Dimensionamento de Máquinas Virtuais do Azure e visão geral dos Pools de DevOps Gerenciados. |
Azure DevOps Services |
Você pode executar trabalhos diretamente no computador host do agente ou em um contêiner.
Agentes hospedados pela Microsoft
Se os pipelines estiverem no Azure Pipelines, você poderá executar seus trabalhos convenientemente usando um agente hospedado pela Microsoft. Com agentes hospedados pela Microsoft, a manutenção e as atualizações ocorrem automaticamente.
Você sempre tem a versão mais recente da imagem da VM especificada em 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. Qualquer alteração que uma tarefa realiza no sistema de arquivos da máquina virtual, como fazer o check-out do código, não estará disponível para a próxima tarefa.
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, esse processo é a maneira mais simples de executar seus trabalhos. Você pode experimentá-lo primeiro para verificar se ele funciona para sua compilação ou implantação. Caso contrário, você pode usar agentes de Conjuntos de Dimensionamento de Máquinas Virtuais ou um agente hospedado por você.
Dica
Você pode experimentar um agente hospedado pela Microsoft sem custo.
Agentes auto-hospedados
Um agente auto-hospedado é um agente que você configura para executar trabalhos e gerenciar a si mesmo. Você pode usar agentes auto-hospedados no Azure Pipelines ou no Azure DevOps Server. Agentes autogerenciados oferecem mais controle para instalar 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 de execução para execução, o que pode aumentar a velocidade.
Embora vários agentes possam ser instalados por computador, é altamente recomendável que você instale apenas um agente por computador. Quando você instala dois ou mais agentes, isso 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 funciona para você. Em muitos casos, um pool de agentes hospedado pela Microsoft é a maneira mais simples de começar. Experimente.
Você pode instalar o agente em computadores Linux, macOS e Windows. Você também pode instalar o agente em um contêiner do Docker. Para obter mais informações sobre como instalar um agente auto-hospedado, consulte:
No macOS, você precisa remover o atributo especial no arquivo de download para impedir que a proteção do macOS 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 que seus trabalhos exigem.
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 mais alta do agente.
Oferecemos suporte apenas à versão mais recente do agente, pois essa é a única versão garantida de ter todos os patches atualizados e correções de bugs.
Versões do Node.js runner
O agente é fornecido com várias versões de bibliotecas de Node.js para dar suporte a tarefas de destino que usam diferentes manipuladores de Node.js.
Todas as tarefas oficiais do Azure DevOps usam Node.js biblioteca 20 como um manipulador universal. No entanto, os clientes ainda podem usar tarefas personalizadas que utilizem as bibliotecas Node.js 6, Node.js 10 ou Node.js 16, que não são mais suportadas. Para dar suporte à compatibilidade retroativa com um nó que atingiu o fim do suporte, fornecemos os seguintes métodos de autoatendimento para que você possa instalar manualmente o ambiente de execução designado do Node.js:
Instale manualmente o Node.js 6 ou Node.js 10 executor. Para obter mais informações, consulte o suporte ao executor de Node.js.
Use a tarefa
NodeTaskRunnerInstaller@0em seus pipelines que exigem a biblioteca desatualizada Node.js 6 ou Node.js 10.Instale um pacote de agente que inclua bibliotecas Node.js 6 e Node.js 10.
O Azure Pipelines fornece duas versões de pacotes de agente:
-
vsts-agent-\: pacotes que dão suporte a bibliotecas Node.js 6 e Node.js 10. -
pipelines-agent-\: pacotes que não dão suporte a bibliotecas Node.js 6 e Node.js 10. No futuro, essa versão do pacote se tornará o pacote de agente padrão.
Se suas tarefas não exigirem a biblioteca Node.js 6 ou Node.js 10 e você não quiser instalar a biblioteca Node.js 6 ou Node.js 10 no computador do agente, você poderá instalar o agente nesta documentação, em Downloads de Agente Alternativo.
-
Agentes de Conjuntos de Dimensionamento de Máquinas Virtuais do Azure
Os agentes dos Conjuntos 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.
O Azure Pipelines gerencia o dimensionamento de seus agentes para você. Especifique os seguintes fatores:
- Um conjunto escalável de máquinas virtuais
- O número de agentes a serem mantidos em espera
- Um número máximo de máquinas virtuais no conjunto de escalabilidade
Para obter mais informações, consulte Agentes de Conjuntos de Dimensionamento de Máquinas Virtuais do Azure.
Agentes de pools de DevOps gerenciados
Os Pools de DevOps Gerenciados capacitam as equipes de desenvolvimento a criar pools de agentes do Azure DevOps de forma rápida e fácil que são adaptados às necessidades específicas de uma equipe.
Pools de DevOps gerenciados:
- Implementa as práticas recomendadas de segurança.
- Fornece maneiras de equilibrar o custo e o desempenho.
- Fornece caminhos para os cenários mais comuns.
- Reduz significativamente o tempo necessário para criar e manter pools personalizados.
Os Pools de DevOps Gerenciados são uma evolução dos pools de agentes dos Conjuntos de Dimensionamento de Máquinas Virtuais do Azure. Ele simplifica ainda mais a criação de pool personalizado, melhorando ainda mais a escalabilidade e a confiabilidade dos pools personalizados. Os Pools de DevOps gerenciados são um serviço totalmente gerenciado. As máquinas virtuais ou contêineres onde os agentes são executados estão em uma assinatura do Microsoft Azure e não na sua própria assinatura do Azure, semelhante aos pools de agentes dos Virtual Machine Scale Sets do Azure. Para obter mais informações, confira a documentação Pools de DevOps Gerenciados.
Trabalhos paralelos
O conceito de trabalhos paralelos representa 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. Quaisquer outros trabalhos simultâneos sã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 paga por trabalhos simultâneos auto-hospedados em versões. Você só está 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. Os recursos são pares nome/valor que são:
- Funcionalidades que o software do agente descobre, chamadas de funcionalidades do sistema.
- Recursos que você define, chamados de recursos do usuário.
O software de agente determina automaticamente várias capacidades do sistema. Esses recursos incluem o nome do computador, o tipo de sistema operacional e as versões de determinados softwares instalados no computador. Além disso, as variáveis de ambiente definidas no computador são exibidas automaticamente na lista de funcionalidades do sistema.
Quando você armazena variáveis de ambiente como funcionalidades, os valores de funcionalidade armazenados são usados para definir as variáveis de ambiente quando um agente é executado. Além disso, quando você faz alterações em variáveis de ambiente enquanto o agente está em execução, elas não são captadas e usadas por nenhuma tarefa. Se você não quiser que variáveis de ambiente confidenciais que mudam sejam armazenadas como funcionalidades, você pode direcionar o agente para ignorá-las. Defina a VSO_AGENT_IGNORE variável de ambiente, 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 apenas para agentes que têm recursos que correspondem às demandas especificadas no pipeline. Como resultado, as funcionalidades do agente permitem que você direcione os trabalhos para os agentes específicos.
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. 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 detalhes do agente, incluindo recursos de versão e sistema, e gerenciar seus recursos de usuário. Vá para Pools de Agentes e selecione a guia Capacidades para o agente desejado.
No navegador da Web, vá para Pools de Agentes:
Vá para a guia Recursos :
Na guia Pools de agentes, selecione o pool de agentes desejado.
Selecione Agentes e escolha o agente desejado.
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.
Na guia Pools de agentes, selecione o pool desejado.
Selecione Agentes e escolha o agente desejado.
Selecione a guia Funcionalidades.
Para registrar uma nova funcionalidade com o agente, selecione 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 o Azure DevOps Server. Ele determina qual tarefa precisa executar e informa os registros e o status da tarefa. O agente sempre inicia essa comunicação.
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 configurar o agente para topologias diferentes, conforme mostrado nos exemplos a seguir.
Aqui está um padrão de comunicação comum entre o agente e o Azure Pipelines ou o Azure DevOps Server:
O usuário registra um agente com o Azure Pipelines ou Azure DevOps Server adicionando-o a um pool de agentes. Para registrar um agente nesse pool de agentes, você precisa ter a função de administrador do pool de agentes. A função de administrador do pool do Agente é necessária apenas no momento do registro e não é mantida no agente. Ele não é usado em nenhuma comunicação adicional entre o agente e o Azure Pipelines ou o Azure DevOps Server.
Após a conclusão do registro, o agente baixa um
listener OAuth tokene o usa para monitorar a fila de trabalho.O agente escuta se uma nova solicitação de trabalho é postada na fila de trabalho no Azure Pipelines ou no Servidor do Azure DevOps usando uma pesquisa longa HTTP. Quando um trabalho está disponível, o agente baixa o trabalho e um
job-specific OAuth token. O Azure Pipelines ou o Azure DevOps Server gera um token de curta duração para a identidade com escopo definido especificada no pipeline.O agente usa o token para acessar ou modificar recursos no Azure Pipelines ou no Servidor do Azure DevOps dentro desse trabalho. Por exemplo, ele usa o token para acessar o código-fonte ou carregar resultados de teste.
O agente descarta o token específico
OAuthda tarefa após a conclusão dela e verifica se há uma nova solicitação de trabalho usando o token OAuth do ouvinte.
O conteúdo das mensagens trocadas entre o agente e o Azure Pipelines ou o Servidor do Azure DevOps é protegido 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 enviar para o agente. O agente descriptografa o conteúdo do trabalho usando sua chave privada.
Este método protege os segredos armazenados em pipelines ou em grupos de variáveis quando trocados com o agente.
Observação
O agente fornece suporte para saída de codificação de cliente UTF-8. No entanto, se o sistema não usar a codificação UTF-8, você poderá encontrar alguns problemas com a saída do log. Por exemplo, os logs podem conter caracteres que a codificação do sistema não reconhece, por isso eles podem parecer estar embaralhados ou que os símbolos pareçam estar 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 executados no Azure.
Se os recursos do Azure forem executados 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. Em seguida, você pode configurar as regras de firewall para sua rede virtual 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 agentes 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 ao Azure DevOps Server. Esse processo é demonstrado no seguinte esquema:
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 apenas no momento do registro e não persiste no agente. Ele não é usado em nenhuma comunicação subsequente entre o agente e o Azure Pipelines ou o Azure DevOps Server. Para configurar o agente, você também deve ser um administrador local no servidor.
Ao registrar um agente, selecione entre os seguintes tipos de autenticação. O processo de instalação do agente solicita 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 Servidor do Azure DevOps usando a autenticação Básica. Ao selecionar Alternar, você será solicitado a fornecer suas credenciais.
Adicionalmente, os agentes do Windows têm as duas opções de autenticação a seguir no Azure DevOps Server.
- Negociar: conecte-se ao Azure DevOps Server como um usuário diferente do usuário conectado por meio de um esquema de autenticação do Windows (por exemplo, New Technology LAN Manager (NTLM) ou Kerberos). Depois de selecionar Negociar, você será solicitado a fornecer credenciais.
- Integrado: (Padrão) Conecte um agente do Windows ao Azure DevOps Server usando as credenciais do usuário conectado por meio de um esquema de autenticação do Windows (por exemplo, NTLM ou Kerberos). Você não será solicitado a fornecer credenciais depois de selecionar esse método.
Importante
Você deve configurar o servidor para dar suporte ao método de autenticação para usar a autenticação alternativa, de negociação ou integrada.
O método de autenticação que você usa 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.
Depois de configurar o agente, recomendamos que você o experimente primeiro no modo interativo para garantir que ele funcione. Em seguida, para uso em produção, recomendamos que você execute o agente em um dos seguintes modos 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 serviço: você pode usar o gerenciador de serviços do sistema operacional para gerenciar o ciclo de vida do agente. A experiência de atualizar automaticamente o agente é melhor quando você executa o agente como um serviço.
Como um processo interativo com entrada automática habilitada: 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 você configura um agente para ser executado nesse modo, o protetor de tela é desabilitado. Algumas políticas de domínio podem impedir que você habilite a entrada automática ou desabilite o salvamento 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 a entrada automática ou desabilitar o salvamento de tela. Outros usuários podem acessar o computador e usar a conta que entra automaticamente. Se você configurar o agente para ser executado dessa forma, deverá garantir que o computador esteja fisicamente protegido (por exemplo, localizado em uma instalação segura).
Se você usar uma área de trabalho remota para acessar um computador no qual um agente está em execução com login automático, fechar a área de trabalho remota fará com que o computador seja bloqueado. Os testes de interface do usuário executados neste agente podem falhar. Para evitar esse problema, use o
tsconcomando 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. A escolha da conta do agente depende apenas das necessidades das tarefas executadas em seus trabalhos de build e implantação.
Por exemplo, para executar tarefas usando a autenticação do Windows para acessar um serviço externo, o agente deve ser executado usando uma conta com acesso a esse serviço. No entanto, se você estiver executando testes de interface do usuário, como selenium ou testes de interface do usuário codificados que exigem um navegador, o navegador será aberto no contexto da conta do agente.
No Windows, recomendamos que você use uma conta de serviço, como Serviço de Rede ou Serviço Local. Essas permissões de contas são restritas e suas senhas não expiram, portanto, o agente requer menos gerenciamento ao longo do tempo.
Essas credenciais são diferentes das credenciais que você usa ao registrar o agente no Azure Pipelines ou no Azure DevOps Server.
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.
Mantemos os agentes hospedados pela Microsoft atualizados. Se a versão mais recente do agente for diferente apenas na versão menor, o Azure Pipelines poderá atualizar automaticamente agentes auto-hospedados. A configuração padrão está habilitada. Você pode definir essa configuração em pools do Agente selecionando seu agente e selecionando Configurações. Uma atualização é solicitada quando um recurso de plataforma ou uma das tarefas no pipeline requer uma versão mais recente do agente.
Se você executar um agente auto-hospedado interativamente ou se houver uma versão principal mais recente do agente disponível, talvez seja necessário atualizar manualmente os agentes. Você pode atualizar os agentes da guia Pools de agentes em sua organização. Os pipelines não podem ser executados sem um agente compatível.
Para atualizar agentes auto-hospedados
Vá paraConfigurações do Projeto>Pools do Agente.
Selecione o pool de agentes e, em seguida, selecione Atualizar todos os agentes.
Você também pode atualizar agentes individualmente selecionando o agente de atualização no menu ... .
Selecione Atualizar para confirmar.
Uma solicitação de atualização é enfileirada para cada agente no pool e é executada quando qualquer um dos trabalhos em execução termina. Normalmente, uma atualização leva apenas alguns instantes. Esse tempo é longo o 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 do Servidor do Azure DevOps. 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 do Azure DevOps 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 que você usa 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 é oferecida como atualização.
Se você executar o agente interativamente ou se uma versão principal mais recente do agente estiver disponível, talvez seja necessário atualizar manualmente os agentes. Você pode atualizar o agente com facilidade na guia Pools de agentes, na sua coleção de projetos. Os pipelines não podem ser executados sem um agente compatível.
Você pode visualizar a versão de um agente. Vá para pools do Agente e selecione 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 de agente programaticamente para um pool de agentes específico?.
Para servidores sem acesso à Internet, copie manualmente o arquivo ZIP do agente para a pasta 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
Estrutura do diretório do agente
Quando trabalhos de pipeline são executados em agentes, uma estrutura de diretório é criada para armazenar o código-fonte, binários e artefatos.
O diretório base do agente é o diretório em que o agente está instalado. O diretório normalmente está localizado:
-
Agentes hospedados pela Microsoft:
C:\agents\<agent version>no Windows,/Users/runner/runners/<agent version>no macOS e/home/vsts/agents/<agent version>no Linux. -
Agentes auto-hospedados:
C:\agentno Windows,Users/<username>/agent(~/agent) no macOS e/home/vsts/agentno Linux.
O diretório de trabalho do agente contém a área de trabalho onde a origem e saída dos trabalhos são armazenadas. O diretório de trabalho normalmente está localizado:
-
Agente hospedado pela Microsoft:
C:\ano Windows,/Users/runner/workno macOS e/home/vsts/workno Linux. -
Agente auto-hospedado:
C:\agent\_workno Windows,~/agent/workno macOS e/home/agent/_workno Linux.
A estrutura do diretório de trabalho é:
- /work directory
- /1 build directory/pipeline workspace
- /s source/working directory
- /b binaries directory
- /a artifacts staging directory
- /TestResults Test results directory
| Diretório | Descrição | Exemplos | Variáveis predefinidas |
|---|---|---|---|
| Diretório base do agente | Onde o agente está instalado. | Agente hospedado pela Microsoft: Windows: C:\agents\3.248.0Linux: /home/vsts/agents/3.248.0macOS - /Users/runner/runners/3.248.0Agente auto-hospedado: Windows: C:\agentLinux: home/agent macOS - ~/agent |
Agent.HomeDirectory |
| Diretório de trabalho | Onde o agente armazena o código-fonte, binários e artefatos. | Agente hospedado pela Microsoft: Windows: C:\aLinux: /home/vsts/workmacOS - /Users/runner/workAgente auto-hospedado: Windows: C:\agent\_workLinux: /home/agent/_work macOS - ~/agent/work |
Agent.WorkFolderAgent.RootDirectory System.WorkFolder |
| Criar diretório ou espaço de trabalho | Onde o trabalho de pipeline é executado. | Agente hospedado pela Microsoft: Windows: C:\a\1Linux: /home/vsts/work/1macOS - /Users/runner/work/1Agente auto-hospedado: Windows: C:\agent\_work\1Linux: /home/agent/_work/1 macOS - ~/agent/work/1 |
Agent.BuildDirectoryPipeline.Workspace |
s - Diretório de origem ou de trabalho |
Contém o código-fonte verificado no repositório. Se houver várias checkout etapas em seu trabalho, o código-fonte será baixado em diretórios nomeados de acordo com os repositórios, como uma subpasta de s. |
Agente hospedado pela Microsoft: Windows: C:\a\1\sLinux: /home/vsts/work/1/smacOS - /Users/runner/work/1/sAgente auto-hospedado: Windows: C:\agent\_work\1\sLinux: /home/agent/_work/1/s macOS - ~/agent/work/1/s |
Build.SourcesDirectory Build.RepositoryLocalPathSystem.DefaultWorkingDirectory |
b – Diretório binário |
Contém os resultados da compilação. | Agente hospedado pela Microsoft: Windows: C:\a\1\bLinux: /home/vsts/work/1/bmacOS - /Users/runner/work/1/bAgente auto-hospedado: Windows: C:\agent\_work\1\bLinux: /home/agent/_work/1/bmacOS - ~/agent/work/1/b |
Build.BinariesDirectory |
a – Diretório de armazenamento de artefatos |
Contém os artefatos de compilação. É limpo entre as execuções em agentes auto-hospedados. | Agente hospedado pela Microsoft: Windows: C:\a\1\aLinux: /home/vsts/work/1/amacOS - /Users/runner/work/1/aAgente auto-hospedado: Windows: C:\agent\_work\1\aLinux: /home/agent/_work/1/a macOS - ~/agent/work/1/a |
Build.StagingDirectoryBuild.ArtifactStagingDirectory System.ArtifactsDirectory |
TestResults diretório |
Contém os resultados do teste. É limpo entre as execuções em agentes auto-hospedados. | Agente hospedado pela Microsoft: Windows: C:\a\1\TestResultsLinux: /home/vsts/work/1/TestResultsmacOS - /Users/runner/work/1/TestResultsAgente auto-hospedado: Windows: C:\agent\_work\1\TestResultsLinux: /home/agent/_work/1/TestResults macOS - ~/agent/work/1/TestResults |
Common.TestResultsDirectory |
Em agentes hospedados pela Microsoft, um agente diferente é usado em cada execução, portanto, o diretório de trabalho não é mantido entre execuções. Em agentes auto-hospedados, somente os diretórios de preparo de artefatos e os diretórios de resultados de teste são limpos entre execuções por padrão. Para obter mais informações sobre a opção de limpeza da área de trabalho, consulte Workspace.
Para obter mais informações sobre variáveis predefinidas, consulte variáveis predefinidas.
perguntas frequentes
Como fazer ter certeza de que tenho a versão mais recente do agente?
Vá para a guia Agent Pools
Selecione o pool que contém o agente.
Verifique se o agente está habilitado.
Vá para a aba de capacidades:
Na guia Pools de agentes, selecione o pool de agentes desejado.
Selecione Agentes e escolha o agente desejado.
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.
Na guia Pools de agentes, selecione o pool desejado.
Selecione Agentes e escolha o agente desejado.
Selecione a guia Funcionalidades.
Procure a funcionalidade
Agent.Version. Você pode comparar este valor com a versão mais recente do agente publicada na página Agente do Azure Pipelines.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 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 arquivos de pacote de agente em um disco local. Essa configuração substitui 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 (em formato .zip ou .tar.gz) da página de Versões do GitHub do agente do Azure Pipelines.
Transfira os arquivos de pacote baixados para cada Camada de Aplicativo do Servidor do Azure DevOps usando um método de sua escolha (por exemplo, unidade USB, transferência de rede e assim por diante). Coloque os arquivos do agente na pasta
%ProgramData%\Microsoft\Azure DevOps\Agents. Se não houver uma pasta chamada Agents, crie uma.Tudo pronto! O Servidor do Azure DevOps agora usa os arquivos locais sempre que os agentes são 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. 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. Você não obtém esses benefícios com um agente hospedado pela Microsoft, a menos que use recursos como cache, porque o agente é destruído após a conclusão do pipeline.
Um agente hospedado pela Microsoft pode levar mais tempo para iniciar 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.
Em outros casos, você pode observar que não há muita eficiência em executar vários agentes no mesmo computador. Por exemplo, pode não valer a pena para agentes que executam builds que consomem muito espaço em disco e recursos de entrada/saída.
Você pode encontrar problemas se tarefas de construção paralela estiverem usando a mesma implantação de ferramenta única (por exemplo, pacotes npm). Uma compilação pode atualizar uma dependência enquanto outra compilação a está usando, o que pode causar resultados e erros não confiáveis.
O que os agentes fazem 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 está executando a etapa atual.
- O primeiro comando é enviado com um tempo limite de 7,5 segundos.
- Se o processo não for encerrado, um segundo comando será enviado com um tempo limite de 2,5 segundos.
- Se o processo não for encerrado, o agente ordenará que ele seja encerrado.
- Se o processo ignorar as duas solicitações iniciais de término, ele será forçadamente encerrado.
O tempo da solicitação inicial para a terminação é de aproximadamente 10 segundos.
Os comandos emitidos para o processo para cancelar o pipeline diferem de acordo com o sistema operacional do agente:
- macOS e Linux: os comandos enviados são
SIGINT, seguidos porSIGTERM, seguidos porSIGKILL. - Windows: Os comandos enviados para o processo são
Ctrl+C, seguidos porCtrl+Break, seguidos porProcess.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, consulte a API e o mapeamento de versão do Servidor do Azure DevOps.
Parâmetros de URI
| Nome | Em | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
agentId |
consulta | False |
cadeia | O agente a ser atualizado. Se não for especificado, uma atualização será disparada para todos os agentes. |
organization |
caminho | True |
cadeia | O nome da organização do Azure DevOps. |
poolId |
caminho | True |
inteiro int32 | O grupo de agentes a ser usado. |
api-version |
consulta | False |
cadeia | Versão da API a ser usada. Para usar essa versão da API, o valor deve ser definido como 6.0. |
Para disparar uma atualização do agente, o corpo da solicitação deve estar vazio.
O agente do Azure Pipelines é de software livre no GitHub.
Conteúdo relacionado
Para obter mais informações sobre agentes, consulte os seguintes módulos da construção de aplicativos no roteiro de aprendizagem Azure DevOps: