Partilhar via


Configurar a rede de pools de DevOps gerenciados

Os agentes de Pools de DevOps gerenciados podem ser configurados para serem executados em uma rede virtual isolada ou em uma rede virtual existente. Este artigo descreve como configurar seu pool de DevOps gerenciado para executar agentes em sua rede virtual.

Adicionar agentes à sua própria rede virtual

Talvez você queira adicionar agentes de Pools de DevOps Gerenciados à sua própria rede virtual para cenários como:

  • Os seus agentes de CI/CD precisam de aceder a recursos que só estão disponíveis na rede da sua empresa através de um serviço como o Express Route
  • Seus agentes de CI/CD precisam acessar recursos isolados em pontos de extremidade privados
  • Você deseja isolar em rede sua infraestrutura de CI/CD trazendo sua própria rede virtual com regras de firewall específicas da empresa
  • Quaisquer outros casos de uso exclusivos que não possam ser alcançados por recursos relacionados à rede de Pools de DevOps Gerenciados prontos para uso

Você pode adicionar os agentes do pool à sua rede virtual usando as etapas a seguir.

  1. Crie ou traga sua rede virtual e sub-rede
  2. Delegar a sub-rede a Microsoft.DevOpsInfrastructure/pools
  3. Associe a sub-rede ao seu pool de DevOps gerenciado

As etapas anteriores delegam a sub-rede para acesso exclusivo pelo pool e a sub-rede não pode ser usada por outros pools ou recursos. Para conectar vários pools à mesma rede virtual, várias sub-redes podem ser usadas, cada uma delegada e associada ao seu próprio pool.

Crie ou traga sua rede virtual e sub-rede

A sub-rede deve ter espaço de endereço suficiente para acomodar o tamanho máximo do pool que você deseja associar (inclua os 5 endereços IP que o Azure reserva na sub-rede). Se você estiver usando a Rota Expressa, precisará descartar temporariamente ou alterar o bloqueio de gerenciamento no grupo de recursos para permitir gravações.

Importante

O Pool de DevOps Gerenciado e a rede virtual devem estar na mesma região, ou você receberá um erro semelhante ao seguinte ao tentar criar o pool ou atualizar a configuração de rede. Virtual network MDPVN is in region eastus, but pool mdpnonprodsub is in region australiaeast. These must be in the same region.

Conceder ao Leitor e ao Colaborador de Rede acesso à entidade de serviço DevOpsInfrastructure

Verifique se a entidade de segurança DevOpsInfrastructure tem o seguinte acesso na rede virtual:

  • Reader e Network Contributor
  • Ou adicione a seguinte permissão a uma função personalizada:
    • Microsoft.Network/virtualNetworks/*/read
    • Microsoft.Network/virtualNetworks/subnets/join/action
    • Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/validate/action
    • Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/write
    • Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/delete

Crie uma função personalizada para o acesso ao Link da Associação de Serviços. Um exemplo de função pode ser criado no nível do grupo de recursos ou da assinatura na guia Controle de Acesso, conforme mostrado no exemplo a seguir.

Captura de tela de permissões de função personalizadas.

Para verificar o acesso principal ao DevOpsInfrastructure

  1. Escolha Controle de acesso (IAM) para a rede virtual e escolha Verificar acesso.

    Captura de tela das permissões de rede virtual para delegação de sub-rede.

  2. Pesquise por DevOpsInfrastructure e selecione-o.

    Captura de ecrã a mostrar a seleção do AzureDevOpsInfrastructure principal.

  3. Verifique o acesso do leitor . Verifique se Microsoft.Network/virtualNetworks/subnets/join/actiono , Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/validate/action e Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/write o acesso está atribuído. Sua função personalizada deve aparecer aqui.

    Captura de ecrã de Permissões de VNet.

  4. Se o DevOpsInfrastructure não tiver essas permissões, adicione-as escolhendo Controle de acesso (IAM) para a rede virtual e escolha Conceder acesso a este recurso e adicione-as.

Delegar a sub-rede a Microsoft.DevOpsInfrastructure/pools

A sub-rede precisa ser delegada Microsoft.DevOpsInfrastructure/pools ao a ser usado. Abra as propriedades da sub-rede no Portal e selecione Microsoft.DevOpsInfrastructure/pools na seção Delegação de sub-rede e escolha Salvar.

Captura de tela da configuração da delegação de sub-rede.

Isso delega a sub-rede para acesso exclusivo para o pool e a sub-rede não pode ser usada por outros pools ou recursos. Para conectar vários pools à mesma rede virtual, várias sub-redes devem ser usadas, cada uma delegada e associada ao seu próprio pool. Mais informações sobre delegação de sub-redes podem ser encontradas aqui.

Depois que a sub-rede é delegada ao Microsoft.DevOpsInfrastructure/pools, o pool pode ser atualizado para usar a sub-rede.

Associe a sub-rede ao seu pool de DevOps gerenciado

  1. Se você estiver criando um novo pool, vá para a guia Rede. Para atualizar um pool existente, vá para Configurações>de rede e escolha Agentes injetados na rede virtual existente, Configurar.

    Captura de tela da opção configurar.

  2. Escolha a Assinatura, Rede Virtual e Sub-redeà qual você delegou e escolha Ok.Microsoft.DevOpsInfrastructure/pools

    Captura de tela da associação da sub-rede ao pool.

Quando a atualização de rede for concluída, o recurso recém-criado no pool usará a sub-rede delegada.

Restringir a conectividade de saída

Se você tiver sistemas instalados em sua rede (NSG, Firewall, etc.) que restrinjam a conectividade de saída, você precisa garantir que os seguintes domínios possam ser acessados, caso contrário, seu pool de DevOps gerenciado não será funcional. Todos eles são HTTPS, salvo indicação em contrário.

  • Pontos finais altamente seguros dos quais o nosso serviço depende:
    • *.prod.manageddevops.microsoft.com - Ponto de extremidade Managed DevOps Pools
    • rmprodbuilds.azureedge.net - Binários do trabalhador
    • vstsagentpackage.azureedge.net - Localização da CDN do agente Azure DevOps
    • *.queue.core.windows.net - Fila de trabalhadores para comunicação com o serviço Managed DevOps Pools
    • server.pipe.aria.microsoft.com - Solução comum de telemetria do lado do cliente (e usada pela extensão de Validação do Pool de Agentes, entre outros)
    • azure.archive.ubuntu.com - Provisionamento de máquinas Linux - isto é HTTP, não HTTPS
    • www.microsoft.com - Provisionamento de máquinas Linux
    • security.ubuntu.com - Provisionamento de máquinas Linux
  • Pontos finais menos seguros e mais abertos dos quais o nosso serviço depende:
    • Necessário pelo nosso serviço:
      • packages.microsoft.com - Provisionamento de máquinas Linux
      • ppa.launchpad.net - Provisionamento de máquinas Ubuntu
      • dl.fedoraproject.org - Provisionamento de certas distros Linux
    • Necessário para o agente de DevOps do Azure:
      • dev.azure.com
      • *.services.visualstudio.com
      • *.vsblob.visualstudio.com
      • *.vssps.visualstudio.com
      • *.visualstudio.com Estas entradas são os domínios mínimos necessários. Se você tiver algum problema, consulte a lista de permissões do Azure DevOps para obter a lista completa de domínios necessários.
  • Pontos de extremidade relacionados ao Azure: as VMs do Azure podem rotear o tráfego para determinados recursos do Azure por meio de sua sub-rede. Para essas solicitações, você tem a opção de rotear solicitações diretamente pelo Azure ou habilitar o acesso por meio de sua rede.
    1. Configurar o tráfego do Azure para funcionar através de endpoints de serviço

      Roteamento de tráfego através do Azure evita diretamente adicionar taxa de transferência aos seus NSGs ou Firewalls e não requer que você permita listar os domínios listados na opção a seguir.

      Por exemplo, usar o recurso de disco de dados envolverá chamadas de rede para o Armazenamento do Azure. Habilitar o ponto de extremidade de serviço do Microsoft.Storage na sua rede roteará o tráfego diretamente através do Azure, evitando as suas regras de rede e reduzindo a carga.

    2. Se quiser evitar o encaminhamento de tráfego através de pontos de extremidade de serviço, estes são os domínios a incluir na lista de permissões para funcionalidades específicas.

Se você configurar seu Pipeline de DevOps do Azure para ser executado dentro de um contêiner, precisará também permitir a lista de origem da imagem do contêiner (Docker ou ACR).

Configurar o Agente de DevOps do Azure para ser executado atrás de um proxy

Se você configurou um serviço de proxy em sua imagem e deseja que suas cargas de trabalho em execução no pool de Managed DevOps sejam executadas atrás desse proxy, você deve adicionar as seguintes variáveis de ambiente em sua imagem.

  • VSTS_AGENT_INPUT_PROXYURL - A URL do proxy configurado para ser executado atrás
  • VSTS_AGENT_INPUT_PROXYUSERNAME - O nome de usuário necessário para usar o proxy
  • VSTS_AGENT_INPUT_PROXYPASSWORD - A senha para usar o proxy.

Para Windows, essas variáveis de ambiente devem ser variáveis de ambiente do sistema, e para Linux essas variáveis devem estar no arquivo /etc/environment . Definir essas variáveis de sistema incorretamente ou sem um serviço de proxy configurado na imagem faz com que o provisionamento de novos agentes falhe com problemas de conectividade de rede.

Se você estiver migrando de agentes do Conjunto de Escala de Máquina Virtual do Azure e já estiver usando as variáveis de ambiente proxy em sua imagem, conforme descrito em Agentes do Conjunto de Escala de Máquina Virtual do Azure - Personalizando a Configuração do Agente de Pipeline, nenhuma alteração deverá ser necessária.

Consulte também