Azure-beli virtuálisgép-méretezési csoportok ügynökei

Azure DevOps Services

Az Azure-beli virtuálisgép-méretezési csoportok ügynökei, a továbbiakban méretezési csoportok ügynökei a saját üzemeltetésű ügynökök egy olyan formája, amely automatikusan skálázható az igényeinek megfelelően. Ennek a rugalmasságnak köszönhetően ritkábban van szükség dedikált ügynökök futtatására. A Microsoft által üzemeltetett ügynököktől eltérően rugalmasan kezelheti azoknak a gépeknek a méretét és rendszerképét, amelyeken az ügynökök futnak.

Ha szereti a Microsoft által üzemeltetett ügynököket, de az általuk kínált lehetőségek korlátozottak, érdemes megfontolnia a méretezési csoport ügynökeit. Íme néhány példa:

  • Több memóriára, több processzorra, több tárterületre vagy több I/O-ra van szüksége, mint amit natív Microsoft által üzemeltetett ügynökökben kínálunk.
  • NCv2 virtuális gépre van szüksége, a gépi tanuláshoz meghatározott utasításkészletekkel.
  • Virtuális magánhálózaton lévő privát Azure App Service-ben szeretne üzembe helyezést végezni bejövő kapcsolat nélkül.
  • Meg kell nyitnia a vállalati tűzfalat bizonyos IP-címeken, hogy a Microsoft által üzemeltetett ügynökök kommunikálhassanak a kiszolgálóival.
  • Korlátoznia kell az ügynökgépek hálózati kapcsolatát, és engedélyeznie kell, hogy csak a jóváhagyott helyekhez jussanak el.
  • Nem tud elegendő ügynököt beszeretni a Microsofttól az igényeihez.
  • A feladatok túllépik a Microsoft által üzemeltetett ügynök időtúllépési idejét.
  • A Microsoft által üzemeltetett párhuzamos feladatok nem particionálhatók a szervezet egyes projektjeire vagy csapatára.
  • Számos egymást követő feladatot szeretne futtatni egy ügynökön, hogy kihasználhassa a növekményes forrást és a gépszintű csomaggyorsítótárakat.
  • A konfigurációt vagy a gyorsítótár bemelegítését még azelőtt szeretné futtatni, hogy egy ügynök elkezdené elfogadni a feladatokat.

Ha szereti a saját üzemeltetésű ügynököket, de szeretné, ha egyszerűbben kezelhetné őket, érdemes megfontolnia a méretezési csoport ügynökeit. Íme néhány példa:

  • Nem szeretne állandóan dedikált ügynököket futtatni. Meg szeretné szüntetni a feladatok futtatásához nem használt ügynökgépeket.
  • Nem megbízható kódot futtat a folyamaton belül, és minden feladat után alaphelyzetbe szeretné állítani az ügynökgépek rendszerképét.
  • Egyszerűsíteni szeretné az ügynökök alaprendszerképének rendszeres frissítését.

Feljegyzés

  • A Mac-ügynökök nem futtathatók méretezési csoportokkal. Így csak Windows- vagy Linux-ügynököket futtathat.

  • Az Azure DevOps Services VMSS-ügynökkészleteinek használata csak az Azure nyilvános (globális szolgáltatási) felhőben támogatott. A VMSS-ügynökkészletek jelenleg nem támogatnak más nemzeti felhőajánlatokat.

  • A VMSS-t nem szabad több készlethez társítani.

A méretezési csoport létrehozása

A méretezési csoportok ügynökeinek létrehozásához először létre kell hoznia egy virtuálisgép-méretezési csoportot az Azure Portalon. A virtuálisgép-méretezési csoportot bizonyos módon kell létrehoznia, hogy az Azure Pipelines felügyelhesse. Különösen le kell tiltaniaaz automatikus skálázást , hogy az Azure Pipelines a bejövő folyamatfeladatok száma alapján határozza meg a skálázást. Javasoljuk, hogy a méretezési csoport létrehozásához kövesse az alábbi lépéseket.

Az alábbi példában egy új erőforráscsoport és virtuálisgép-méretezési csoport jön létre az Azure Cloud Shellben az UbuntuLTS virtuálisgép-rendszerkép használatával.

Feljegyzés

Ebben a példában az UbuntuLTS virtuálisgép-rendszerképet használja a méretezési csoport. Ha az ügynök alapjaként testre szabott virtuálisgép-rendszerképet igényel, a méretezési csoport létrehozása előtt hozza létre a testre szabott lemezképet a méretezési csoport létrehozása egyéni lemezképekkel, szoftverekkel vagy lemezmérettel kapcsolatos lépésekkel.

  1. Keresse meg az Azure Cloud Shellt a következő helyen https://shell.azure.com/: .

  2. Futtassa az alábbi parancsot az alapértelmezett Azure-előfizetés ellenőrzéséhez.

    az account list -o table
    

    Ha a kívánt előfizetés nem szerepel alapértelmezettként, válassza ki a kívánt előfizetést.

    az account set -s <your subscription ID>
    
  3. Hozzon létre egy erőforráscsoportot a virtuálisgép-méretezési csoporthoz.

    az group create \
    --location westus \
    --name vmssagents
    
  4. Hozzon létre egy virtuálisgép-méretezési csoportot az erőforráscsoportban. Ebben a példában az Ubuntu2204 virtuálisgép-rendszerkép van megadva.

    az vmss create \
    --name vmssagentspool \
    --resource-group vmssagents \
    --image Ubuntu2204 \
    --vm-sku Standard_D2_v4 \
    --storage-sku StandardSSD_LRS \
    --authentication-type SSH \
    --generate-ssh-keys \
    --instance-count 2 \
    --disable-overprovision \
    --upgrade-policy-mode manual \
    --single-placement-group false \
    --platform-fault-domain-count 1 \
    --load-balancer "" \
    --orchestration-mode Uniform
    

    Feljegyzés

    Az Azure Pipelines nem támogatja a méretezési csoportok túlméretezését és automatikus skálázását. Győződjön meg arról, hogy a méretezési csoport mindkét funkciója le van tiltva.

    Mivel az Azure Pipelines kezeli a méretezési csoportot, a következő beállítások szükségesek vagy ajánlottak:

    • --disable-overprovision -Szükséges
    • --upgrade-policy-mode manual -Szükséges
    • --load-balancer "" – Az Azure Pipelines nem igényel terheléselosztót a feladatoknak a méretezési csoport ügynökkészletében lévő ügynökökhöz való átirányításához, de a terheléselosztó konfigurálása az egyik módja annak, hogy lekérje a méretezési csoport ügynökeinek IP-címét, amelyet tűzfalszabályokhoz használhat. A méretezési csoport ügynökeinek IP-címének lekérésére egy másik lehetőség a méretezési csoport létrehozása a --public-ip-address beállítások használatával. A méretezési csoport terheléselosztóval vagy nyilvános IP-címmel való konfigurálásáról további információt a Virtuálisgép-méretezési csoportok dokumentációjában és az az vmss create című cikkben talál.
    • --instance-count 2 - ez a beállítás nem kötelező, de lehetővé teszi, hogy az ügynökkészlet létrehozása előtt ellenőrizze, hogy a méretezési csoport teljes mértékben működőképes-e. A két virtuális gép létrehozása több percet is igénybe vehet. Később az ügynökkészlet létrehozásakor az Azure Pipelines törli ezt a két virtuális gépet, és újakat hoz létre.

    Fontos

    Ha windowsos Azure CLI-vel futtatja ezt a szkriptet, az alábbihoz hasonló idézőjelekkel kell befoglalnia a "" szkriptet --load-balancer "" : --load-balancer '""'

    Ha a virtuális gép mérete támogatja a rövid élettartamú operációsrendszer-lemezeket, a rövid élettartamú operációsrendszer-lemezek engedélyezéséhez az alábbi paraméterek nem kötelezőek, de ajánlott a virtuális gépek újrailleszkedési idejének javítása.

    • --ephemeral-os-disk true
    • --os-disk-caching readonly

    Fontos

    A rövid élettartamú operációsrendszer-lemezek nem támogatottak minden virtuálisgép-méretben. A támogatott virtuálisgép-méretek listáját az Azure-beli virtuális gépek rövid élettartamú operációsrendszer-lemezei című témakörben találja.

    Válassza ki bármelyik Linux- vagy Windows-rendszerképet – akár az Azure Marketplace-ről, akár a saját egyéni rendszerképéből – a méretezési csoport létrehozásához. Ne telepítse előre az Azure Pipelines-ügynököt a képen. Az Azure Pipelines automatikusan telepíti az ügynököt, mivel új virtuális gépeket helyez üzembe. A fenti példában egy egyszerű UbuntuLTS képet használtunk. Az egyéni rendszerképek létrehozásával és használatával kapcsolatos utasításokért tekintse meg a gyakori kérdéseket.

    Válassza ki a virtuálisgép-termékváltozatot és a tárolási termékváltozatot.

    Feljegyzés

    A licencelési szempontok korlátozzák a Microsoft által üzemeltetett rendszerképek terjesztését. Ezeket a képeket nem tudjuk megadni a méretezési csoport ügynökei számára. A rendszerképek létrehozásához használt szkriptek azonban nyílt forráskód. Szabadon használhatja ezeket a szkripteket, és létrehozhat saját egyéni rendszerképeket.

  5. A méretezési csoport létrehozása után lépjen a méretezési csoporthoz az Azure Portalon, és ellenőrizze a következő beállításokat:

    • Frissítési szabályzat – Manuális

      Verify upgrade policy.

      Ezt a beállítást az alábbi Azure CLI-parancs futtatásával is ellenőrizheti.

      az vmss show --resource-group vmssagents --name vmssagentspool --output table
      
      Name            ResourceGroup    Location    Zones    Capacity    Overprovision    UpgradePolicy
      --------------  ---------------  ----------  -------  ----------  ---------------  ---------------
      vmssagentspool  vmssagents       westus               0           False            Manual
      
    • Skálázás – Manuális skálázás

      Verify manual scale policy.

Fontos

Az Azure Pipelines nem támogatja a példányok védelmét. Győződjön meg arról, hogy a méretezési és méretezési csoport műveleteinek példányvédelme le van tiltva.

Vezénylési módok

Az Azure-beli virtuálisgép-méretezési csoportok két vezénylési móddal konfigurálhatók: egységes és rugalmas. Az Azure Pipelines egységes vezénylési módjának támogatása általánosan elérhető minden ügyfél számára.

A rugalmas vezénylési mód lehetővé teszi, hogy az Azure Pipelines egyszerre több méretezési csoport műveleteit is várólistára állítsa. Az Azure Pipelines rugalmas vezénylési támogatása kérésre elérhető, és kiértékelés tárgyát képezi. Az ügyfelek használati mintáinak jelentős előnyt kell jeleznie. Az ilyen ügyfelek nagy léptékű csoportokkal rendelkeznek, nem használják újra az ügynököket több feladathoz, több, rövid élettartamú feladatot futtatnak párhuzamosan, és kizárólag rövid élettartamú lemezeket használnak a virtuális gépeiken. Ha használni szeretné ezt a funkciót, forduljon támogatási csapatunkhoz.

A méretezési csoport ügynökkészletének létrehozása

  1. Lépjen az Azure DevOps Project beállításaihoz, válassza az Ügynökkészletek lehetőséget a Folyamatok területen, majd válassza a Készlet hozzáadása lehetőséget egy új ügynökkészlet létrehozásához.

    Create agent pool.

    Fontos

    Létrehozhatja a méretezési csoportkészletet a Project beállításaiban vagy a Szervezeti beállításokban, de ha töröl egy méretezési csoportkészletet, azt a Szervezeti beállításokból kell törölnie, és nem a Project beállításaiból.

  2. Válassza ki a készlettípushoz tartozó Azure-beli virtuálisgép-méretezési csoportot . Válassza ki a méretezési csoportot tartalmazó Azure-előfizetést , válassza az Engedélyezés lehetőséget, és válassza ki a kívánt virtuálisgép-méretezési csoportot az előfizetésből. Ha már rendelkezik szolgáltatáskapcsolattal, azt az előfizetés helyett a listából választhatja ki.

    Fontos

    • A méretezési csoport ügynökkészletének konfigurálásához tulajdonosi vagy felhasználói hozzáféréssel Rendszergazda istrator engedélyekkel kell rendelkeznie a kiválasztott előfizetéshez. Ha rendelkezik ilyen engedélyekkel, de az Engedélyezés lehetőség választásakor hibaüzenet jelenik meg, tekintse meg a hibaelhárítást.

    • Jelenleg az egyetlen támogatott szolgáltatáskapcsolat az Azure Resource Manager (ARM) szolgáltatáskapcsolat, amely egy szolgáltatásnévkulcson alapul. A tanúsítvány hitelesítő adatain vagy a felügyelt identitáson alapuló ARM-szolgáltatáskapcsolatok sikertelenek lesznek. Amikor megkísérli listázni a meglévő méretezési csoportokat az előfizetésben, a következőhöz hasonló hibaüzenet jelenik meg:

      Invalid Service Endpoint with Id <guid> and Scope <guid>

  3. Válassza ki a kívánt virtuálisgép-méretezési csoportot az előfizetésből.

  4. Adja meg az ügynökkészlet nevét.

  5. Adja meg az alábbi lehetőségeket:

    • Virtuális gépek automatikus lebontása minden használat után – Minden feladathoz új virtuálisgép-példányt használ a rendszer. A virtuális gép egy feladat futtatása után offline állapotba kerül, és egy másik feladat felvétele előtt újraépül.
    • Nem kifogástalan ügynök mentése vizsgálathoz – Azt határozza meg, hogy az sérült ügynök virtuális gépeit a törlés helyett hibakeresésre mentse-e.
    • A méretezési csoportban lévő virtuális gépek maximális száma – Az Azure Pipelines automatikusan felskálázza az ügynökök számát, de nem lépi túl ezt a korlátot.
    • Készenléti állapotban tartani kívánt ügynökök száma – Az Azure Pipelines automatikusan skálázza az ügynökök számát, de biztosítja, hogy mindig ennyi ügynök legyen elérhető az új feladatok futtatásához. Ha az ügynökök számát 0-ra állítja, például alacsony mennyiségű feladat költségeinek megőrzéséhez, az Azure Pipelines csak akkor indít el virtuális gépet, ha rendelkezik feladattal.
    • Késleltetés percekben a felesleges tétlen ügynökök törlése előtt – A buildbetöltés napközbeni variabilitásának figyelembe vételével az Azure Pipelines a megadott időtartamra vár, mielőtt törölné a felesleges tétlen ügynököt.
    • Virtuális gépek konfigurálása interaktív tesztek futtatására (csak Windows Server operációs rendszer esetén) – A Windows-ügynökök konfigurálhatók úgy, hogy automatikusan, interaktív felhasználói felületen futtassanak, vagy konfigurálhatók emelt szintű engedélyekkel való futtatásra. Jelölje be ezt a jelölőnégyzetet az interaktív felhasználói felülettel való felügyelet nélküli futtatáshoz. Az ügynökfelhasználó mindkét esetben a Rendszergazda istrators csoport tagja.
  6. Amikor a beállítások konfigurálva vannak, válassza a Létrehozás lehetőséget az ügynökkészlet létrehozásához.

Méretezési csoport ügynökkészletének használata

A méretezési csoport ügynökkészletének használata hasonló minden más ügynökkészlethez. Használhatja klasszikus buildelési, kiadási vagy YAML-folyamatokban. A felhasználói engedélyek, a folyamatengedélyek, a jóváhagyások és az egyéb ellenőrzések ugyanúgy működnek, mint bármely más ügynökkészletben. További információ: Ügynökkészletek.

Fontos

Az Azure Portalon közvetlenül a méretezési csoport módosításakor körültekintően kell eljárni.

  • Előfordulhat, hogy nem módosítja a méretezési csoport konfigurációs beállításait az Azure Portalon. Az Azure Pipelines frissíti a méretezési csoport konfigurációját. A méretezési csoportban végzett manuális módosítások zavarhatják az Azure Pipelines működését.
  • Nem nevezhet át vagy törölhet méretezési csoportot anélkül, hogy először törölné a méretezésicsoport-készletet az Azure Pipelinesban.

Hogyan kezeli az Azure Pipelines a méretezési csoportot

A méretezési csoport ügynökkészletének létrehozása után az Azure Pipelines automatikusan skálázza az ügynökgépeket.

Az Azure Pipelines 5 percenként mintát vesz a készletben lévő ügynökök és a méretezési csoportban lévő virtuális gépek állapotából. A vertikális fel- vagy kiskálázás az adott időpontban inaktív ügynökök számán alapul. Az ügynök tétlennek minősül, ha online állapotban van, és nem futtat folyamatfeladatot. Az Azure Pipelines vertikális felskálázási műveletet hajt végre, ha az alábbi feltételek valamelyike teljesül:

  • Az inaktív ügynökök száma nem éri el a megadott készenléti ügynökök számát
  • Nincsenek tétlen ügynökök a várólistán várakozó folyamatfeladatok kiszolgálásához

Ha az egyik feltétel teljesül, az Azure Pipelines növeli a virtuális gépek számát. A horizontális felskálázás a maximális készletméret bizonyos százalékának növekményében történik. Az egyes lépésekhez 20 perc alatt létre kell hozni a gépeket.

Az Azure Pipelines akkor skálázható az ügynökökben, ha az inaktív ügynökök száma meghaladja a készenléti idő több mint 30 percét (a késleltetés használatával percek alatt konfigurálható a felesleges inaktív ügynökök törlése előtt).

Ha mindezt példaként szeretné beállítani, fontolja meg egy méretezési csoport ügynökkészletét, amely két készenléti ügynökkel és négy maximális ügynökkel van konfigurálva. Tegyük fel, hogy minden használat után le szeretné bontani a virtuális gépet. Tegyük fel azt is, hogy a méretezési csoportban nincsenek olyan virtuális gépek, amelyekkel kezdenie kell.

  • Mivel az inaktív ügynökök száma 0, és mivel az inaktív ügynökök száma a 2-es készenléti szám alatt van, az Azure Pipelines felskálázódik, és két virtuális gépet ad hozzá a méretezési csoporthoz. Amint ezek az ügynökök online állapotba kerülnek, két tétlen ügynök lesz.

  • Tegyük fel, hogy egy folyamatfeladat érkezik, és az egyik ügynökhöz van hozzárendelve.

  • Jelenleg az inaktív ügynökök száma 1, és ez kisebb, mint a 2 készenléti szám. Az Azure Pipelines tehát felskáláz, és további 2 virtuális gépet ad hozzá (a példában használt növekményméretet). A készlet jelenleg három tétlen ügynökkel és egy foglalt ügynökkel rendelkezik.

  • Tegyük fel, hogy az első ügynök feladata befejeződött. Az Azure Pipelines offline állapotba helyezi az ügynököt a gép újraimálásához. Néhány perc múlva egy friss képpel tér vissza. Most négy tétlen ügynökünk lesz.

  • Ha más feladatok nem érkeznek 30 percig (a Késleltetés funkcióval percek alatt konfigurálható a felesleges inaktív ügynökök törlése előtt), az Azure Pipelines megállapítja, hogy a szükségesnél több tétlen ügynök van. Tehát két ügynökre van skálázva a készletben.

A művelet során az Azure Pipelines célja, hogy elérje a készenléti állapotban lévő inaktív ügynökök kívánt számát. A készletek lassan horizontálisan fel és le vannak skálázva. Egy nap alatt a készlet felskálázható, mivel a kérések reggel várólistára kerülnek, és este csökken a terhelés. Előfordulhat, hogy több tétlenségi ügynököt észlel, mint amennyit szeretne, ami várható, mivel az Azure Pipelines fokozatosan konvergál a megadott korlátozásokhoz.

Feljegyzés

Az Azure Pipelines vertikális felskálázása vagy méretezése a virtuális gépeken akár egy órát is igénybe vehet. Az Azure Pipelines lépésenkénti vertikális felskálázást végez, figyeli a hibákat, és a használhatatlan gépek törlésével és az idő során újak létrehozásával reagál. Ez a korrekciós művelet több mint egy órát vehet igénybe.

A maximális stabilitás érdekében a méretezési csoport műveletei egymás után lesznek végrehajtva. Ha például a készletet fel kell skálázni, és vannak nem megfelelő állapotú gépek is, az Azure Pipelines először felskálázza a készletet. Miután a készlet felskálázva elérte a készenléti állapotban lévő inaktív ügynökök kívánt számát, a rendszer törli a nem megfelelő gépeket a vizsgálathoz szükséges nem megfelelő ügynök mentése beállítástól függően. További információ: Nem megfelelő állapotú ügynökök.

Az 5 perces mintavételezési méret miatt előfordulhat, hogy az összes ügynök rövid ideig futtatja a folyamatokat, és nem történik horizontális felskálázás.

A Pipeline-ügynök konfigurálásának testreszabása

Az Azure Pipelines Agent konfigurációját testre szabhatja úgy, hogy környezeti változókat határoz meg az operációs rendszer egyéni rendszerképében a méretezési csoporthoz. A méretezési csoport ügynök munkakönyvtára például alapértelmezés szerint C:\a windowsos és /agent/_work Linux esetén. Ha módosítani szeretné a munkakönyvtárat, állítson be egy VSTS_AGENT_INPUT_WORK nevű környezeti változót a kívánt munkakönyvtárral. További információt a Pipelines Agent felügyelet nélküli konfigurációs dokumentációjában talál. Néhány példa:

  • VSTS_AGENT_INPUT_WORK
  • VSTS_AGENT_INPUT_PROXYURL
  • VSTS_AGENT_INPUT_PROXYUSERNAME
  • VSTS_AGENT_INPUT_PROXYPASSWORD

Fontos

A Pipelines-ügynök testreszabásakor körültekintően kell eljárni. Egyes beállítások ütköznek a többi szükséges beállítással, ami miatt az ügynök nem regisztrálható, és a virtuális gép törölve lesz. Ezeket a beállításokat nem szabad beállítani vagy módosítani:

  • VSTS_AGENT_INPUT_URL
  • VSTS_AGENT_INPUT_AUTH
  • VSTS_AGENT_INPUT_TOKEN
  • VSTS_AGENT_INPUT_USERNAME
  • VSTS_AGENT_INPUT_PASSWORD
  • VSTS_AGENT_INPUT_POOL
  • VSTS_AGENT_INPUT_AGENT
  • VSTS_AGENT_INPUT_RUNASSERVICE
  • ... és bármi, ami az üzembe helyezési csoportokkal kapcsolatos.

A virtuális gép indítási beállításainak testreszabása az egyéni szkriptbővítményen keresztül

Előfordulhat, hogy a felhasználók a méretezési csoport ügynök gépein szeretnének indítási szkripteket végrehajtani, mielőtt ezek a gépek elkezdenék futtatni a folyamatfeladatokat. Az indítási szkriptek gyakori használati esetei közé tartozik a szoftverek telepítése, a gyorsítótárak felmelegedése vagy az adattárak lekérése. Az indítási szkripteket a Windows egyéni szkriptbővítményének vagy a Linux egyéni szkriptbővítményének telepítésével hajthatja végre.

Ez a bővítmény a méretezési csoport összes virtuális gépén közvetlenül a létrehozása vagy újraformázása után lesz végrehajtva. Az egyéni szkriptbővítmény az Azure Pipelines-ügynök bővítmény végrehajtása előtt lesz végrehajtva.

Az alábbi példában egy egyéni szkriptbővítményt hozhat létre Linuxhoz.

az vmss extension set \
--vmss-name <scaleset name> \
--resource-group <resource group> \
--name CustomScript \
--version 2.0 \
--publisher Microsoft.Azure.Extensions \
--settings '{ \"fileUris\":[\"https://<myGitHubRepoUrl>/myScript.sh\"], \"commandToExecute\": \"bash ./myScript.sh /myArgs \" }'

Íme egy példa a Windows egyéni szkriptbővítményének létrehozására.

az vmss extension set \
--vmss-name <scaleset name> \
--resource-group <resource group> \
--name CustomScriptExtension \
--version 1.9 \
--publisher Microsoft.Compute \
--settings '{ \"FileUris\":[\"https://<myGitHubRepoUrl>/myscript.ps1\"], \"commandToExecute\": \"Powershell.exe -ExecutionPolicy Unrestricted -File myscript.ps1 -myargs 0 \" }'

Fontos

Az egyéni szkriptbővítményben végrehajtott szkripteknek a 0-s kilépési kóddal kell visszatérniük ahhoz, hogy a virtuális gép befejezhesse a virtuális gép létrehozását. Ha az egyéni szkriptbővítmény kivételt jelez, vagy nem nulla kilépési kódot ad vissza, az Azure Pipeline-bővítmény nem lesz végrehajtva, és a virtuális gép nem regisztrál az Azure DevOps-ügynökkészletben.

Előfordulhat, hogy a bővítmény az összes virtuálisgép-erőforrás kiépítése előtt fut, ebben az esetben az "alapvető előfeltételek sikertelen telepítése" hibához hasonló hibaüzenet jelenik meg. Ezt kijavíthatja úgy, hogy hozzáad egy sleep parancsot a szkript elejéhez, például sleep 30.

Méretezési csoport ügynök életciklusa

Íme egy Azure Pipelines virtuálisgép-méretezési csoportügynök műveleteinek folyamata

  1. Az Azure DevOps Méretezési csoport ügynökkészlet méretezési feladata meghatározza, hogy a készlet túl kevés tétlen ügynökkel rendelkezik, és fel kell skáláznia. Az Azure Pipelines meghívja az Azure Scale Setset a méretezési csoport kapacitásának növelése érdekében.

  2. Az Azure Méretezési csoport megkezdi az új virtuális gépek létrehozását. A virtuális gépek futtatása után az Azure Scale Sets egymás után végrehajtja a telepített virtuálisgép-bővítményeket.

  3. Ha az egyéni szkriptbővítmény telepítve van, a rendszer az Azure Pipelines-ügynök bővítménye előtt hajtja végre. Ha az egyéni szkriptbővítmény nem nulla kilépési kódot ad vissza, a virtuális gép létrehozási folyamata megszakad, és törlődik.

  4. A rendszer végrehajtja az Azure Pipelines Agent bővítményt. Ez a bővítmény letölti az Azure Pipelines Agent legújabb verzióját és a konfigurációs szkript legújabb verzióját. A konfigurációs szkriptek az alábbi formátumokkal rendelkező URL-címeken találhatók:

    • Linux: https://vstsagenttools.blob.core.windows.net/tools/ElasticPools/Linux/<script_version>/enableagent.shpéldául 15-ös verzió
    • Windows: https://vstsagenttools.blob.core.windows.net/tools/ElasticPools/Windows/<script_version>/enableagent.ps1például 17-es verzió
  5. A konfigurációs szkript létrehoz egy helyi felhasználót, akit akkor neveznek el AzDevOps , ha az operációs rendszer Windows Server vagy Linux. Windows 10-es ügyfél operációs rendszer esetén az ügynök LocalSystemként fut. A szkript ezután kibontja, telepíti és konfigurálja az Azure Pipelines-ügynököt. A konfiguráció részeként az ügynök regisztrál az Azure DevOps-ügynökkészletben, és offline állapotban jelenik meg az ügynökkészlet listájában.

  6. A legtöbb forgatókönyv esetében a konfigurációs szkript ezután azonnal elindítja az ügynök helyi felhasználóként AzDevOpsvaló futtatását. Az ügynök online állapotba kerül, és készen áll a folyamatfeladatok futtatására.

    Ha a készlet interaktív felhasználói felületre van konfigurálva, a virtuális gép az ügynök konfigurálása után újraindul. Az újraindítás után a helyi felhasználó automatikusan bejelentkezik, és elindul a folyamatügynök. Az ügynök ezután online állapotba kerül, és készen áll a folyamatfeladatok futtatására.

Méretezési csoport létrehozása egyéni rendszerképpel, szoftverrel vagy lemezmérettel

Ha csak egy 128 GB-os operációsrendszer-lemezzel rendelkező méretezési csoportot szeretne létrehozni egy nyilvánosan elérhető Azure-rendszerkép használatával, ugorjon egyenesen a 10. lépésre, és használja a nyilvános rendszerkép nevét (UbuntuLTS, Win2019DataCenter stb.) a méretezési csoport létrehozásához. Ellenkező esetben kövesse az alábbi lépéseket a virtuálisgép-rendszerkép testreszabásához.

  1. Hozzon létre egy virtuális gépet a kívánt operációsrendszer-lemezképpel, és igény szerint bontsa ki az operációsrendszer-lemez méretét 128 GB-ról 128 GB-ra <myDiskSizeGb>.

    • Ha egy elérhető Azure Image-ről indul, például <myBaseImage> = (Win2019DataCenter, UbuntuLTS):

      az vm create --resource-group <myResourceGroup> --name <MyVM> --image <myBaseImage> --os-disk-size-gb <myDiskSize>  --admin-username myUserName --admin-password myPassword
      
    • Általános VHD-vel kezdődően:

      1. Először hozza létre a virtuális gépet a kívánt méretű nem felügyelt lemezzel, majd konvertálja felügyelt lemezzé:

        az vm create --resource-group <myResourceGroup> --name <MyVM> --image <myVhdUrl> --os-type windows --os-disk-size-gb <myDiskSizeGb> --use-unmanaged-disk --admin-username <myUserName> --admin-password <myPassword> --storage-account <myVhdStorageAccount>
        
      2. A virtuális gép leállítása

        az vm stop --resource-group <myResourceGroup> --name <MyVM>
        
      3. A virtuális gép felszabadítása

        az vm deallocate --resource-group <myResourceGroup> --name <MyVM>
        
      4. Konvertálás felügyelt lemezzé

        az vm convert --resource-group <myResourceGroup> --name <MyVM>
        
      5. Indítsa újra a virtuális gépet

        az vm start --resource-group <myResourceGroup> --name <MyVM>
        
  2. Távoli asztal (vagy SSH) a virtuális gép nyilvános IP-címére a rendszerkép testreszabásához. Előfordulhat, hogy meg kell nyitnia a portokat a tűzfalon az RDP (3389) vagy az SSH (22) portok letiltásához.

    1. Windows – Ha <MyDiskSizeGb> nagyobb, mint 128 GB, hosszabbítsa meg az operációsrendszer-lemez méretét, hogy kitöltse a megadott lemezméretet <MyDiskSizeGb>.

      Nyissa meg a DiskPart eszközt rendszergazdaként, és futtassa az alábbi DiskPart-parancsokat:

      1. list volume (a kötetek megtekintéséhez)
      2. select volume 2 (attól függ, hogy melyik kötet az operációsrendszer-meghajtó)
      3. extend size 72000 (a meghajtó 72 GB-tal való meghosszabbításához, 128 GB-ról 200 GB-ra)
  3. Telepítse a kívánt további szoftvereket a virtuális gépre.

  4. A folyamatügynök-felhasználó engedélyeinek testreszabásához létrehozhat egy nevű AzDevOpsfelhasználót, és megadhatja a felhasználónak a szükséges engedélyeket. Ezt a felhasználót a méretezési ügynök indítási szkriptje hozza létre, ha még nem létezik.

  5. A virtuális gép újraindítása a testreszabások befejezésekor

  6. Általánosítsa a virtuális gépet.

    • Windows – Rendszergazdai konzolablakból:
      C:\Windows\System32\sysprep\sysprep.exe /generalize /oobe /shutdown
      
    • Linux:
      sudo waagent -deprovision+user -force
      

    Fontos

    Várja meg, amíg a virtuális gép befejezi az általánosítást és a leállítást. Ne folytassa, amíg a virtuális gép le nem áll. 60 perc.

  7. A virtuális gép felszabadítása

    az vm deallocate --resource-group <myResourceGroup> --name <MyVM>
    
  8. A virtuális gép megjelölése általánosítottként

    az vm generalize --resource-group <myResourceGroup> --name <MyVM>
    
  9. Hozzon létre egy virtuálisgép-rendszerképet az általánosított rendszerkép alapján. Amikor végrehajtja ezeket a lépéseket egy meglévő méretezési rendszerkép frissítéséhez, jegyezze fel a kimenet képazonosítójának URL-címét.

    az image create  --resource-group <myResourceGroup> --name <MyImage> --source <MyVM>
    
  10. A méretezési csoport létrehozása az egyéni virtuálisgép-rendszerkép alapján

    az vmss create --resource-group <myResourceGroup> --name <myScaleSet> --image <MyImage> --admin-username <myUsername> --admin-password <myPassword> --instance-count 2 --disable-overprovision --upgrade-policy-mode manual --load-balancer '""'
    
  11. Győződjön meg arról, hogy a méretezési csoportban létrehozott virtuális gépek online állapotba kerülnek, különböző neveik vannak, és elérik a Sikeres állapotot

Most már készen áll egy ügynökkészlet létrehozására ezzel a méretezési csoporttal.

Meglévő méretezési csoport frissítése új egyéni rendszerképpel

Ha frissíteni szeretné a lemezképet egy meglévő méretezési csoporton, kövesse az előző Méretezési csoport létrehozása egyéni lemezképekkel, szoftverekkel vagy lemezmérettel szakasz lépéseit az az image create egyéni operációsrendszer-rendszerkép létrehozásához. Jegyezze fel a parancsból az image create származó azonosítótulajdonság URL-címét. Ezután frissítse a méretezési halmazt az új képpel az alábbi példában látható módon. A méretezési rendszerkép frissítése után a méretezési csoport összes jövőbeli virtuális gépe létrejön az új képpel.

az vmss update --resource-group <myResourceGroup> --name <myScaleSet> --set virtualMachineProfile.storageProfile.imageReference.id=<id url>

Támogatott operációs rendszerek

A méretezési csoportok ügynökei jelenleg támogatják az Ubuntu Linux, a Windows Server/DataCenter 2016/2019 és a Windows 10-ügyfelet.

Ismert problémák

  • A Debian vagy RedHat Linux disztribúciók nem támogatottak. Csak Ubuntu van.
  • A Windows 10-ügyfél nem támogatja a folyamatügynök helyi felhasználóként való futtatását, ezért az ügynök nem tud kommunikálni a felhasználói felülettel. Az ügynök ehelyett helyi szolgáltatásként fog futni.

Hibaelhárítási problémák

Lépjen az Azure DevOps Project beállításaihoz, válassza ki az Ügynökkészleteket a Folyamatok területen, és válassza ki az ügynökkészletet. Válassza a Diagnosztika feliratú lapot.

A Diagnosztikai lap az Azure DevOps által az Azure Méretezési csoportban lévő virtuális gépek létrehozására, törlésére vagy újraimázására végrehajtott összes műveletet megjeleníti. A diagnosztika emellett naplózza a műveletek végrehajtása során észlelt hibákat is. Tekintse át a hibákat, és győződjön meg arról, hogy a méretezési csoport rendelkezik elegendő erőforrással a vertikális felskálázáshoz. Ha az Azure-előfizetés elérte a virtuális gépek, processzormagok, lemezek vagy IP-címek erőforráskorlátját, ezek a hibák itt jelennek meg.

Nem kifogástalan ügynökök

Ha az ügynökök vagy virtuális gépek nem indulnak el, nem csatlakoznak az Azure DevOpshoz, vagy váratlanul offline állapotba kerülnek, az Azure DevOps naplózza a hibákat az ügynökkészlet Diagnosztikai lapjára, és megpróbálja törölni a társított virtuális gépet. A hálózati konfiguráció, a rendszerkép testreszabása és a függőben lévő újraindítások okozhatják ezeket a problémákat. A naplók hibakereséséhez és gyűjtéséhez Csatlakozás a virtuális gépre való bejelentkezés segíthet a vizsgálatban.

Ha azt szeretné, hogy az Azure DevOps mentsen egy nem kifogástalan ügynök virtuális gépet vizsgálat céljából, és ne törölje automatikusan, amikor nem megfelelő állapotot észlel, keresse meg az Azure DevOps Project beállításait, válassza ki az Ügynökkészleteket a Folyamatok területen, és válassza ki az ügynökkészletet. Válassza a Gépház lehetőséget, válassza a Nem megfelelő ügynök mentése vizsgálathoz lehetőséget, és válassza a Mentés lehetőséget.

Save unhealthy agent setting.

Ha a méretezési csoportban nem megfelelő ügynököt észlel, az Azure DevOps menti az ügynököt és a társított virtuális gépet. A mentett ügynök látható lesz az Ügynökkészlet felhasználói felületÉnek Diagnosztika lapján. Lépjen az Azure DevOps Project beállításaihoz, válassza az Ügynökkészletek lehetőséget a Folyamatok területen, válassza ki az ügynökkészletet, válassza a Diagnosztika lehetőséget, és jegyezze fel az ügynök nevét.

Saved agents card.

Keresse meg a társított virtuális gépet az Azure-beli virtuálisgép-méretezési csoportban az Azure Portalon, a Példányok listában.

Azure portal Virtual Machine Scale Set instances.

Válassza ki a példányt, válassza a Csatlakozás, és végezze el a vizsgálatot.

Connect to virtual machine instance.

Ha törölni szeretné a mentett ügynököt, amikor végzett a vizsgálattal, keresse meg az Azure DevOps Project beállításait, válassza ki az Ügynökkészleteket a Folyamatok területen, és válassza ki az ügynökkészletet. Válassza a Diagnosztika feliratú lapot. Keresse meg az ügynököt a vizsgálati kártyára mentett ügynökök között, és válassza a Törlés lehetőséget. Ezzel eltávolítja az ügynököt a készletből, és törli a társított virtuális gépet.

Saved agents card delete button.

GYIK

Hol találhatók a Microsoft által üzemeltetett ügynökökhöz használt képek?

A licencelési szempontok korlátozzák a Microsoft által üzemeltetett rendszerképek terjesztését. Ezeket a képeket nem tudjuk megadni a méretezési csoport ügynökei számára. A rendszerképek létrehozásához használt szkriptek azonban nyílt forráskód. Szabadon használhatja ezeket a szkripteket, és létrehozhat saját egyéni rendszerképeket.

Hogyan konfigurálja a méretezési csoport ügynökeit felhasználói felületi tesztek futtatásához?

Hozzon létre egy méretezési csoportot Windows Server operációs rendszerrel, és az ügynökkészlet létrehozásakor válassza a "Virtuális gépek konfigurálása interaktív tesztek futtatásához" lehetőséget.

Hogyan törölhetem az ügynököket?

' Lépjen az Azure DevOps Project beállításaihoz, válassza ki az Ügynökkészleteket a Folyamatok területen, és válassza ki az ügynökkészletet. Válassza az Ügynökök lapfület. Az ügynök letiltásához kattintson az "Engedélyezve" gombra. A letiltott ügynök befejezi az éppen futó folyamatot, és nem vesz fel további munkát. Az aktuális folyamatfeladat befejezése után néhány percen belül az ügynök törlődik.

Konfigurálhatom úgy a méretezési csoport ügynökkészletét, hogy nulla ügynök legyen készenléti állapotban?

Igen, ha az ügynökök számát nullára állítja, például alacsony mennyiségű feladat költségének megőrzéséhez, az Azure Pipelines csak akkor indít el virtuális gépet, ha rendelkezik feladattal.

Mennyibe kerülnek a méretezésicsoport-ügynökök?

A méretezési csoportok ügynökeinek díjszabása hasonló a többi saját üzemeltetésű ügynökhöz. Megadja azt az infrastruktúrát, amelyen az ügynökszoftvert és a feladatokat futtatni szeretné, és a párhuzamos feladatok megvásárlásával egyidejűleg futtatható feladatok kívánt számát kell fizetnie.

A méretezési csoportok ügynökei esetében az ügynökszoftverek és -feladatok futtatásához szükséges infrastruktúra az Azure Virtual Machine Scale Sets, a díjszabást pedig a Virtuálisgép-méretezési csoportok díjszabása ismerteti.

A párhuzamos feladatok vásárlásáról a párhuzamos feladatok konfigurálásával és kifizetésével kapcsolatos szakaszban talál információt.

Mik a gyakori problémák és azok megoldásai?

A kívántnál több tétlen ügynököt figyelhet meg különböző időpontokban

Ha jobban meg szeretné érteni, hogy miért történik ez, lásd: Hogyan kezeli az Azure Pipelines a méretezési csoportot. A skálázási művelet során az Azure Pipelines célja, hogy elérje a készenléti állapotban lévő tétlen ügynökök kívánt számát. A készletek lassan horizontálisan fel és le vannak skálázva. A készlet egy nap alatt horizontálisan felskálázható, amikor a kérések reggel várólistára kerülnek, és horizontálisan leskálázható, ahogy este a terhelés csökken. Ez az elvárt működés, mert az Azure Pipelines fokozatosan áttér az Ön által meghatározott korlátozásokra.

A VMSS vertikális felskálázása nem a várt ötperces időközben történik

A skálázási feladat ötpercenként fut, de ha csak egy művelet van feldolgozva, megfigyelheti, hogy a vertikális felskálázás nem történik meg öt percen belül; ez jelenleg a kívánt működés.

Az Azure DevOps Linux rendszerű virtuálisgép-méretezési csoport gyakran nem indítja el a folyamatot

Amikor a méretezésicsoport-ügynökökkel kapcsolatos problémákat tapasztal, először az ügynökkészlet Diagnosztika lapját tekintse meg.

Emellett érdemes lehet menteni a nem kifogástalan állapotú virtuális gépet hibakeresési célokra. További információt a nem kifogástalan állapotú ügynökökkel kapcsolatos szakaszban talál.

A mentett ügynökök csak akkor vannak ott, ha törli őket. Ha az ügynök 10 percen belül nem érhető el online állapotban, a rendszer nem megfelelő állapotúként jelöli meg, és lehetőség szerint menti. A rendszer csak egy virtuális gépet tart mentett állapotban. Ha az ügynök váratlanul offline állapotba kerül (a virtuális gép újraindítása vagy a rendszerkép valamije miatt), a rendszer nem menti vizsgálatra.

A rendszer csak azokat a virtuális gépeket menti, amelyeknél az ügynökök nem indulnak el. Ha egy virtuális gép létrehozása során sikertelen állapotban van, a rendszer nem menti. Ebben az esetben a Diagnosztikák lapon a "Nem kifogástalan gép törlése" üzenet jelenik meg a "sikertelen indítás" helyett.

Ellenőrizze, hogy a virtuális gépek automatikusan le lesznek-e bontva az ügynökkészlet minden használata után, de láthatja, hogy a virtuális gépek nem a kívánt módon vannak újraképezve, és csak új feladatokat kell felvenniük az üzenetsorba

A virtuális gép minden egyes buildelés utáni megszüntetésének lehetősége csak a Windows Server- és a támogatott Linux-rendszerképek esetében működik. A Windows-ügyfél rendszerképei esetében nem támogatott.

A VMSS offline állapotban jeleníti meg az ügynököt, ha a virtuális gép újraindul

Az ügynökök offline állapotban való megjelenítése, ha a virtuális gép újraindul, a várt viselkedés. Az ügynökszolgáltatás csak rendszerezett környezetben fut. Ha azonban a gép valamilyen okból újraindul, nem kifogástalan állapotú virtuális gépnek minősül, és törlődik. További információt a nem kifogástalan állapotú ügynökökkel kapcsolatos szakaszban talál.

Ha az ügynökök vagy virtuális gépek nem indulnak el, nem tudnak csatlakozni az Azure DevOpshoz, vagy váratlanul offline állapotba kerülnek, az Azure DevOps naplózza a hibákat az ügynökkészlet Diagnosztika lapján, és megpróbálja törölni a társított virtuális gépet. A hálózati konfiguráció, a rendszerkép testreszabása és a függőben lévő újraindítások okozhatják ezeket a problémákat. A probléma elkerülése érdekében tiltsa le a szoftverfrissítést a rendszerképen. Csatlakozhat is a virtuális géphez, hogy hibakeresést végezzen és naplókat gyűjtsön a probléma megvizsgálása érdekében.

Több címkét is láthat, például _AzureDevOpsElasticPoolTimeStamp a VMSS-hez a költségkezelésben

A készlet létrehozásakor a rendszer hozzáad egy címkét a méretezési csoporthoz, hogy használatban lévőként jelölje meg a méretezési csoportot (hogy ne használjon két készlet egy méretezési csoportot), és egy másik címkét ad hozzá ahhoz az időbélyeghez, amely a konfigurációs feladat minden futtatásakor frissül (kétóránként).

Nem hozható létre új méretezési csoport ügynökkészlete, és hibaüzenet jelenik meg arról, hogy már létezik ilyen nevű készlet

Előfordulhat, hogy hibaüzenet jelenik meg, mert This virtual machine scale set is already in use by pool <pool name> a címke még a törlés után is létezik a méretezési csoportban. Amikor töröl egy ügynökkészletet, megkísérli törölni a címkét a méretezési csoportból, de ez a legjobb megoldás, és három újrapróbálkozás után feladja. Emellett legfeljebb kétórás rés lehet, amelyben egy ügynökkészlet által nem használt virtuálisgép-méretezési csoport nem rendelhető hozzá egy újhoz. Ennek megoldása, hogy megvárja az adott időt, vagy manuálisan törli a méretezési csoport címkéjét az Azure Portalon. Amikor az Azure Portalon tekinti meg a méretezési csoportot, válassza a bal oldalon lévő Címkék hivatkozást, és törölje az _AzureDevOpsElasticPool címkét.

A VMSS karbantartási feladata nem fut ügynökökön vagy naplók lekérésén

A karbantartási feladat 24 óránként egyszer fut. Lehetséges, hogy a virtuális gépek ezelőtt megtelnek. Érdemes lehet növelni a virtuális gép lemezméretét vagy hozzáadni egy szkriptet a folyamathoz a tartalmak törlése érdekében.

Ha elsődleges rendszergazdaként adja meg AzDevOps a VMSS-szkriptben, megfigyelheti a méretezési csoport példányainak ügynökkonfigurációival kapcsolatos problémákat

Ha elsődleges rendszergazdaként adja meg AzDevOps a virtuálisgép-méretezési csoport szkriptjében, megfigyelheti a méretezési csoport példányainak ügynökkonfigurációival kapcsolatos problémákat (a felhasználó jelszava módosul, ha már létezik).

Ez a probléma azért fordul elő, mert az ügynökbővítmény-szkriptek megpróbálják létrehozni a felhasználót AzDevOps , és módosítani a jelszavát.

Feljegyzés

A felhasználó létrehozása és további engedélyek megadása rendben van, de nem lehet az elsődleges rendszergazda, és semmi sem függhet a jelszótól, mivel a jelszó megváltozik. A probléma elkerülése érdekében válasszon egy másik felhasználót elsődleges rendszergazdaként a méretezési csoport létrehozásakor ahelyett AzDevOps, hogy a .

Az ügynökbővítmény telepítése hálózati biztonsági és tűzfalkonfigurációk miatt meghiúsul a méretezési csoportok példányai esetén

A bővítménynek képesnek kell lennie letölteni a buildügynök fájljait a https://vstsagentpackage.azureedge.net/agent helyről, és a buildügynöknek képesnek kell lennie regisztrálni az Azure DevOps Services szolgáltatásban. Győződjön meg arról, hogy ez az URL-cím és az Azure DevOps Serviceshez kapcsolódó IP-címek és URL-címek meg vannak nyitva a példányon. Azon IP- és URL-címek esetén, amelyeket át kell engedni a tűzfalon, lásd: Engedélyezett IP-címek és tartományi URL-címek.

Miért hívja meg a méretezési csoport ügynök konfigurációs szkriptje az Add-MpPreference parancsot, és konfigurálja a Windows Defendert az ügynökön?

A teljesítmény és a megbízhatóság javítása érdekében a konfigurációs szkriptek meghívják az Add-MpPreference parancsmagot, ExclusionPathC:\D:\amely letiltja a Windows Defender ütemezett és valós idejű keresését az ügynök ezen mappáiban. Az alapértelmezett viselkedés módosításához állítson be egy környezeti változótELASTIC_POOLS_SKIP_DEFENDER_EXCLUSION.true

Növelni szeretném a medence méretét. Mit kell figyelembe venni?

A készlet méretének növelése előtt győződjön meg arról, hogy a virtuálisgép-méretezési csoportok készletéhez konfigurált Azure-beli virtuális hálózat elég nagy címtartománysal rendelkezik az összes új ügynök elhelyezéséhez. Ha nem, akkor a kapacitás növelésének sikertelenségéhez hasonló hibaüzenet jelenhet meg. Az Azure-devops-agent-pool-fabrikam-fibre alhálózat a 12.123.45.224/28 címelőtaggal nem rendelkezik elegendő kapacitással 5 IP-címhez.