Delen via


Netwerken voor beheerde DevOps-pools configureren

Beheerde DevOps Pools-agents kunnen worden geconfigureerd voor uitvoering in een geïsoleerd virtueel netwerk of in een bestaand virtueel netwerk. In dit artikel wordt beschreven hoe u uw beheerde DevOps-pool configureert voor het uitvoeren van agents in uw virtuele netwerk.

Agents toevoegen aan uw eigen virtuele netwerk

Mogelijk wilt u agents uit Beheerde DevOps-pools toevoegen aan uw eigen virtuele netwerk voor scenario's zoals:

  • Uw CI/CD-agents moeten toegang hebben tot resources die alleen beschikbaar zijn in uw bedrijfsnetwerk via een service zoals Express Route
  • Uw CI/CD-agents moeten toegang hebben tot resources die geïsoleerd zijn voor privé-eindpunten.
  • U wilt uw CI/CD-infrastructuur isoleren door uw eigen VNet te voorzien van bedrijfsspecifieke firewallregels
  • Andere unieke use cases die niet kunnen worden gerealiseerd met standaard beheerde DevOps Pools-netwerkfuncties

U kunt de agents van uw pool aan uw virtuele netwerk toevoegen met behulp van de volgende stappen.

  1. Uw virtuele netwerk en subnet maken of meenemen
  2. Het subnet delegeren aan Microsoft.DevOpsInfrastructure/pools
  3. Het subnet koppelen aan uw beheerde DevOps-pool

De vorige stappen delegeren het subnet voor exclusieve toegang door de pool en het subnet kunnen niet worden gebruikt door andere pools of resources. Als u meerdere pools wilt verbinden met hetzelfde virtuele netwerk, kunnen meerdere subnetten worden gebruikt, elk gedelegeerd en gekoppeld aan hun eigen pool.

Uw virtuele netwerk en subnet maken of meenemen

Het subnet moet voldoende adresruimte hebben om te voldoen aan de maximale poolgrootte van de pool die u wilt koppelen (inclusief de Azure-reserves voor 5 IP-adressen in het subnet). Als u Express Route gebruikt, moet u de beheervergrendeling voor de resourcegroep tijdelijk verwijderen of wijzigen om schrijfbewerkingen toe te staan.

Belangrijk

De beheerde DevOps-pool en het virtuele netwerk moeten zich in dezelfde regio bevinden, of u krijgt een foutmelding die vergelijkbaar is met het volgende wanneer u de pool probeert te maken of de netwerkconfiguratie bij te werken. Virtual network MDPVN is in region eastus, but pool mdpnonprodsub is in region australiaeast. These must be in the same region.

Lezer- en netwerkbijdragerstoegang verlenen tot DevOpsInfrastructure-service-principal

Zorg ervoor dat de DevOpsInfrastructure-principal de volgende toegang heeft in het virtuele netwerk:

  • Reader en Network Contributor
  • Of voeg de volgende machtiging toe aan een aangepaste rol:
    • 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

Maak een aangepaste rol voor toegang tot de Service Association Link. Een voorbeeldrol kan worden gemaakt op het niveau van de resourcegroep of het abonnement op het tabblad Toegangsbeheer, zoals wordt weergegeven in het volgende voorbeeld.

Schermopname van aangepaste rolmachtigingen.

De toegang tot de DevOpsInfrastructure-principal controleren

  1. Kies Toegangsbeheer (IAM) voor het virtuele netwerk en kies Toegang controleren.

    Schermopname van VNet-machtigingen voor subnetdelegering.

  2. Zoek naar DevOpsInfrastructure en selecteer deze.

    Schermopname van het selecteren van de principal AzureDevOpsInfrastructure.

  3. Controleer Reader-toegang. Microsoft.Network/virtualNetworks/subnets/join/actionControleer of , Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/validate/action en Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/write toegang is toegewezen. Uw aangepaste rol moet hier worden weergegeven.

    Schermopname van VNet-machtigingen.

  4. Als DevOpsInfrastructure niet over deze machtigingen beschikt, voegt u deze toe door Toegangsbeheer (IAM) te kiezen voor het virtuele netwerk en kiest u Toegang verlenen tot deze resource en voegt u deze toe.

Het subnet delegeren aan Microsoft.DevOpsInfrastructure/pools

Het subnet moet worden gedelegeerd aan het Microsoft.DevOpsInfrastructure/pools om te kunnen worden gebruikt. Open de subneteigenschappen in de portal en selecteer Microsoft.DevOpsInfrastructure/pools onder de sectie Subnetdelegering en kies Opslaan.

Schermopname van het configureren van de subnetdelegering.

Hiermee wordt het subnet gedelegeerd voor exclusieve toegang door de pool en mag het subnet niet worden gebruikt door andere pools of resources. Als u meerdere pools wilt verbinden met hetzelfde virtuele netwerk, moeten meerdere subnetten worden gebruikt, elk gedelegeerd en gekoppeld aan hun eigen pool. Meer informatie over subnetdelegering vindt u hier.

Zodra het subnet is gedelegeerd aan Microsoft.DevOpsInfrastructure/pools, kan de pool worden bijgewerkt om het subnet te gebruiken.

Het subnet koppelen aan uw beheerde DevOps-pool

  1. Als u een nieuwe pool maakt, gaat u naar het tabblad Netwerken. Als u een bestaande pool wilt bijwerken, gaat u naar > en kiest u Agents die zijn geïnjecteerd in een bestaand virtueel netwerk, configureren.

    Schermopname van de optie configureren.

  2. Kies het abonnement, virtuele netwerk en subnet dat u heeft gedelegeerd aan Microsoft.DevOpsInfrastructure/pools, en kies Ok.

    Schermopname van het koppelen van het subnet aan de pool.

Zodra de netwerkupdate is voltooid, gebruikt de zojuist gemaakte resource in de pool het gedelegeerde subnet.

Uitgaande connectiviteit beperken

Als u systemen in uw netwerk (NSG, Firewall, enzovoort) hebt die de uitgaande connectiviteit beperken, moet u ervoor zorgen dat de volgende domeinen toegankelijk zijn, anders werkt uw beheerde DevOps-pool niet. Ze zijn allemaal HTTPS, tenzij anders vermeld.

  • Zeer veilige eindpunten waarvoor onze service afhankelijk is van:
    • *.prod.manageddevops.microsoft.com - Eindpunt beheerde DevOps-pools
    • rmprodbuilds.azureedge.net - Binaire werkbestanden
    • vstsagentpackage.azureedge.net - CDN-locatie van Azure DevOps-agent
    • *.queue.core.windows.net - Werknemerwachtrij voor communicatie met de Beheerde DevOps Pools service
    • server.pipe.aria.microsoft.com - Algemene client-side telemetrieoplossing (en gebruikt door de Agent Pool Validation-extensie)
    • azure.archive.ubuntu.com - Linux-machines inrichten- dit is HTTP, niet HTTPS
    • www.microsoft.com - Linux-machines inrichten
    • security.ubuntu.com - Linux-machines inrichten
  • Minder veilig, meer open eindpunten waarvoor onze service afhankelijk is:
    • Nodig voor onze service:
      • packages.microsoft.com - Linux-machines inrichten
      • ppa.launchpad.net - Ubuntu-machines inrichten
      • dl.fedoraproject.org - Bepaalde Linux-distributies inrichten
    • Vereist door Azure DevOps-agent:
      • dev.azure.com
      • *.services.visualstudio.com
      • *.vsblob.visualstudio.com
      • *.vssps.visualstudio.com
      • *.visualstudio.com Deze vermeldingen zijn de minimale domeinen die vereist zijn. Als u problemen ondervindt, raadpleegt u de acceptatielijst van Azure DevOps voor de volledige lijst met vereiste domeinen.
  • Azure-gerelateerde eindpunten: Azure-VM's kunnen verkeer routeren naar bepaalde Azure-functies via uw subnet. Voor deze aanvragen hebt u de mogelijkheid om aanvragen rechtstreeks via Azure te routeren of toegang via uw netwerk in te schakelen.
    1. Azure-verkeer configureren om via service-eindpunten te lopen

      Het rechtstreeks routeren van verkeer via Azure voorkomt dat doorvoer wordt toegevoegd aan uw NSG's of firewalls en het vereist niet dat u de domeinen die in de volgende optie worden vermeld, op de toestaanlijst zet.

      Het gebruik van de gegevensschijf functie omvat bijvoorbeeld netwerkoproepen naar Azure Storage. Als u Microsoft.Storage service-eindpunt op uw netwerk inschakelt, wordt verkeer rechtstreeks via Azure gerouteerd, waardoor uw netwerkregels worden vermeden en de belasting wordt verminderd.

    2. Als u het routeren van verkeer via service-eindpunten wilt voorkomen, zijn dit de domeinen die moeten worden toegestaan voor specifieke functies.

      • md-*.blob.storage.azure.net : vereist om een gegevensschijf te configureren

Als u uw Azure DevOps-pipeline configureert om in een container te draaien, moet u ook de bron van de containerafbeeldingen (Docker of ACR) op de toestemmingslijst zetten.

De Azure DevOps-agent configureren om achter een proxy te worden uitgevoerd

Als u een proxyservice hebt geconfigureerd voor uw afbeelding en wilt dat uw workloads in uw beheerde DevOps-pool achter deze proxy draaien, moet u de volgende omgevingsvariabelen toevoegen aan uw afbeelding.

  • VSTS_AGENT_INPUT_PROXYURL - De URL van de geconfigureerde proxy waarachter het moet draaien
  • VSTS_AGENT_INPUT_PROXYUSERNAME - De gebruikersnaam die nodig is om de proxy te gebruiken
  • VSTS_AGENT_INPUT_PROXYPASSWORD - Het wachtwoord voor het gebruik van de proxy.

Voor Windows moeten deze omgevingsvariabelen systeemomgevingsvariabelen zijn en voor Linux moeten deze variabelen zich in het omgevingsbestand /etc/bevinden . Als u deze systeemvariabelen onjuist instelt of zonder een geconfigureerde proxyservice op de image, veroorzaakt dit dat het inrichten van nieuwe agents faalt, resulterend in netwerkverbindingsproblemen.

Als u overstapt van Azure Virtual Machine Scale Set-agents en de proxyomgevingsvariabelen al in uw afbeelding gebruikt, zoals beschreven in Azure Virtual Machine Scale Set-agents, configuratie van pijplijnagents aanpassen, hoeft u niets te wijzigen.

Zie ook