Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Agenty spravovaných fondů DevOps můžete nakonfigurovat tak, aby běželi v izolované virtuální síti nebo v existující virtuální síti. Tento článek popisuje, jak nakonfigurovat fond tak, aby spouštěl agenty ve vaší virtuální síti.
Zvolte typ sítě.
Spravované fondy DevOps podporují dva typy síťových konfigurací:
- Izolovaná virtuální síť: Každý fond získá svou vlastní izolovanou virtuální síť, která je vytvořená a spravovaná službou Spravované fondy DevOps.
-
Agenti vložení do existující virtuální sítě: Můžete použít vlastní virtuální síť a podsíť. Všechny virtuální počítače vytvořené pro fond budou používat tuto podsíť a žádné další prostředky ji nebudou moci používat. Můžete chtít přidat agenty ze spravovaných fondů DevOps do vlastní virtuální sítě pro scénáře, jako jsou:
- Agenti kontinuální integrace a průběžného doručování (CI/CD) potřebují přístup k prostředkům, které jsou dostupné jenom v podnikové síti prostřednictvím služby, jako je Azure ExpressRoute.
- Agenti CI/CD potřebují přístup k prostředkům, které jsou izolované od privátních koncových bodů.
- Chcete izolovat infrastrukturu CI/CD v síti tím, že přinesete vlastní virtuální síť s pravidly brány firewall specifickými pro společnost.
- Jakékoli jiné jedinečné případy použití, které není možné dosáhnout pomocí standardních síťových funkcí spravovaných fondů DevOps.
Izolovaná virtuální síť
Ve výchozím nastavení používají všechny fondy virtuální síť poskytovanou Microsoftem, která omezuje veškerý příchozí provoz a má následující možnosti konfigurace odchozího provozu.
- Výchozí přístup k odchozímu připojení je aktuální výchozí nastavení, které umožňuje veškerý odchozí provoz s využitím IP adresy poskytované Microsoftem. Výchozí odchozí přístup pro virtuální počítače v Azure je naplánovaný na vyřazení. Pokud je výchozí odchozí přístup vyřazený, fondy se ve výchozím nastavení nakonfigurují s jednou statickou IP adresou.
- Místo použití výchozího odchozího přístupu můžete fond nakonfigurovat tak, aby používal až 16 statických odchozích IP adres. Spravované DevOps fondy vytvoří bránu NAT ve stejné oblasti jako váš fond, aby zajistily poskytování IP adres. Tato konfigurace umožňuje povolit konkrétní IP adresy u externích služeb, ke kterým vaše kanály potřebují přístup.
- Náklady na Azure zahrnují i další poplatky za bránu NAT. Pomocí kalkulačky nákladů Azure můžete modelovat, kolik bude stát. Další informace najdete v tématu o cenách služby Azure NAT Gateway.
Důležité
Pokud po vytvoření fondu upravíte počet statických IP adres, ip adresy se můžou změnit a po dokončení operace aktualizace budete muset získat nové IP adresy a aktualizovat seznam povolených u externích služeb.
Pokud chcete nakonfigurovat nastavení IP adres při vytváření fondu, přejděte na kartu Sítě . Pokud chcete aktualizovat existující fond, přejděte na Nastavení>sítě.
Chcete-li použít výchozí odchozí přístup, zvolte Žádné pro směrování přes veřejné IP adresy.
Zvolte IP adresy poskytnuté Microsoftem , abyste nakonfigurovali statické odchozí IP adresy a zadali počet statických IP adres, které chcete použít. Spravované fondy DevOps pro vás vytvoří bránu NAT a spravuje IP adresy.
Poznámka:
Existuje známý problém: Pokud je váš fond nakonfigurován se spravovanou identitou, volání API nevrátí tuto vlastnost ipAddresses, pokud není službě DevOpsInfrastructure přiřazena role operátor spravované identity u této spravované identity. Podrobný postup najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal.
Udělení této role není nutné, aby statické IP adresy byly funkční. Bez tohoto přiřazení role můžete pořád najít přiřazené IP adresy tak, že je zobrazíte na stránce Sítě na webu Azure Portal.
Agenti vložení do existující virtuální sítě
Agenty fondu můžete nakonfigurovat tak, aby používaly vaši virtuální síť pomocí následujících kroků:
- Vytvořte nebo přineste virtuální síť a podsíť.
-
Delegujte podsíť na
Microsoft.DevOpsInfrastructure/pools. - Přidružte podsíť k vašemu fondu.
Předchozí kroky delegují podsíť pro výhradní přístup fondu. Jiné fondy nebo prostředky nemůžou podsíť používat.
Fond může použít více podsítí k připojení více fondů ke stejné virtuální síti. Každá podsíť je delegovaná a přidružená k vlastnímu fondu.
Vytvoření nebo přenesení virtuální sítě a podsítě
Podsíť musí mít dostatek adresního prostoru pro maximální velikost fondu, který chcete přidružit (včetně pěti IP adres, které Azure v podsíti vyhrazuje).
Pokud používáte ExpressRoute, musíte povolit zápisy tím, že dočasně odstraníte nebo změníte zámek správy ve skupině prostředků.
Důležité
Pool a virtuální síť musí být ve stejném regionu. Jinak se při pokusu o vytvoření fondu nebo aktualizaci konfigurace sítě zobrazí chyba podobná následující: "Virtuální síť MDPVN je v oblasti eastus, ale fond mdpnonprodsub je v oblasti AustraliaEast." Musí být ve stejné oblasti."
Udělení přístupu čtenáře a Přispěvatele sítě k instančnímu objektu devOpsInfrastructure
Ujistěte se, že DevOpsInfrastructure má objekt zabezpečení Reader a Network Contributor přístup k virtuální síti.
Místo použití předdefinovaných rolí můžete vytvořit vlastní roli, která má následující oprávnění:
Microsoft.Network/virtualNetworks/*/readMicrosoft.Network/virtualNetworks/subnets/join/actionMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/validate/actionMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/writeMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/delete
Vytvořte vlastní roli pro přístup k Odkazu pro přidružení služby. Ukázkovou roli můžete vytvořit na úrovni skupiny prostředků nebo předplatného na kartě Řízení přístupu , jak je znázorněno v následujícím příkladu.
Kontrola hlavního přístupu pro DevOpsInfrastructure
Vyberte Řízení přístupu (IAM) pro virtuální síť a pak vyberte Zkontrolovat přístup.
Vyhledejte a vyberte DevOpsInfrastructure.
Ověřte, že máte přístup na úrovni čtenáře . Ověřte, že je přiřazen přístup k
Microsoft.Network/virtualNetworks/subnets/join/action,Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/validate/actionaMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/write. Tady by se měla zobrazit vaše vlastní role.
Pokud objekt zabezpečení DevOpsInfrastructure nemá tato oprávnění, přidejte je. Vyberte Řízení přístupu (IAM) pro virtuální síť a pak vyberte Udělit přístup k tomuto prostředku.
Delegujte podsíť k Microsoft.DevOpsInfrastructure/pools
Na portálu otevřete vlastnosti podsítě a vyberte Microsoft.DevOpsInfrastructure/pools v části Delegování podsítě. Vyberte Uložit.
Tento proces deleguje podsíť pro výhradní přístup fondu. Jiné fondy nebo prostředky nemůžou podsíť používat. Pokud chcete připojit více fondů ke stejné virtuální síti, musíte použít více podsítí. Každá podsíť musí být přiřazena a přidružena k vlastnímu fondu. Další informace o delegování podsítě najdete v tomto přehledu delegování podsítě.
Poté, co delegujete podsíť na Microsoft.DevOpsInfrastructure/pools, můžete aktualizovat fond tak, aby používal podsíť.
Přidružení podsítě k fondu
Pokud chcete vytvořit nový fond, přejděte na kartu Sítě . Pokud chcete aktualizovat existující fond, přejděte do nastavení>sítě a pak vyberte Agenti vložené do existující virtuální sítě>Konfigurovat.
Vyberte hodnoty předplatného, virtuální sítě a podsítě , na které jste delegovaní
Microsoft.DevOpsInfrastructure/pools, a pak vyberte OK.
Po dokončení aktualizace sítě bude nově vytvořený prostředek ve fondu používat delegovanou podsíť.
Důležité
Při aktualizaci fondů neukládejte do virtuální sítě zámek Delete . Během operace aktualizace fondu vytvoří Managed DevOps Pools odkaz pro přiřazení služby na podsíti. Pokud se aktualizace nezdaří, Spravované DevOps fondy se pokusí odstranit vazbu služeb, ale pokud existuje zámek 'Odstranit', zobrazí se chyba. Spravované fondy DevOps nemohou odstranit propojení sdružení služby, čímž ponechají podsíť v uzamčeném stavu (nelze ji odstranit). Pokud chcete tento problém vyřešit, odeberte zámek Odstranit a zkuste operaci aktualizace zopakovat.
Další informace najdete v tématu Co je potřeba zvážit před použitím zámků na prostředky Azure.
Omezení odchozího připojení
Pokud máte v síti zavedené systémy (například skupiny zabezpečení sítě nebo brány firewall), které omezují odchozí připojení, musíte do seznamu povolených přidat určité koncové body, aby bylo možné plně podporovat spravované fondy DevOps. Tyto koncové body jsou rozdělené na globálně požadované koncové body (nezbytné na jakémkoli počítači využívajícím spravované fondy DevOps) a koncové body, které potřebujete pro určité scénáře. Všechny koncové body jsou HTTPS, pokud není uvedeno jinak.
Požadované koncové body pro spuštění spravovaných DevOps poolů
Pokud tyto koncové body nepřidáte do seznamu povolení, počítače se nepodaří připojit jako součást služby spravovaných poolů DevOps a nemůžete ve fondu spouštět potrubí:
-
*.prod.manageddevops.microsoft.com: Koncový bod spravovaných fondů DevOps, který se používá ke komunikaci se službou Spravované fondy DevOps. -
rmprodbuilds.azureedge.net: Slouží ke stažení binárních souborů pracovních procesů spravovaných fondů DevOps a spouštěcích skriptů. Agentní část binárních souborů pracovního procesu je stažena zrm-agent.prod.manageddevops.microsoft.com(dříve staženo zagent.prod.manageddevops.microsoft.com), na kterou se vztahuje předchozí povinný*.prod.manageddevops.microsoft.comzáznam. -
*.queue.core.windows.net: Fronta úloh pro komunikaci se službou Managed DevOps Pools.
Požadované koncové body pro připojení k Azure DevOps
Pokud tyto koncové body nepřidáte do seznamu povolených, počítače můžou být online a můžou dokonce přejít do přiděleného stavu, ale nemůžou komunikovat s Azure DevOps, protože agent úloh Azure DevOps Services se nemůže připojit nebo nejde spustit.
-
download.agent.dev.azure.com: Umístění sítě pro doručování obsahu (CDN) agenta Azure DevOps, které se používá ke stažení agenta Azure DevOps (dřívevstsagentpackage.azureedge.net, další informace najdete v tématu Vyřazení Edgio CDN pro Azure DevOps). -
dev.azure.com: Vyžaduje se ke zpracování komunikace s Azure DevOps.
Požadované koncové body pro počítače s Linuxem
Tyto koncové body se vyžadují ke spuštění počítačů s Ubuntu, ale nejsou potřeba, pokud fond používá jenom Windows. Když nastavíte agenta úloh Azure DevOps, přidají se požadované balíčky a spustí se apt-get příkaz. Tento proces selže, pokud následující koncové body nejsou přidány do seznamu povolených.
-
azure.archive.ubuntu.com: Zřizování počítačů s Linuxem Tento koncový bod je HTTP (port 80), nikoli HTTPS (port 443). -
www.microsoft.com: Zřizování počítačů s Linuxem -
security.ubuntu.com: Zřizování počítačů s Linuxem -
packages.microsoft.com: Zřizování počítačů s Linuxem -
ppa.launchpad.net: Zřizování některých konkrétních linuxových distribucí. -
dl.fedoraproject.org: Nasazování určitých Linuxových distribucí.
Požadované koncové body pro některé funkce Azure DevOps
Tyto volitelné koncové body jsou potřeba pro konkrétní funkce Azure DevOps, které budou fungovat na vašich kanálech. V následující sadě je možné zástupný znak nahradit konkrétní organizací Azure DevOps, která hostí váš pipeline. Pokud je například vaše organizace pojmenovaná contoso, můžete místo toho contoso.services.visualstudio.compoužít *.services.visualstudio.com .
*.services.visualstudio.com-
*.vsblob.visualstudio.com: Slouží k nahrávání i spotřebování artefaktů. -
*.vssps.visualstudio.com: Používá se k ověřování s Azure DevOps pro určité funkce. *.visualstudio.com
Poznámka:
Předchozí položky jsou minimální požadované domény. Pokud máte nějaké problémy, podívejte se na úplný seznam požadovaných domén v Azure DevOps povolených IP adresách a adresách URL domény.
Koncové body související s platformou Azure
Virtuální počítače Azure můžou směrovat provoz do určitých funkcí Azure prostřednictvím vaší podsítě. U těchto požadavků můžete směrovat žádosti přímo prostřednictvím Azure nebo povolit přístup přes vaši síť.
Nakonfigurujte provoz Azure tak, aby běžel přes koncové body služby:
Provoz můžete směrovat přímo přes Azure, abyste zabránili zvýšení datového toku ve skupinách zabezpečení sítě nebo firewallů. Do seznamu povolených položek není nutné přidávat domény uvedené v následující možnosti.
Funkci datového disku můžete použít například k zapojení síťových volání do Služby Azure Storage. Když ve vaší síti povolíte koncový bod služby Microsoft.Storage , provoz směruje přímo přes Azure, což zabrání pravidlům sítě a snižuje zatížení.
Pokud se chcete vyhnout směrování provozu přes koncové body služby, přidejte
md-*.blob.storage.azure.netdoménu do seznamu povolených. Tato doména se vyžaduje pro konfiguraci datového disku.
Akamai CDN doručovací IP adresy
1. května 2025 přešly prostředky CDN Azure DevOps na řešení, které obsluhuje Akamai a Azure Front Door. Ujistěte se, že vaše síť má odchozí přístup k rozsahům IP adres Akamai. Další informace najdete tady:
- Změna adresy URL domény CDN pro agenty v kanálech
- Nejčastější dotazy k vyřazení Azure CDN z Edgio
- Akamai TechDocs: Seznam pravidel přístupu pro původní IP
Pokud nakonfigurujete kanál Azure DevOps tak, aby běžel uvnitř kontejneru, musíte do seznamu povolených přidat také zdroj image kontejneru (Docker nebo Azure Container Registry).
Ověření připojení koncového bodu
Ověřte, že můžete používat podsíť se spravovanými DevOps fondy spuštěním následujícího skriptu na prostředku v této podsíti. Tento krok vám pomůže ověřit, že je tok sítě nakonfigurovaný tak, aby dosáhl všech těchto dostupných koncových bodů a řídicí roviny Managed DevOps.
Důležité
Tento skript je nutné spustit u prostředku ve vaší podsíti (jako je virtuální počítač nebo kontejner), abyste ověřili, že je síťová cesta otevřená z této podsítě do požadovaných koncových bodů.
Pokud chcete skript spustit pomocí PowerShellu Core nebo PowerShellu 5 nebo novějšího, uložte následující skript jako ValidateMDPEndpoints.ps1. Spusťte následující příkaz PowerShellu: .\ValidateMDPEndpoints.ps1 -organization "<your-organization>".
# ValidateMDPEndpoints.ps1
param (
[string]$organization
)
$azureDevOpsUris = @(
"https://dev.azure.com",
"https://vssps.dev.azure.com",
"https://vsrm.dev.azure.com",
"https://management.azure.com",
"https://login.microsoftonline.com",
"https://graph.microsoft.com",
"https://aadcdn.msftauth.net",
"https://${organization}.visualstudio.com",
"https://${organization}.vsrm.visualstudio.com",
"https://${organization}.vstmr.visualstudio.com",
"https://${organization}.pkgs.visualstudio.com",
"https://${organization}.vssps.visualstudio.com",
"https://download.agent.dev.azure.com",
"download.agent.dev.azure.com"
)
$managedDevOpsPoolsControlPlaneUris = @(
# List of agent queue endpoints - maps to *.queue.core.windows.net
"https://rmprodaedefaultcq.queue.core.windows.net",
"https://rmprodbrsdefaultcq.queue.core.windows.net",
"https://rmprodcncdefaultcq.queue.core.windows.net",
"https://rmprodcusdefaultcq.queue.core.windows.net",
"https://rmprodeus2defaultcq.queue.core.windows.net",
"https://rmprodgwcdefaultcq.queue.core.windows.net",
"https://rmprodincdefaultcq.queue.core.windows.net",
"https://rmprodneudefaultcq.queue.core.windows.net",
"https://rmprodseadefaultcq.queue.core.windows.net",
"https://rmprodszndefaultcq.queue.core.windows.net",
"https://rmproduksdefaultcq.queue.core.windows.net",
"https://rmprodwus3defaultcq.queue.core.windows.net",
# CDN for downloading the Managed DevOps Pools agent - maps to *.prod.managedevops.microsoft.com
"rm-agent.prod.manageddevops.microsoft.com"
# List of control plane endpoints - maps to *.manageddevops.microsoft.com
"default.ae.prod.manageddevops.microsoft.com",
"default.brs.prod.manageddevops.microsoft.com",
"default.cnc.prod.manageddevops.microsoft.com",
"default.cus.prod.manageddevops.microsoft.com",
"default.eus2.prod.manageddevops.microsoft.com",
"default.gwc.prod.manageddevops.microsoft.com",
"default.inc.prod.manageddevops.microsoft.com",
"default.neu.prod.manageddevops.microsoft.com",
"default.sea.prod.manageddevops.microsoft.com",
"default.szn.prod.manageddevops.microsoft.com",
"default.uks.prod.manageddevops.microsoft.com",
"default.wus3.prod.manageddevops.microsoft.com"
)
$unreachableUris = @()
foreach ($uri in $azureDevOpsUris) {
try {
$hostName = ($uri -replace "^https?://", "") -replace "/.*", ""
$connection = Test-NetConnection -ComputerName $hostName -Port 443 -WarningAction SilentlyContinue
if (-not $connection.TcpTestSucceeded) {
$unreachableUris += $uri
}
} catch {
$unreachableUris += $uri
}
}
if ($unreachableUris.Count -eq 0) {
Write-Output "All Azure DevOps endpoints are reachable."
} else {
Write-Output "The following Azure DevOps endpoints could not be reached:"
$unreachableUris | ForEach-Object { Write-Output $_ }
}
foreach ($uri in $managedDevOpsPoolsControlPlaneUris) {
try {
$hostName = ($uri -replace "^https?://", "") -replace "/.*", ""
$connection = Test-NetConnection -ComputerName $hostName -Port 443 -WarningAction SilentlyContinue
if (-not $connection.TcpTestSucceeded) {
$unreachableUris += $uri
}
} catch {
$unreachableUris += $uri
}
}
if ($unreachableUris.Count -eq 0) {
Write-Output "All Azure Managed DevOps Pools endpoints are reachable."
} else {
Write-Output "The following Managed DevOps Pools endpoints could not be reached:"
$unreachableUris | ForEach-Object { Write-Output $_ }
}
Konfigurace agenta Azure DevOps pro spuštění za proxy serverem
Pokud jste na image nakonfigurovali proxy službu a chcete, aby úlohy spuštěné ve vašem fondu běžely za tímto proxy serverem, musíte do image přidat následující proměnné prostředí:
-
VSTS_AGENT_INPUT_PROXYURL: Adresa URL nakonfigurovaného proxy serveru pro spuštění zpoza něj. -
VSTS_AGENT_INPUT_PROXYUSERNAME: Uživatelské jméno potřebné k použití proxy serveru. -
VSTS_AGENT_INPUT_PROXYPASSWORD: Heslo pro použití proxy serveru.
Pro Windows by tyto proměnné prostředí měly být systémové proměnné prostředí. V případě Linuxu /etc/environment by tyto proměnné měly být v souboru. Pokud nastavíte tyto systémové proměnné nesprávně nebo bez nakonfigurované proxy služby na imagi, zřizování nových agentů selže s problémy s připojením k síti.
Pokud migrujete z agentů Azure Virtual Machine Scale Sets a na image už používáte proměnné prostředí proxy, neměli byste provádět žádné změny. Tento proces je popsaný v agentech škálovací sady virtuálních počítačů Azure: Přizpůsobení konfigurace agenta kanálu.