Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022
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 equipe crescem, você precisa de vários agentes.
Quando o pipeline é executado, o sistema inicia um ou mais trabalhos. Um agente é uma infraestrutura de computação com software de agente instalado que executa um trabalho de cada vez.
O Azure Pipelines fornece vários tipos diferentes de agentes.
| Tipo de agente | Descrição | Disponibilidade |
|---|---|---|
| Agentes alojados na Microsoft | Agentes hospedados e gerenciados pela Microsoft. | Serviços de DevOps do Azure |
| Agentes autogeridos | Agentes que você configura e gerencia hospedados em suas máquinas virtuais (VMs). | Serviços de DevOps do Azure, Servidor de DevOps do Azure |
| Agentes de Pools Geridos de DevOps | O Managed DevOps Pools é um serviço totalmente gerenciado. As máquinas virtuais ou contêineres que alimentam os agentes vivem em uma assinatura do Microsoft Azure e não em sua própria assinatura do Azure. | Serviços de DevOps do Azure |
| Agentes dos Conjuntos de Escala de Máquinas Virtuais do Azure | Uma forma de agentes auto-hospedados que usa os Conjuntos de Escala de Máquina Virtual do Azure e pode ser dimensionada automaticamente para atender às demandas. Se você estiver considerando usar pools de agentes autoescaláveis e auto-hospedados, recomendamos que considere os Pools de DevOps gerenciados. Para obter mais informações, consulte Comparar Pools de DevOps Geridos com agentes de Conjuntos de Escala de Máquinas Virtuais do Azure e visão geral dos Pools de DevOps Geridos. |
Serviços de DevOps do Azure |
Você pode executar trabalhos diretamente na máquina host do agente ou em um contêiner.
Agentes alojados na Microsoft
Se seus pipelines estiverem no Azure Pipelines, você poderá executar convenientemente seus trabalhos usando um agente hospedado pela Microsoft. Com agentes hospedados pela Microsoft, a manutenção e as atualizações acontecem automaticamente.
Você sempre tem a versão mais recente da imagem da VM especificada em seu pipeline. Cada vez que executar um pipeline, obterá uma nova máquina virtual para cada trabalho no pipeline. A máquina virtual é descartada após um trabalho. Qualquer alteração feita por um trabalho no sistema de arquivos da máquina virtual, como o check-out do código, não estará disponível no próximo trabalho.
Os agentes hospedados pela Microsoft podem executar trabalhos diretamente na VM ou em um contêiner.
O Azure Pipelines fornece um conjunto de agentes predefinido chamado Azure Pipelines com agentes alojados na Microsoft.
Para muitas equipas, este processo é a forma mais simples de executar os seus trabalhos. Você pode experimentá-lo primeiro para ver se funciona para a sua compilação ou implantação. Caso contrário, você pode usar agentes de Conjuntos de Dimensionamento de Máquina Virtual ou um agente auto-hospedado.
Gorjeta
Você pode tentar um agente hospedado pela Microsoft gratuitamente.
Saiba mais sobre os agentes hospedados pela Microsoft.
Agentes autogeridos
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. Os agentes auto-hospedados oferecem mais controle para instalar o software dependente de que você precisa para suas compilações e implantaçõ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.
Embora vários agentes possam ser instalados por máquina, é altamente recomendável que você instale apenas um agente por máquina. Quando você instala dois ou mais agentes, isso 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 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 máquinas Linux, macOS e Windows. Você também pode instalar o agente em um contêiner do Docker. Para obter mais informações sobre a instalação de um agente hospedado localmente, consulte:
No macOS, é necessário limpar 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 comando a seguir limpa o atributo estendido no arquivo:
xattr -c vsts-agent-osx-x64-V.v.v.tar.gz ## replace V.v.v with the version in the filename downloaded.
# then unpack the gzip tar file normally:
tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz
Depois de instalar o agente em uma máquina, você pode instalar qualquer outro software nessa máquina que seus trabalhos exijam.
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, porque essa é a única versão garantida a ter todos os patches atualizados e correções de bugs.
Versões do runner Node.js
O agente é fornecido com várias versões de bibliotecas de Node.js para dar suporte a tarefas de destino que usam manipuladores de Node.js diferentes.
Todas as tarefas oficiais do Azure DevOps usam a biblioteca Node.js 20 como um manipulador universal. No entanto, os clientes podem continuar a usar tarefas personalizadas que utilizam as versões de fim de suporte Node.js. Os autores de extensões/tarefas personalizadas devem atualizar/testar as suas tarefas com as versões Node.js atuais.
Para mais informações sobre o ciclo de vida do Node.js runner no Azure Pipelines, veja Node.js runners no Azure Pipelines Agent.
Agentes do Azure Virtual Machine Scale Sets
Os agentes dos Conjuntos 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 necessidade de operar agentes dedicados de forma contínua. Ao contrário dos agentes hospedados pela Microsoft, você tem flexibilidade sobre o tamanho e a imagem das máquinas nas quais os agentes são executados.
O Azure Pipelines gerencia o dimensionamento de seus agentes para você. Especifique os seguintes fatores:
- Um conjunto de escalonamento de máquina virtual
- O número de agentes a manter em espera
- Um número máximo de máquinas virtuais no conjunto de escala
Para obter mais informações, consulte Agentes do Azure Virtual Machine Scale Sets.
Agentes Geridos de Pools DevOps
Os Pools de DevOps Gerenciados permitem que as equipes de desenvolvimento criem pools de agentes do Azure DevOps de forma rápida e fácil, adaptados às necessidades específicas de uma equipe.
Pools de DevOps gerenciados:
- Implementa as melhores práticas de segurança.
- Fornece maneiras de equilibrar custo e 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 Escala de Máquina Virtual do Azure. Ele simplifica ainda mais a criação de pools personalizados, melhorando a escalabilidade e a confiabilidade de pools personalizados. O Managed DevOps Pools é um serviço totalmente gerenciado. As 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, semelhante aos pools de agentes do Azure Virtual Machine Scale Sets. Para obter mais informações, veja a Documentação do Managed DevOps Pools.
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 de cada vez em sua organização. Todos os outros trabalhos simultâneos são enfileirados até que o primeiro trabalho seja concluído. Para executar dois trabalhos ao mesmo tempo, precisa de dois trabalhos paralelos. No Azure Pipelines, pode executar trabalhos paralelos na infraestrutura alojada na Microsoft ou na sua própria infraestrutura (autoalojada).
A Microsoft fornece um escalão gratuito de serviço por predefinição em cada organização que inclua, pelo menos, um trabalho paralelo. Consoante o número de pipelines simultâneos que tem de executar, pode precisar de mais tarefas paralelas para utilizar vários agentes alojados pela Microsoft ou autoalojados ao mesmo tempo. Para obter mais informações sobre trabalhos paralelos e diferentes camadas gratuitas de serviço, consulte Trabalhos paralelos no Azure Pipelines.
Você pode precisar de mais trabalhos paralelos para usar vários agentes ao mesmo tempo:
Importante
A partir do Azure DevOps Server 2019, você não paga por trabalhos simultâneos auto-hospedados em releases. Você está limitado apenas pelo número de agentes que possui.
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:
- Recursos que o software do agente descobre, chamados recursos do sistema.
- Recursos que você define, chamados de recursos do usuário.
O software do agente determina automaticamente diversas capacidades do sistema. Esses recursos incluem 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.
Quando você armazena variáveis de ambiente como recursos, os valores de capacidade armazenados são usados para definir as variáveis de ambiente quando um agente é executado. Além disso, quando você faz alterações nas 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 as variáveis de ambiente confidenciais que mudam sejam armazenadas como recursos, você pode direcionar o agente para ignorá-las. Defina 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 que correspondem às demandas especificadas no pipeline. Consequentemente, as funcionalidades do agente permitem direcionar trabalhos para agentes específicos.
As exigências e capacidades são projetadas para uso com agentes autoalojados, para que as tarefas possam ser atribuídas a um agente que atenda aos requisitos da tarefa. 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 um requisito ao seu pipeline de build YAML, adicione demands: linha à seção pool.
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 visualizar os detalhes do agente, incluindo os recursos da versão e do sistema, e gerenciar os recursos do usuário. Vá para Pools de agentes e selecione a guia Recursos 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.
Escolha o separador 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.
No separador Pools de agentes, selecione o pool desejado.
Selecione Agentes e escolha o agente desejado.
Escolha o separador Recursos.
Para registrar um novo recurso com o agente, selecione Adicionar um novo recurso.
Gorjeta
Depois de instalar o novo software em um agente auto-hospedado, você deve reiniciar o agente para que o novo recurso apareça. Para obter mais informações, consulte Reiniciar agente Windows, Reiniciar agente Linux e Reiniciar agente Mac.
Comunicação
Comunicação com o Azure Pipelines
Comunicação com o Azure DevOps Server
O agente se comunica com o Azure Pipelines ou o Azure DevOps Server. Ele determina qual tarefa precisa ser executada e comunica os registos e o estado da tarefa. O agente inicia sempre esta comunicação.
Todas as mensagens do agente para o Azure Pipelines ou o Azure DevOps Server têm lugar através de HTTP ou HTTPS, dependendo da forma como configurar o agente. Esse modelo 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 no Azure Pipelines ou no 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 de agentes é necessária apenas no momento do registro e não persiste 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 ouvir a fila de trabalhos.O agente escuta para ver se uma nova solicitação de trabalho é postada na fila de trabalhos no Azure Pipelines ou no Azure DevOps Server usando uma pesquisa HTTP longa. Quando um trabalho está disponível, o agente baixa o trabalho e um arquivo
job-specific OAuth token. O Azure Pipelines ou o Azure DevOps Server gera um token de curta duração para a identidade com escopo especificada no pipeline.O agente usa o token para acessar ou modificar recursos no Azure Pipelines ou no Azure DevOps Server 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
OAuthespecífico do trabalho após a conclusão do trabalho e, em seguida, verifica se há uma nova solicitação de trabalho usando o token OAuth do ouvinte.
A carga útil das mensagens trocadas entre o agente e o Azure Pipelines ou o Azure DevOps Server é protegida usando criptografia 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 usa a chave pública para criptografar a carga útil do trabalho antes de enviá-la ao agente. O agente descriptografa o conteúdo do trabalho usando sua chave privada.
Este método protege segredos armazenados em pipelines ou grupos de variáveis durante a troca com o agente.
Nota
O agente fornece suporte para a saída de codificação UTF-8 do cliente. No entanto, se o seu sistema não usa codificação UTF-8, você pode encontrar alguns problemas com a saída de log. Por exemplo, os logs podem conter caracteres que a codificação do seu sistema não reconhece, portanto, eles podem parecer ilegíveis ou símbolos ausentes.
Comunicação para implementar em servidores de destino
Quando utiliza o agente para implementar artefactos num conjunto de servidores, este tem de ter conectividade de "visibilidade direta" 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 seus recursos do Azure forem executados em uma rede virtual do Azure, você poderá obter os intervalos de IP do Agente nos quais 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 é o caso devido a firewalls intermediários, você precisará configurar manualmente agentes auto-hospedados em computadores locais. Os agentes devem ter conectividade com os ambientes locais de destino e acesso à Internet para se conectar ao Azure Pipelines ou ao Azure DevOps Server. Este processo é demonstrado no seguinte esquema:
Autenticação
Para registrar um agente, você precisa ser membro da função de administrador no pool de agentes. A identidade do administrador do pool de agentes é necessária apenas no momento do registro e não é mantida no agente. Ele não é usado em nenhuma comunicação subsequente entre o agente e o Azure Pipelines ou o Azure DevOps Server. Para configurar o agente, você também deve ser um administrador local no servidor.
Ao registrar um agente, selecione um dos seguintes tipos de autenticação. O processo de configuraçã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 de DevOps do Azure usando a autenticação Básica. Ao selecionar Alternativo, suas credenciais serão solicitadas.
Além disso, os agentes do Windows têm as duas opções de autenticação a seguir no Servidor de DevOps do Azure.
- Negociar: Conecte-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 (por exemplo, New Technology LAN Manager (NTLM) ou Kerberos). Depois de selecionar Negociar, serão solicitadas 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 (por exemplo, NTLM ou Kerberos). As credenciais não serão solicitadas 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, Negociar 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
Pode executar o seu agente autogerido como um serviço ou um processo interativo.
Depois de configurar o agente, recomendamos que você primeiro experimente-o no modo interativo para garantir que ele funcione. Em seguida, para 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 de execução. Estes modos também asseguram que o agente é iniciado automaticamente caso a máquina seja reiniciada.
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 para atualizar automaticamente o agente é melhor quando você executa o agente como um serviço.
Como um processo interativo com o login 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 você configura um agente para ser executado nesse modo, a proteção de tela é desabilitada. Algumas políticas de domínio podem impedi-lo de ativar o início de sessão automático ou desativar a proteção de ecrã. 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ã. Outros utilizadores poderão conseguir aceder ao computador e utilizar a conta que inicia sessão 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á sendo executado com entrada automática, fechar a área de trabalho remota fará com que o computador seja bloqueado. Qualquer teste de interface do usuário executado neste agente pode 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 de agente
Se você executa um agente como um serviço ou interativamente, você pode escolher qual conta de computador você usa para executar o agente. A escolha da conta do agente depende exclusivamente das necessidades das tarefas executadas em suas tarefas de compilação e implantação.
Por exemplo, para executar tarefas usando a autenticação do Windows para acessar um serviço externo, o agente deve ser executado usando uma conta com acesso a esse serviço. No entanto, se você estiver executando testes de interface do usuário, como Selenium ou testes de interface do usuário codificada que exigem um navegador, o navegador será 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 quando registra o agente no Azure Pipelines ou no Azure DevOps Server.
Versão e atualizações do agente
Atualizamos o software do agente a cada poucas semanas no Azure Pipelines. Indicamos a versão do agente no formato {major}.{minor}. Por exemplo, se a versão do agente é 2.1, então a versão principal é 2 e a versão secundária é 1.
Mantemos os agentes hospedados pela Microsoft atualizados. Se a versão mais recente do agente for diferente apenas na versão secundária, o Azure Pipelines pode atualizar automaticamente os agentes autogeridos. A configuração padrão está habilitada. Você pode definir essa configuração em Pools de agentes selecionando seu agente e, em seguida, selecionando Configurações. Uma atualização é solicitada quando um recurso da 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 na guia Pools de agentes em sua organização. Os pipelines não podem ser executados sem um agente compatível.
Como atualizar agentes auto-hospedados
Vá para Configurações do> projetoPools de agentes.
Selecione seu pool de agentes e, em seguida, selecione Atualizar todos os agentes.
Você também pode atualizar os agentes individualmente selecionando Atualizar agente no menu ... .
Selecione Atualizar para confirmar.
Uma solicitação de atualização é enfileirada para cada agente no pool e é executada quando qualquer trabalho em execução é concluído. Uma atualização normalmente leva apenas alguns momentos. Esse 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 do 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 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 sua camada de aplicativo, e essa versão é oferecida como uma 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 facilmente o agente no separador 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 de agentes e selecione 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?.
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:
- Janelas:
%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órios é criada para armazenar o código-fonte, binários e artefatos.
O diretório base do agente é o diretório onde 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 o espaço de trabalho onde a origem e a saída de 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 inicial do agente | Onde o agente está instalado. | Agente hospedado pela Microsoft: Janelas: C:\agents\3.248.0Linux: /home/vsts/agents/3.248.0macOS: /Users/runner/runners/3.248.0Agente auto-hospedado: Janelas: 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: Janelas: C:\aLinux: /home/vsts/workmacOS: /Users/runner/workAgente auto-hospedado: Janelas: 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: Janelas: C:\a\1Linux: /home/vsts/work/1macOS: /Users/runner/work/1Agente auto-hospedado: Janelas: 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 extraído do repositório. Se houver várias checkout etapas em seu trabalho, o check-out do código-fonte será feito em diretórios nomeados após os repositórios como uma subpasta do s. |
Agente hospedado pela Microsoft: Janelas: C:\a\1\sLinux: /home/vsts/work/1/smacOS: /Users/runner/work/1/sAgente auto-hospedado: Janelas: 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 as saídas de compilação. | Agente hospedado pela Microsoft: Janelas: C:\a\1\bLinux: /home/vsts/work/1/bmacOS: /Users/runner/work/1/bAgente auto-hospedado: Janelas: C:\agent\_work\1\bLinux: /home/agent/_work/1/bmacOS: ~/agent/work/1/b |
Build.BinariesDirectory |
a - Diretório de preparação de artefatos |
Contém os artefatos de construção. É limpo regularmente entre as execuções nos agentes auto-hospedados. | Agente hospedado pela Microsoft: Janelas: C:\a\1\aLinux: /home/vsts/work/1/amacOS: /Users/runner/work/1/aAgente auto-hospedado: Janelas: 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 dos testes. É limpo regularmente entre as execuções nos agentes auto-hospedados. | Agente hospedado pela Microsoft: Janelas: C:\a\1\TestResultsLinux: /home/vsts/work/1/TestResultsmacOS: /Users/runner/work/1/TestResultsAgente auto-hospedado: Janelas: 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 é retido entre as execuções. Em agentes auto-hospedados, somente o diretório de estágio 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 do espaço de trabalho, consulte Workspace.
Para obter mais informações sobre variáveis predefinidas, consulte Variáveis predefinidas.
FAQ
Como posso certificar-me de que tenho a versão mais recente do agente?
Vá para o separador Pools de agentes:
Selecione o pool que contém o agente.
Verifique se o agente está habilitado.
Vá para a guia de recursos:
Na guia Pools de agentes, selecione o pool de agentes desejado.
Selecione Agentes e escolha o agente desejado.
Escolha o separador 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.
No separador Pools de agentes, selecione o pool desejado.
Selecione Agentes e escolha o agente desejado.
Escolha o separador Recursos.
Procure a capacidade
Agent.Version. Você pode comparar esse valor com a versão mais recente publicada do agente na página Agente de Pipelines do Azure .Cada agente se atualiza automaticamente quando executa uma tarefa que requer uma versão mais recente do agente. Se desejar 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 acompanhava o servidor no momento de seu lançamento. 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 do pacote do agente (no formato .zip ou .tar.gz) na página Versões do GitHub do Agente de Pipelines do Azure.
Transfira os arquivos de pacote baixados para cada Camada de Aplicativo do Servidor de DevOps do Azure usando um método de sua escolha (por exemplo, unidade USB, transferência de rede e assim por diante). Coloque os arquivos do agente sob a
%ProgramData%\Microsoft\Azure DevOps\Agentspasta. Se não houver nenhuma pasta rotulada como Agentes, crie uma.Está tudo pronto! Seu Servidor de DevOps do Azure agora usa os arquivos locais sempre que os agentes são 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. Se você usar um agente auto-hospedado, poderá executar compilações incrementais. Por exemplo, se você definir um pipeline que não limpa o repositório e não executa uma compilação limpa, suas compilações normalmente são executadas mais rapidamente. Você não obtém esses benefícios com um agente hospedado pela Microsoft, a menos que use recursos como cache, porque o agente é destruído após a conclusão do pipeline.
Um agente hospedado pela Microsoft pode levar mais tempo para iniciar sua compilação. Embora muitas vezes demore apenas alguns segundos para que seu trabalho seja atribuído a um agente hospedado pela Microsoft, às vezes pode levar vários minutos para que um agente seja alocado, dependendo da carga em nosso sistema.
Posso instalar vários agentes auto-hospedados na mesma máquina?
Sim. Essa abordagem pode funcionar bem para agentes que executam trabalhos que não consomem muitos recursos compartilhados. Por exemplo, experimente para agentes que executam lançamentos que principalmente orquestram implantações e não fazem muito trabalho pelo 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 muito espaço em disco e recursos de entrada/saída.
Você também pode enfrentar problemas se tarefas de construção paralelas estiverem utilizando a mesma configuração de ferramenta singleton (por exemplo, pacotes npm). Uma compilação pode atualizar uma dependência enquanto outra compilação está usando-a, 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 os agentes hospedados pela Microsoft, o agente é desmontado 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 terminar, um segundo comando será enviado com um tempo limite de 2,5 segundos.
- Se o processo não terminar, o agente ordena que ele seja morto.
- Se o processo ignorar os dois pedidos iniciais de terminação, é terminado à força.
O tempo desde o pedido inicial até à rescisão é de 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 porSIGTERM, seguido porSIGKILL. - Windows: Os comandos enviados para o processo são
Ctrl+C, seguido porCtrl+Break, seguido porProcess.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, consulte API e mapeamento de versão do Azure DevOps Server.
Parâmetros de URI
| Nome | Em | Necessário | Tipo | Descrição |
|---|---|---|---|---|
agentId |
consulta | False |
cadeia (de caracteres) | O agente a ser atualizado. Se não for especificado, uma atualização será acionada para todos os agentes. |
organization |
caminho | True |
cadeia (de caracteres) | O nome da organização do Azure DevOps. |
poolId |
caminho | True |
inteiro int32 | O pool de agentes a ser usado. |
api-version |
consulta | False |
cadeia (de caracteres) | Versão da API a ser usada. Para usar esta versão da API, o valor deve ser definido como 6.0. |
Para acionar uma atualização do agente, o corpo da solicitação deve estar vazio.
O agente do Azure Pipelines é de código aberto no GitHub.
Conteúdo relacionado
Para obter mais informações sobre agentes, consulte os seguintes módulos do caminho de aprendizado Criar aplicativos com o Azure DevOps :