Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A felügyelt DevOps-készletek ügynökeit úgy konfigurálhatja, hogy izolált virtuális hálózaton vagy meglévő virtuális hálózaton fussanak. Ez a cikk bemutatja, hogyan konfigurálhatja a készletet ügynökök futtatására a virtuális hálózaton.
Válassza ki a hálózati típust
A felügyelt DevOps-készletek kétféle hálózati konfigurációt támogatnak:
- Izolált virtuális hálózat: Minden készlet saját elkülönített virtuális hálózatot kap, amelyet a Felügyelt DevOps-készletek szolgáltatás hoz létre és kezel.
-
Meglévő virtuális hálózatba injektált ügynökök: Saját virtuális hálózatot és alhálózatot hozhat létre. A készlethez létrehozott összes virtuális gép ezt az alhálózatot fogja használni, és más erőforrások nem használhatják az alhálózatot. Előfordulhat, hogy a felügyelt DevOps-készletekből származó ügynököket a saját virtuális hálózatához szeretné hozzáadni az alábbi forgatókönyvekhez:
- A folyamatos integrációs és folyamatos kézbesítési (CI/CD) ügynököknek olyan erőforrásokhoz kell hozzáférnie, amelyek csak a vállalati hálózaton érhetők el egy olyan szolgáltatáson keresztül, mint az Azure ExpressRoute.
- A CI-/CD-ügynököknek privát végpontokhoz elkülönített erőforrásokhoz kell hozzáférnie.
- A CI/CD-infrastruktúrát úgy szeretné elkülöníteni, hogy saját virtuális hálózatát cégspecifikus tűzfalszabályokkal hozza létre.
- Minden más egyedi használati eset, amely nem érhető el a beépített felügyelt DevOps-készletek hálózati funkcióival.
Izolált virtuális hálózat
Alapértelmezés szerint minden készlet Microsoft által biztosított virtuális hálózatot használ, amely korlátozza az összes bejövő forgalmat, és a következő kimenő forgalom konfigurációs beállításaival rendelkezik.
- Az alapértelmezett kimenő kapcsolat a jelenlegi alapértelmezett kapcsolat, amely lehetővé teszi az összes kimenő forgalmat a Microsoft által megadott IP-cím használatával. Az Azure-beli virtuális gépek alapértelmezett kimenő hozzáférése a tervek szerint megszűnik. Ha az alapértelmezett kimenő hozzáférés megszűnik, a készletek alapértelmezés szerint egy statikus IP-címmel lesznek konfigurálva.
- Az alapértelmezett kimenő hozzáférés helyett a készletet legfeljebb 16 statikus kimenő IP-cím használatára konfigurálhatja. A felügyelt DevOps-készletek létrehoznak egy NAT-átjárót a készletével azonos régióban az IP-címek megadásához. Ez a konfiguráció lehetővé teszi bizonyos IP-címek engedélyezését olyan külső szolgáltatásokon, amelyekhez a folyamatoknak hozzá kell férnie.
- A NAT-átjáró további Azure-költségeket von maga után. Az Azure költségkalkulátorával modellezheti, hogy mennyibe fog kerülni. További információkért tekintse meg az Azure NAT Gateway díjszabását.
Fontos
Ha a készlet létrehozása után módosítja a statikus IP-címek számát, az IP-címek változhatnak, és a frissítési művelet befejeződése után be kell szereznie az új IP-címeket, és frissítenie kell az engedélyezési listát a külső szolgáltatásokon.
Ha készlet létrehozásakor szeretné konfigurálni az IP-címbeállításokat, lépjen a Hálózatkezelés lapra. Meglévő készlet frissítéséhez lépjen a Beállításokhálózatkezelés>.
Válassza a Nincs lehetőséget a nyilvános IP-címeken keresztüli átirányításhoz az alapértelmezett kimenő hozzáférés használatához.
Válassza a Microsoft által biztosított IP-címeket a statikus kimenő IP-címek konfigurálásához, és adja meg a használni kívánt statikus IP-címek számát. A felügyelt DevOps-készletek létrehoznak egy NAT-átjárót, és kezelik az IP-címeket.
Megjegyzés:
Van egy ismert probléma: ha a készlet felügyelt identitással van konfigurálva, az API-hívások nem fogják visszaadni a ipAddresses tulajdonságot, hacsak a DevOpsInfrastructure szolgáltatásprincipalnak nincs hozzárendelve a Felügyelt identitás operátor szerepkör a felügyelt identitáson. A részletes lépésekért lásd : Azure-szerepkörök hozzárendelése az Azure Portal használatával.
Ennek a szerepkörnek a megadása nem szükséges ahhoz, hogy a statikus IP-címek működőképesek legyenek. A szerepkör-hozzárendelés nélkül továbbra is megtalálhatja a hozzárendelt IP-címeket, ha megtekinti őket az Azure Portal Hálózatkezelés lapján.
Meglévő virtuális hálózatba injektált ügynökök
A munkacsoport ügynökeit az alábbi lépésekkel konfigurálhatja, hogy használják a virtuális hálózatot:
- Hozza létre vagy hozza át a virtuális hálózatát és alhálózatát.
-
Delegálja az alhálózatot a következőre
Microsoft.DevOpsInfrastructure/pools: . - Társítsa az alhálózatot a fürthöz.
Az előző lépések delegálják az alhálózatot a készlet kizárólagos hozzáféréséhez. Más poolok vagy erőforrások nem használhatják az alhálózatot.
Egy készlet több alhálózatot használhat, hogy több készlet is csatlakozhasson ugyanahhoz a virtuális hálózathoz. Minden alhálózat delegálva van, és a saját készletéhez van társítva.
Virtuális hálózat és alhálózat létrehozása vagy behozatala
Az alhálózatnak elegendő címtérrel kell rendelkeznie ahhoz, hogy elférjen a társítani kívánt készlet maximális mérete (beleértve azt az öt IP-címet is, amelyet az Azure lefoglal az alhálózatban).
Ha ExpressRoute-ot használ, engedélyeznie kell az írást az erőforráscsoport felügyeleti zárolásának ideiglenes elvetésével vagy módosításával.
Fontos
A fürdőnek és a virtuális hálózatnak ugyanabban a régióban kell lennie. Ellenkező esetben a készlet létrehozásakor vagy a hálózati konfiguráció frissítésekor a következőhöz hasonló hibaüzenet jelenik meg: "A virtuális hálózati MDPVN az eastus régióban található, de az mdpnonprodsub készlet ausztráliai régióban található. Ezeknek ugyanabban a régióban kell lenniük."
Olvasói és hálózati közreműködői hozzáférés biztosítása a DevOpsInfrastructure szolgáltatásnévhez
Győződjön meg arról, hogy a DevOpsInfrastructure principal rendelkezik Reader és Network Contributor hozzáféréssel a virtuális hálózathoz.
A beépített szerepkörök használata helyett létrehozhat egy egyéni szerepkört, amely a következő engedélyekkel rendelkezik:
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
Egyéni szerepkör létrehozása a szolgáltatástársítási hivatkozáshoz való hozzáféréshez. A Hozzáférés-vezérlés lapon létrehozhat egy példaszerepkört az erőforráscsoportban vagy az előfizetés szintjén, ahogyan az az alábbi példában is látható.
A DevOpsInfrastructure fő hozzáférésének ellenőrzése
Válassza a hozzáférés-vezérlés (IAM) lehetőséget a virtuális hálózathoz, majd válassza a Hozzáférés ellenőrzése lehetőséget.
Keresse meg és válassza a DevOpsInfrastructure lehetőséget.
Ellenőrizze, hogy rendelkezik-e olvasószintű hozzáféréssel. Ellenőrizze, hogy a
Microsoft.Network/virtualNetworks/subnets/join/action,Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/validate/actionésMicrosoft.Network/virtualNetworks/subnets/serviceAssociationLinks/writehozzá van-e rendelve a hozzáférés. Az egyéni szerepkörnek itt kell megjelennie.
Ha a DevOpsInfrastructure főfelhasználó nem rendelkezik azokkal az engedélyekkel, adja hozzá őket. Válassza a virtuális hálózat hozzáférés-vezérlését (IAM), majd válassza az Erőforráshoz való hozzáférés biztosítása lehetőséget.
Az alhálózat delegálása a Microsoft.DevOpsInfrastructure/pools szolgáltatásba
A portálon nyissa meg az Alhálózat tulajdonságait , és válassza az Microsoft.DevOpsInfrastructure/poolsAlhálózat-delegálás területen. Válassza az Mentésgombot.
Ez a folyamat delegálja az alhálózatot a készlet kizárólagos hozzáféréséhez. Más poolok vagy erőforrások nem használhatják az alhálózatot. Ha több poolt szeretne ugyanahhoz a virtuális hálózathoz csatlakoztatni, több alhálózatot kell használnia. Minden alhálózatot delegálni kell, és a saját készletéhez kell társítani. Az alhálózat-delegálással kapcsolatos további információkat az alhálózat-delegálás áttekintésében találja.
Miután delegálja az alhálózatot Microsoft.DevOpsInfrastructure/pools, frissítheti a címkészletet oly módon, hogy az a alhálózatot használja.
Társítsa az alhálózatot a medencével
Új készlet létrehozásához lépjen a Hálózatkezelés lapra. Meglévő készlet frissítéséhez lépjen a Beállítások>hálózatkezelés lapra, majd válassza a Meglévő virtuális hálózat>konfigurálása szolgáltatásba injektált ügynököket.
Válassza ki a delegált előfizetési, virtuális hálózat és
Microsoft.DevOpsInfrastructure/poolsértékeket, majd kattintson az Ok gombra.
A hálózati frissítés befejeződése után a készletben újonnan létrehozott erőforrás a delegált alhálózatot fogja használni.
Fontos
A készletek frissítésekor ne helyezzen törlési zárolást a virtuális hálózatra. A készletfrissítési művelet során a felügyelt DevOps-készletek létrehoznak egy szolgáltatástársítási hivatkozást az alhálózaton. Ha egy frissítés sikertelen, a felügyelt DevOps-készletek megpróbálják megtisztítani a szolgáltatástársítási hivatkozást, de ha törlési zárolás van, hibaüzenet jelenik InUseSubnetCannotBeDeleted meg. A felügyelt DevOps-készletek nem tudják törölni a szolgáltatástársítási hivatkozást, amely zárolt állapotban hagyja az alhálózatot (nem törölhető). A probléma megoldásához távolítsa el a Törlés zárolást, és próbálkozzon újra a frissítési művelettel.
További információ: Megfontolandó szempontok, mielőtt zárolásokat alkalmaz az Azure-erőforrásokra.
Kimenő kapcsolat korlátozása
Ha a hálózaton vannak olyan rendszerek (például hálózati biztonsági csoportok vagy tűzfalak), amelyek korlátozzák a kimenő kapcsolatot, bizonyos végpontokat kell hozzáadnia egy engedélyezési listához, hogy teljes mértékben támogassa a felügyelt DevOps-készleteket. Ezek a végpontok globálisan szükséges végpontokra vannak osztva (amelyek a felügyelt DevOps-készleteket használó gépeken szükségesek) és bizonyos forgatókönyvekhez szükséges végpontokra. Az összes végpont HTTPS, kivéve, ha másként van megadva.
A felügyelt DevOps-készletek indításához szükséges végpontok
Ha nem adja hozzá ezeket a végpontokat egy engedélyezési listához, a gépek nem lesznek online állapotban a Felügyelt DevOps-készletek szolgáltatás részeként, és nem futtathatók folyamatok a készleten:
-
*.prod.manageddevops.microsoft.com: Felügyelt DevOps-készletek végpontja a Felügyelt DevOps-készletek szolgáltatással való kommunikációhoz. -
rmprodbuilds.azureedge.net: A felügyelt DevOps-készletek feldolgozói bináris fájljainak és indítási szkriptjeinek letöltésére szolgál. A munkavégző bináris fájloknak az ügynök részét a rendszer arm-agent.prod.manageddevops.microsoft.com-ről tölti le (ami korábban aagent.prod.manageddevops.microsoft.com-ről történt), amelyet már az előző kötelező*.prod.manageddevops.microsoft.combejegyzés fed le. -
*.queue.core.windows.net: Feldolgozói üzenetsor a felügyelt DevOps-készletek szolgáltatással való kommunikációhoz.
Az Azure DevOpshoz való csatlakozáshoz szükséges végpontok
Ha nem adja hozzá ezeket a végpontokat egy engedélyezési listához, előfordulhat, hogy a gépek online állapotba kerülnek, és akár lefoglalt állapotba is kerülhetnek, de nem tudnak kommunikálni az Azure DevOpsszal, mert az Azure DevOps Services-feladatügynök vagy nem tud csatlakozni, vagy nem tud elindulni.
-
download.agent.dev.azure.com: Az Azure DevOps-ügynök tartalomkézbesítési hálózatának (CDN) helye, amely az Azure DevOps-ügynök letöltésére szolgál (korábbanvstsagentpackage.azureedge.net; további információ: Az Edgio CDN for Azure DevOps kivonása folyamatban van). -
dev.azure.com: Az Azure DevOpsszal való kommunikáció kezeléséhez szükséges.
Linux rendszerű gépekhez szükséges végpontok
Ezek a végpontok szükségesek az Ubuntu-gépek üzembe állításához, de nem szükségesek, ha egy készlet csak Windowst használ. Az Azure DevOps-feladatügynök beállításakor a rendszer hozzáadja a szükséges csomagokat, és futtat egy apt-get parancsot. Ez a folyamat meghiúsul, ha a következő végpontok nincsenek hozzáadva egy engedélyezési listához.
-
azure.archive.ubuntu.com: Linux rendszerű gépek kiépítése. Ez a végpont HTTP (80-os port), nem HTTPS (443-os port). -
www.microsoft.com: Linux rendszerű gépek kiépítése. -
security.ubuntu.com: Linux rendszerű gépek kiépítése. -
packages.microsoft.com: Linux rendszerű gépek kiépítése. -
ppa.launchpad.net: Bizonyos Linux-disztribúciók kiépítése. -
dl.fedoraproject.org: Bizonyos Linux-disztribúciók kiépítése.
Szükséges végpontok egyes Azure DevOps-funkciókhoz
Ezek az opcionális végpontok szükségesek ahhoz, hogy bizonyos Azure DevOps-funkciók működjenek a folyamatokon. A következő készletben a helyettesítő karakter lecserélhető a folyamatot üzemeltető adott Azure DevOps-szervezetre. Ha például a szervezet neve contoso, akkor ahelyett, hogy contoso.services.visualstudio.com-t használna, használhatja a *.services.visualstudio.com-t.
*.services.visualstudio.com-
*.vsblob.visualstudio.com: Összetevők feltöltéséhez és felhasználásához egyaránt használható. -
*.vssps.visualstudio.com: Az Azure DevOpsszal való hitelesítéshez használható bizonyos funkciókhoz. *.visualstudio.com
Megjegyzés:
Az előző elemek a minimálisan szükséges domainok. Ha bármilyen probléma merül fel, tekintse meg az Azure DevOps által engedélyezett IP-címek és tartomány URL-címek kötelező tartományainak teljes listáját.
Azure-sal kapcsolatos végpontok
Az Azure-beli virtuális gépek (VM-ek) bizonyos Azure-funkciókhoz irányíthatják a forgalmat az alhálózaton keresztül. Ezekhez a kérésekhez közvetlenül az Azure-on keresztül irányíthatja a kéréseket, vagy engedélyezheti a hálózaton keresztüli hozzáférést.
Az Azure-forgalom konfigurálása szolgáltatásvégpontokon való futtatásra:
A forgalmat közvetlenül az Azure-on keresztül irányíthatja, hogy elkerülje az átviteli sebesség hálózati biztonsági csoportokhoz vagy tűzfalakhoz való hozzáadását. Az alábbi beállításban felsorolt tartományokat nem kell hozzáadnia egy engedélyezési listához.
Az adatlemez funkcióval például hálózati hívásokat vonhat be az Azure Storage-ba. Ha engedélyezi a Microsoft.Storage szolgáltatásvégpontot a hálózaton, a forgalom közvetlenül az Azure-on halad át, így elkerüli a hálózati szabályokat, és csökkenti a terhelést.
A forgalom szolgáltatásvégpontokon keresztüli átirányításának elkerülése érdekében adja hozzá a tartományt az
md-*.blob.storage.azure.netengedélyezési listához. Ez a tartomány egy adatlemez konfigurálásához szükséges.
Akamai CDN kézbesítési IP-címek
2025. május 1-jén az Azure DevOps CDN-eszközök átálltak az Akamai és az Azure Front Door által kiszolgált megoldásra. Győződjön meg arról, hogy a hálózat kimenő hozzáféréssel rendelkezik az Akamai IP-tartományaihoz. További információkért lásd:
- CDN domain URL-címének módosítása csővezetékekben lévő ügynökök esetében
- Azure CDN az Edgio-ból – megszűnésével kapcsolatos gyakori kérdések
- Akamai TechDocs: Eredeti IP címek hozzáférés-vezérlési listája
Ha úgy konfigurálja az Azure DevOps-folyamatot, hogy egy tárolón belül fusson, a tárolórendszerkép forrását (Docker vagy Azure Container Registry) is hozzá kell adnia egy engedélyezési listához.
Végpontkapcsolat ellenőrzése
Ellenőrizze, hogy használhat-e alhálózatot felügyelt DevOps-készletekkel az alábbi szkript futtatásával egy adott alhálózaton lévő erőforráson. Ez a lépés segít ellenőrizni, hogy a hálózati folyamat úgy van-e konfigurálva, hogy elérje az összes elérhető végpontot és a felügyelt DevOps vezérlősíkot.
Fontos
Ezt a szkriptet az alhálózat egyik erőforrásán (például virtuális gépen vagy tárolón) kell futtatnia annak ellenőrzéséhez, hogy a hálózati útvonal nyitva van-e az alhálózattól a szükséges végpontokig.
Ha a szkriptet a PowerShell Core vagy a PowerShell 5 vagy újabb verziójával szeretné futtatni, mentse a következő szkriptet.ValidateMDPEndpoints.ps1 Futtassa a következő PowerShell-parancsot: .\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 $_ }
}
Az Azure DevOps-ügynök konfigurálása proxy mögötti futtatásra
Ha proxy szolgáltatást konfigurált a képfájlon, és azt szeretné, hogy a poolban futó számítási feladatok a proxy szolgáltatás mögött fussanak, a következő környezeti változókat kell hozzáadnia a képfájlhoz:
-
VSTS_AGENT_INPUT_PROXYURL: A konfigurált proxy URL-címe, amely mögött fut. -
VSTS_AGENT_INPUT_PROXYUSERNAME: A proxy használatához szükséges felhasználónév. -
VSTS_AGENT_INPUT_PROXYPASSWORD: A proxy használatához használt jelszó.
Windows esetén ezeknek a környezeti változóknak rendszerkörnyezeti változóknak kell lenniük. Linux esetén ezeknek a változóknak a /etc/environment fájlban kell lenniük. Ha ezeket a rendszerváltozókat helytelenül vagy konfigurált proxyszolgáltatás nélkül állítja be a rendszerképen, az új ügynökök kiépítése hálózati csatlakozási problémák esetén meghiúsul.
Ha az Azure virtuális gépek méretezési csoportjaiból migrál, és már használja a proxykörnyezet változóit a képen, nem kell semmilyen módosítást végrehajtania. Ezt a folyamatot az Azure Virtual Machine Scale Set-ügynökök ismertetik: A folyamatügynök konfigurációjának testreszabása.