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 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
Futtassa a szkriptet.
Megjegyzés
Ne felejtse el konfigurálni a forráskörnyezetet és a PS-példány előfizetési környezetét.
Tekintse át az újonnan létrehozott mappákat:
Á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).
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
- Replikálja:
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