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.
- Crie ou traga sua rede virtual e sub-rede
- Delegar a sub-rede a Microsoft.DevOpsInfrastructure/pools
- 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
eNetwork 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.
Para verificar o acesso principal ao DevOpsInfrastructure
Escolha Controle de acesso (IAM) para a rede virtual e escolha Verificar acesso.
Pesquise por DevOpsInfrastructure e selecione-o.
Verifique o acesso do leitor . Verifique se
Microsoft.Network/virtualNetworks/subnets/join/action
o ,Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/validate/action
eMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/write
o acesso está atribuído. Sua função personalizada deve aparecer aqui.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.
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
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.
Escolha a Assinatura, Rede Virtual e Sub-redeà qual você delegou e escolha Ok.
Microsoft.DevOpsInfrastructure/pools
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.
- Necessário pelo nosso serviço:
- 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.
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.
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.
-
md-*.blob.storage.azure.net
- Necessário para configurar um disco de dados
-
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.