Erőforrások replikálása az Azure Stack Hub-előfizetés replikátorával

Az Azure Stack Hub-előfizetés replicator PowerShell-szkriptjével másolhatja az erőforrásokat az Azure Stack Hub-előfizetések, az Azure Stack Hub-bélyegek, illetve az Azure Stack Hub és az Azure között. A replikátorszkript beolvassa és újraépíti az Azure Resource Manager különböző Azure- és Azure Stack Hub-előfizetésekből származó erőforrásokat. Ez a cikk azt vizsgálja, hogyan működik a szkript, hogyan használhatja a szkriptet, és referenciát nyújt a szkriptműveletekhez.

A cikkben használt szkripteket az Azure Intelligent Edge-minták GitHub-adattárában találja. A szkriptek az előfizetés replikátor mappájában találhatók.

Előfizetés-replikátor áttekintése

Az Azure-előfizetés replikátorát modulárisra tervezték. Ez az eszköz egy alapvető processzort használ, amely az erőforrás-replikációt vezényli. Emellett az eszköz támogatja a testre szabható processzorokat, amelyek sablonként szolgálnak a különböző típusú erőforrások másolásához.

Az alapprocesszor a következő három szkriptből áll:

  • resource_retriever.ps1

    • Mappákat hoz létre a kimeneti fájlok tárolásához.

    • A környezet beállítása a forrás-előfizetésre.

    • Lekéri az erőforrásokat, és továbbítja őket aresource_processor.ps1.

  • resource_processor.ps1

    • Feldolgozza a resource_retriever.ps1által átadott erőforrást.

    • Meghatározza, hogy melyik testre szabott processzort használja és adja át az erőforrásokat.

  • post_process.ps1

    • A Post feldolgozza a testre szabott processzor által létrehozott kimenetet, hogy előkészítse a cél-előfizetésben való üzembe helyezésre.

    • Üzembehelyezési kódot hoz létre az erőforrások cél-előfizetésben való üzembe helyezéséhez.

A három szkript szabványos módon szabályozza az információáramlást, hogy nagyobb rugalmasságot biztosíthasson. Ha például további erőforrásokat támogat, nem kell módosítania a kódot az alapprocesszorban.

A fent említett testreszabott processzorok olyan fájlok, amelyek ps1 meghatározzák egy adott típusú erőforrás feldolgozásának módját. A testre szabott processzor neve mindig az erőforrás típusadatainak használatával lesz elnevezve. Tegyük fel például, hogy $vm rendelkezik egy virtuálisgép-objektummal, amely a következőt futtatja $vm: . A típus eredménye Microsoft.Compute/virtualMachines. Ez azt jelenti, hogy egy virtuális gép processzorának neve virtualMachines_processor.ps1, a névnek pontosan úgy kell lennie, ahogy az erőforrás metaadataiban megjelenik, mivel az alapprocesszor így határozza meg, hogy melyik testre szabott processzort használja.

A testre szabott processzor azt diktálja, hogyan kell replikálni az erőforrásokat azáltal, hogy meghatározza, hogy milyen fontos információkról van szó, és diktálja, hogyan kell ezeket az információkat kiolvasni az erőforrás metaadataiból. A testre szabott processzor ezután az összes kinyert adatot felhasználja egy paraméterfájl létrehozásához, amelyet egy Azure Resource Manager-sablonnal együtt használ az erőforrás célelőfizetésben való üzembe helyezéséhez. Ezt a paraméterfájlt a rendszer a Parameter_Files tárolja, miután a post_process.ps1 feldolgozta.

A Replicator fájlstruktúrájában Standardized_ARM_Templates nevű mappa található. A forráskörnyezettől függően az üzemelő példányok ezen szabványosított Azure-Resource Manager-sablonok egyikét fogják használni, vagy létre kell hozni egy testreszabott Azure Resource Manager-sablont. Ebben az esetben egy testre szabott processzornak azure Resource Manager sablongenerátort kell meghívnia. A korábban elindított példában a virtuális gépekhez készült Azure Resource Manager sablongenerátor neve virtualMachines_ARM_Template_Generator.ps1lesz. Az Azure Resource Manager sablongenerátor felelős egy testre szabott Azure Resource Manager-sablon létrehozásáért az erőforrás metaadataiban található információk alapján. Ha például a virtuálisgép-erőforrás metaadatokkal rendelkezik, amelyek azt adják meg, hogy egy rendelkezésre állási csoport tagja, az Azure Resource Manager sablongenerátor létrehoz egy Azure Resource Manager-sablont, amely a virtuális gép részét képező rendelkezésre állási csoport azonosítóját adja meg kóddal. Így, amikor a virtuális gépet üzembe helyezik az új előfizetésben, az automatikusan hozzá lesz adva a rendelkezésre állási csoporthoz az üzembe helyezéskor. Ezek a testre szabott Azure Resource Manager-sablonok a Standardized_ARM_Templates mappában található Custom_ARM_Templates mappában találhatók. A post_processor.ps1 feladata annak meghatározása, hogy az üzembe helyezésnek szabványosított Azure Resource Manager-sablont vagy testre szabottat kell-e használnia, és létre kell hoznia a megfelelő üzembehelyezési kódot.

A szkriptpost-process.ps1 feladata a paraméterfájlok tisztítása és a felhasználó által az új erőforrások üzembe helyezéséhez használni kívánt szkriptek létrehozása. A tisztítási fázisban a szkript lecseréli a forrás-előfizetés azonosítójára, a bérlőazonosítóra és a helyre mutató összes hivatkozást a megfelelő célértékekre. Ezután a paraméterfájlt a Parameter_Files mappába adja ki. Ezután meghatározza, hogy a feldolgozott erőforrás testreszabott Azure-Resource Manager sablont használ-e vagy sem, és létrehozza a megfelelő üzembehelyezési kódot, amely a New-AzResourceGroupDeployment parancsmagot használja. Az üzembehelyezési kódot ezután hozzáadja a Deployment_Files mappában tárolt DeployResources.ps1 nevű fájlhoz. Végül a szkript meghatározza azt az erőforráscsoportot, amelyhez az erőforrás tartozik, és ellenőrzi a DeployResourceGroups.ps1 szkriptet, hogy az adott erőforráscsoport üzembe helyezéséhez szükséges üzembehelyezési kód már létezik-e. Ha nem, akkor kódot ad hozzá a szkripthez az erőforráscsoport üzembe helyezéséhez, ha igen, akkor semmit sem tesz.

Dinamikus API-lekérés

Az eszköz beépített dinamikus API-lekéréssel rendelkezik, így a forráselőfizetésben elérhető legújabb erőforrás-szolgáltatói API-verziót használják az erőforrások célelőfizetésben való üzembe helyezéséhez:

Ábra API lekérése

Ábra API-lekérése aresource_processor.ps1-ben .

Előfordulhat azonban, hogy a célelőfizetés erőforrás-szolgáltatói API-verziója régebbi, mint a forráselőfizetésé, és nem támogatja a forráselőfizetés által biztosított verziót. Ebben az esetben a rendszer hibát jelez az üzembe helyezés futtatásakor. A probléma megoldásához frissítse a cél-előfizetésben lévő erőforrás-szolgáltatókat úgy, hogy azok megfeleljenek a forrás-előfizetésben lévőknek.

Párhuzamos üzemelő példányok

Az eszközhöz egy párhuzamos nevű paraméter szükséges. Ez a paraméter logikai értéket vesz fel, amely meghatározza, hogy a lekért erőforrásokat párhuzamosan kell-e üzembe helyezni. Ha az érték true (igaz ) értékre van állítva, akkor a New-AzResourceGroupDeployment minden hívása az -asJob jelzőt fogja kapni, és a kódblokkok az erőforrástípusok alapján hozzáadják a párhuzamos feladatok befejezését. Biztosítja, hogy az egy típusú összes erőforrás üzembe lett helyezve a következő típusú erőforrás üzembe helyezése előtt. Ha a párhuzamos paraméter értéke hamis, az erőforrások mind sorosan lesznek üzembe helyezve.

További erőforrástípusok hozzáadása

Az új erőforrástípusok hozzáadása egyszerű. A fejlesztőnek egyéni processzort és Azure Resource Manager-sablont vagy Azure Resource Manager-sablongenerátort kell létrehoznia. Ezt követően a fejlesztőnek hozzá kell adnia az erőforrástípust a ValidateSet elemhez a $resourceType paraméterhez és a $resourceTypes tömbhöz resource_retriever.ps1. Amikor hozzáadja az erőforrástípust a $resourceTypes tömbhöz, azt a megfelelő sorrendben kell hozzáadni. A tömb sorrendje határozza meg az erőforrások üzembe helyezésének sorrendjét, ezért tartsa szem előtt a függőségeket. Végül, ha a testre szabott processzor Azure Resource Manager sablongenerátort használ, hozzá kell adnia az erőforrástípus nevét a post_process.ps1$customTypes tömbhöz.

Az Azure-előfizetés replikátorának futtatása

Az Azure-előfizetés-replikátor (v3) eszköz futtatásához ki kell kapcsolnia resource_retriever.ps1, és meg kell adnia az összes paramétert. A resourceType paraméterben lehetőség van a Mind gombra, és nem egy erőforrástípusra. Ha az Összes beállítás van kiválasztva, resource_retriever.ps1 az összes erőforrást egy sorrendben dolgozza fel, hogy az üzembe helyezés futtatásakor a függő erőforrások legyenek üzembe helyezve. A virtuális hálózatok például a virtuális gépek előtt vannak üzembe helyezve, mivel a virtuális gépeknek rendelkezniük kell egy virtuális hálózattal, hogy megfelelően legyenek üzembe helyezve.

Amikor a szkript végrehajtása befejeződött, három új mappa lesz, Deployment_Files, Parameter_Files és Custom_ARM_Templates.

Megjegyzés

A létrehozott szkriptek futtatása előtt be kell állítania a megfelelő környezetet, és be kell jelentkeznie a cél-előfizetésbe (például az új Azure Stack Hubban), és a munkakönyvtárat a Deployment_Files mappába kell állítania.

Deployment_Files két fájlt fog tárolni DeployResourceGroups.ps1 és DeployResources.ps1. A DeployResourceGroups.ps1 végrehajtása üzembe helyezi az erőforráscsoportokat. A DeployResources.ps1 végrehajtása az összes feldolgozott erőforrást üzembe helyezi. Abban az esetben, ha az eszközt a Mind vagy a Microsoft.Compute/virtualMachines erőforrástípussal hajtották végre, DeployResources.ps1 a felhasználótól egy olyan rendszergazdai jelszót kell megadnia, amely az összes virtuális gép létrehozásához használható.

Példa

  1. Futtassa a szkriptet.

    A szkript futtatása

    Megjegyzés

    Ne felejtse el konfigurálni a forráskörnyezetet és a PS-példány előfizetési környezetét.

  2. Tekintse át az újonnan létrehozott mappákat:

    A mappák áttekintése

  3. Állítsa a környezetet a cél-előfizetésre, módosítsa a mappát Deployment_Files értékre, telepítse az erőforráscsoportokat (futtassa a DeployResourceGroups.ps1 szkriptet), majd indítsa el az erőforrás üzembe helyezését (futtassa a DeployResources.ps1 szkriptet).

    Az üzembe helyezés konfigurálása és elindítása

  4. Futtassa a parancsot Get-Job az állapot ellenőrzéséhez. Get-Job | Receive-Job visszaadja az eredményeket.

A fölöslegessé vált elemek eltávolítása

A replicatorV3 mappában található egy cleanup_generated_items.ps1 nevű fájl, amely eltávolítja a Deployment_Files, a Parameter_Files és a Custom_ARM_Templates mappákat és azok tartalmát.

Előfizetés-replikátor műveletei

Az Azure-előfizetés replikátora (v3) jelenleg a következő erőforrástípusokat replikálhatja:

  • Microsoft.Compute/availabilitySets

  • Microsoft.Compute/virtualMachines

  • Microsoft.Network/loadBalancers

  • Microsoft.Network/networkSecurityGroups

  • Microsoft.Network/publicIPAddresses

  • Microsoft.Network/routeTables

  • Microsoft.Network/virtualNetworks

  • Microsoft.Network/virtualNetworkGateways

  • Microsoft.Storage/storageAccounts

Amikor az eszközt az Összes erőforrástípussal futtatja, a replikálás és az üzembe helyezés során a következő sorrendet követi a rendszer (az alábbiakban minden erőforrás konfigurációja replikálva van, például termékváltozat, ajánlat stb.):

  • Microsoft.Network/virtualNetworks

    • Replikálások: – Minden címtér – Minden alhálózat
  • Microsoft.Network/virtualNetworkGateways

    • Replikálások: – Nyilvános IP-konfiguráció – Alhálózat konfigurációja – VPN-típus – Átjáró típusa
  • Microsoft.Network/routeTables

  • Microsoft.Network/networkSecurityGroups

    • Replikálások: – Minden bejövő és kimenő biztonsági szabály
  • Microsoft.Network/publicIPAddresses

  • Microsoft.Network/loadBalancers

    • Replikálások: – Privát IP-címek – Nyilvános IP-cím konfigurációja – Alhálózat konfigurációja
  • Microsoft.Compute/availabilitySets

    • Replikálások: – Tartalék tartományok száma – Frissítési tartományok száma
  • Microsoft.Storage/storageAccounts

  • Microsoft.Compute/virtualMachines

    • Replikálja:
      - Adatlemezek (adatok nélkül)
      – Virtuális gép mérete
      - Operációs rendszer
      – Diagnosztikai tárfiók konfigurációja
      – Nyilvános IP-konfiguráció
      - Hálózati adapter
      - Hálózati adapter magánhálózati IP-címe
      – Hálózati biztonsági csoport konfigurációja
      – Rendelkezésre állási csoport konfigurációja

Megjegyzés

Csak az operációsrendszer-lemezekhez és adatlemezekhez hoz létre felügyelt lemezeket. Jelenleg nem támogatott a tárfiókok használata

Korlátozások

Az eszköz replikálhatja az erőforrásokat az egyik előfizetésből a másikba, ha a cél-előfizetés erőforrás-szolgáltatói támogatják a forrás-előfizetésből replikált összes erőforrást és beállítást.

A sikeres replikáció biztosításához győződjön meg arról, hogy a cél-előfizetés erőforrás-szolgáltatói verziói megegyeznek a forrás-előfizetés verzióival.

Amikor a kereskedelmi Azure-ból a kereskedelmi Azure-ba vagy az Azure Stack Hubon belüli egyik előfizetésből ugyanazon az Azure Stack Hubon belül egy másik előfizetésbe replikál, problémák merülnek fel a tárfiókok replikálásakor. Ez annak a tárfiók-elnevezési követelménynek köszönhető, hogy minden tárfióknév egyedi legyen az összes kereskedelmi Azure-ban, vagy egy Azure Stack Hub-régió/-példány összes előfizetésében. A tárfiókok különböző Azure Stack Hub-példányok közötti replikálása sikeres lesz, mivel a Stackek különálló régiók/példányok.

Következő lépések

Az Azure Stack Hub hálózatkezelésének különbségei és szempontjai