Erőforrások replikálása az Azure Stack hub előfizetés-replikátor használatávalReplicate resources using the Azure Stack Hub subscription replicator

Az Azure Stack hub előfizetés-replikációs PowerShell-szkripttel Azure Stack hub-előfizetések, Azure Stack hub-bélyegek, illetve Azure Stack hub és az Azure közötti erőforrások másolására használható.You can use the Azure Stack Hub subscription replicator PowerShell script to copy the resources between Azure Stack Hub subscriptions, across Azure Stack Hub stamps, or between Azure Stack Hub and Azure. A replikátor parancsfájl beolvassa és újraépíti a Azure Resource Manager erőforrásokat a különböző Azure-és Azure Stack hub-előfizetésekben.The replicator script reads and rebuilds the Azure Resource Manager resources from different Azure and Azure Stack Hub subscriptions. Ebből a cikkből megtudhatja, hogyan működik a parancsfájl, hogyan használhatja a parancsfájlt, és hogyan nyújt hivatkozást a parancsfájl-műveletekhez.This article looks at how the script works, how you can use the script, and provides a reference for script operations.

Az ebben a cikkben használt parancsfájlokat az Azure intelligens Edge Pattern GitHub-tárházában találja.You can find the scripts used in this article in the Azure Intelligent Edge Patterns GitHub repository. A parancsfájlok az előfizetés- replikációs mappában találhatók.The scripts are in the subscription replicator folder.

Az előfizetés-replikátor áttekintéseSubscription replicator overview

Az Azure-előfizetési replikátor modulárisnak lett tervezve.The Azure subscription replicator was designed to be modular. Ez az eszköz egy olyan alapszintű processzort használ, amely összehangolja az erőforrás-replikációt.This tool uses a core processor that orchestrates the resource replication. Emellett az eszköz támogatja a különböző típusú erőforrások másolásához sablonként szolgáló testreszabható processzorokat is.In addition, the tool supports customizable processors that act as templates for copying different types of resources.

Az alapvető processzor a következő három parancsfájlból áll:The core processor is made up of the following three scripts:

  • resource_retriever.ps1resource_retriever.ps1

    • Mappákat hoz létre a kimeneti fájlok tárolásához.Generates folders to store output files.

    • Környezet beállítása a forrás-előfizetésre.Sets context to the source subscription.

    • Lekéri az erőforrásokat, és átadja azokat a resource_processor.ps1.Retrieves the resources and passes them along to resource_processor.ps1.

  • resource_processor.ps1resource_processor.ps1

    • Feldolgozza resource_retriever.ps1 által átadott erőforrást.Processes the resource passed in by resource_retriever.ps1.

    • Meghatározza, hogy melyik testreszabott processzort kell használni, és átadja az erőforrásokat.Determines which customized processor to use and passes the resources.

  • post_process.ps1post_process.ps1

    • A post feldolgozza a testreszabott processzor által létrehozott kimenetet, hogy előkészítse a cél előfizetésben való üzembe helyezést.Post processes the output generated by the customized processor to prepare it to be deployed in the target subscription.

    • Üzembe helyezési kódot hoz létre a cél előfizetésben lévő erőforrások telepítéséhez.Generates deployment code to deploy the resources in the target subscription.

A három szkript egy szabványos módon vezérli az adatok áramlását, így nagyobb rugalmasságot biztosít.The three scripts control the flow of information in a standard way to allow for greater flexibility. További erőforrások támogatásának hozzáadásával például nem kell megváltoztatnia az alapprocesszorban található kódokat.Adding support for additional resources, for example, doesn't require you to change any code in the core processor.

A fent említett testreszabott processzorok olyan fájlok, amelyek ps1 egy bizonyos típusú erőforrás feldolgozását írják le.Customized processors, that were mentioned above, are ps1 files that dictate how a certain type of resource should be processed. A testreszabott processzorok neve mindig az erőforrás típusú adattípussal van elnevezve.The name of a customized processor is always named using the type data in a resource. Tegyük fel például, hogy $vm a virtuális gép objektuma fut $vm . A típus hozama Microsoft.Compute/virtualMachines .For example, assuming $vm holds a virtual machine object, running $vm.Type would yield Microsoft.Compute/virtualMachines. Ez azt jelenti, hogy egy virtuális gép processzora megnevezett virtualMachines_processor.ps1 , a névnek pontosan úgy kell lennie, ahogy az erőforrás-metaadatokban jelenik meg, ahogyan az a fő processzor határozza meg, hogy melyik testreszabott processzort használja.That means, a processor for a virtual machine would be named virtualMachines_processor.ps1, the name must be exactly as it appears in the resource metadata as that is how the core processor determines which customized processor to use.

Egy testreszabott processzor azt diktálja, hogy az erőforrást hogyan kell replikálni annak meghatározásával, hogy milyen információk fontosak, és hogy az információk hogyan legyenek kihúzva az erőforrás-metaadatokból.A customized processor dictates how a resource should be replicated by determining what information is important and dictating how that information should be pulled out of the resource metadata. A testreszabott processzor Ezután elvégzi az összes kibontott adatmennyiséget, és felhasználja egy Azure Resource Manager sablonnal együtt használt Parameters-fájl létrehozásához, hogy az erőforrást a cél előfizetésben telepítse.The customized processor then takes all of the extracted data and uses it to generate a parameters file that will be used in conjunction with an Azure Resource Manager template to deploy the resource in the target subscription. Ezt a paramétert a Parameter_Files a post_process.ps1 által feldolgozott post után tárolja.This parameters file is stored in the Parameter_Files after it is post processed by post_process.ps1.

A replikátor-fájl struktúrájában a Standardized_ARM_Templates nevű mappa található.There is a folder in the Replicator file structure named Standardized_ARM_Templates. A forrás-környezettől függően az üzemelő példányok ezen szabványosított Azure Resource Manager-sablonok valamelyikét fogják használni, vagy egy testreszabott Azure Resource Manager sablont kell létrehozni.Depending on the source environment, the deployments will use one of these standardized Azure Resource Manager templates, or a customized Azure Resource Manager template will have to be generated. Ebben az esetben a testreszabott processzornak meg kell hívnia egy Azure Resource Manager sablon-generátort.In this case, a customized processor must call an Azure Resource Manager template generator. A korábban elindított példában a virtuális gépekhez tartozó Azure Resource Manager sablon-generátor neve virtualMachines_ARM_Template_Generator.ps1 nevet kapta.In the example started earlier, the name of an Azure Resource Manager template generator for virtual machines would be named virtualMachines_ARM_Template_Generator.ps1. A Azure Resource Manager sablon-generátor felelős egy testreszabott Azure Resource Manager sablon létrehozásához, amely alapján az adott erőforrás metaadataiban található információk alapján kell létrehoznia.The Azure Resource Manager template generator is responsible for creating a customized Azure Resource Manager template based on what information is in the metadata of a resource. Ha például a virtuális gép erőforrásához metaadatok vannak megadva, hogy az egy rendelkezésre állási csoport tagja, akkor a Azure Resource Manager template Generator létrehoz egy kódot tartalmazó Azure Resource Manager sablont, amely megadja annak a rendelkezésre állási csoportnak az AZONOSÍTÓját, amely a virtuális gép részét képezi.For example, if the virtual machine resource has metadata specifying that it is a member of an availability set, the Azure Resource Manager template generator will create an Azure Resource Manager template with code specifying the ID of the availability set that the virtual machine is a part of. Így amikor a virtuális gépet üzembe helyezi az új előfizetésre, automatikusan bekerül a rendelkezésre állási csoportba az üzembe helyezés után.That way when the virtual machine is deployed to the new subscription it automatically gets added to the availability set upon deployment. Ezeket a testreszabott Azure Resource Manager sablonokat a Standardized_ARM_Templates mappában található Custom_ARM_Templates mappában tárolja a rendszer.These customized Azure Resource Manager templates are stored in the Custom_ARM_Templates folder located inside the Standardized_ARM_Templates folder. A post_processor.ps1 feladata annak megállapítása, hogy egy központi telepítés egy szabványosított Azure Resource Manager sablont vagy egy testreszabott, valamint a hozzá tartozó központi telepítési kódot kívánja-e használni.The post_processor.ps1 is responsible for determining whether a deployment is supposed to use a standardized Azure Resource Manager template or a customized one and generating the corresponding deployment code.

A parancsfájl post-process.ps1 felelős a paraméterek fájljainak tisztításához és a felhasználó által az új erőforrások üzembe helyezéséhez használt parancsfájlok létrehozásához.The script post-process.ps1 is responsible for cleaning up the parameters files and creating the scripts that the user will use to deploy the new resources. A tisztítási fázisban a parancsfájl a forrás-előfizetési AZONOSÍTÓra, a bérlői AZONOSÍTÓra és a helyre mutató összes hivatkozást lecseréli a megfelelő célértékek alapján.During the cleaning phase, the script replaces all references to the source subscription ID, tenant ID, and location with the corresponding target values. Ezután kiírja a paramétereket tartalmazó fájlt a Parameter_Files mappába.It then outputs the parameters file to the Parameter_Files folder. Ezután meghatározza, hogy a feldolgozás alatt álló erőforrás testreszabott Azure Resource Manager sablont használ-e, vagy sem, és létrehozza a megfelelő központi telepítési kódot, amely a New-AzResourceGroupDeployment parancsmagot használja.It then determines whether the resource being processed uses a customized Azure Resource Manager template or not and generates the corresponding deployment code, which utilizes the New-AzResourceGroupDeployment cmdlet. A rendszer Ezután hozzáadja a telepítési kódot a Deployment_Files mappában tárolt DeployResources.ps1 nevű fájlhoz.The deployment code is then added to file named DeployResources.ps1 stored in the Deployment_Files folder. Végül a parancsfájl meghatározza azt az erőforráscsoportot, amelyhez az erőforrás tartozik, és a DeployResourceGroups.ps1 parancsfájlban ellenőrzi, hogy az erőforráscsoport üzembe helyezési kódja már létezik-e.Lastly the script determines the resource group to which the resource belongs and checks the DeployResourceGroups.ps1 script to see if the deployment code to deploy that resource group already exists. Ha nem, akkor a parancsfájlhoz hozzá kell adnia egy kódot az erőforráscsoport üzembe helyezéséhez, ha ez nem történik meg.If it does not, then it will add code to that script to deploy the resource group, if it does then it does nothing.

Dinamikus API-lekérésDynamic API retrieval

Az eszköz beépített dinamikus API-beolvasási szolgáltatásának része, hogy a forrás-előfizetésben elérhető legújabb erőforrás-szolgáltató API-verzió a cél előfizetésben lévő erőforrások üzembe helyezéséhez használható:The tool has dynamic API retrieval built in so that the newest resource provider API version available in the source subscription is used to deploy the resources in the target subscription:

API-lekérések ábrája

A resource_processor.ps1 API-lekérésének ábrája.Figure API retrieval in resource_processor.ps1.

Azonban előfordulhat, hogy a cél-előfizetés erőforrás-szolgáltatójának API-verziója régebbi, mint a forrás-előfizetés, és nem támogatja a forrás-előfizetéshez megadott verziót.However, there is the chance that the target subscription’s resource provider API version is older than the source subscription’s and does not support the version being provided from the source subscription. Ebben az esetben a rendszer a központi telepítés futtatásakor hibát jelez.In this case, an error will be thrown when the deployment is run. Ennek megoldásához frissítse a cél előfizetésben lévő erőforrás-szolgáltatókat, hogy azok megfeleljenek a forrás-előfizetésben szereplőknek.To resolve this, update the resource providers in the target subscription to match those in the source subscription.

Párhuzamos üzembe helyezésekParallel deployments

Az eszközhöz a Parallel nevű paraméter szükséges.The tool requires a parameter named parallel. Ez a paraméter egy logikai értéket vesz fel, amely meghatározza, hogy a beolvasott erőforrásokat párhuzamosan kell-e telepíteni.This parameter takes a boolean value specifying whether or not the retrieved resources should be deployed in parallel or not. Ha az érték true (igaz), akkor a New-AzResourceGroupDeployment minden hívása a -asJob jelzővel és a kód azon blokkokkal fog bővülni, amelyek a párhuzamos feladatok befejezésére várnak, az erőforrástípusok alapján.If the value is set to true, then each call to New-AzResourceGroupDeployment will have the -asJob flag and blocks of code to wait for parallel jobs to finish will be added in between sets of resource deployments based on the resource types. Gondoskodik arról, hogy az egyik típus összes erőforrása telepítve legyen a következő típusú erőforrás üzembe helyezése előtt.It ensures that all resources of one type have all been deployed prior to deploying the next type of resource. Ha a Parallel paraméter értéke false (hamis), akkor a rendszer az erőforrásokat a soros módon telepíti.If the parallel parameter value is set to false, the resources will all be deployed in serial.

További erőforrástípusok hozzáadásaAdd additional resource types

Az új erőforrástípusok hozzáadása egyszerű.Adding new resource types is simple. A fejlesztőnek létre kell hoznia egy testreszabott processzort, valamint egy Azure Resource Manager sablont vagy egy Azure Resource Manager sablon-generátort.The developer must create a customized processor and either an Azure Resource Manager template or an Azure Resource Manager template generator. A befejezést követően a fejlesztőnek hozzá kell adnia az erőforrástípust a $resourceType paraméter és a $resourceTypes tömb ValidateSet az resource_retriever.ps1ban.After that is complete the developer must add the resource type to the ValidateSet for the $resourceType parameter and the $resourceTypes array in resource_retriever.ps1. Az erőforrástípus a $resourceTypes tömbhöz való hozzáadásakor a megfelelő sorrendben kell hozzáadni.When adding the resource type to the $resourceTypes array, it must be added in the correct order. A tömb sorrendje határozza meg, hogy az erőforrások milyen sorrendben lesznek telepítve, ezért ne feledje, hogy a függőségek megmaradnak.The order of the array determines the order that resources will be deployed, so keep dependencies in mind. Végül, ha a testreszabott processzor egy Azure Resource Manager template Generatort használ, az erőforrástípus nevét fel kell vennie a $customTypes tömbbe post_process.ps1.Lastly, if the customized processor utilizes an Azure Resource Manager template generator, they must add the resource type name to the $customTypes array in post_process.ps1.

Azure-előfizetési replikátor futtatásaRun Azure subscription replicator

Az Azure-előfizetési replikátor (v3) eszköz futtatásához el kell indítania resource_retriever.ps1t, és meg kell adnia az összes paramétert.To run the Azure subscription replicator (v3) tool you’ll need to kick off resource_retriever.ps1, supplying all of the parameters. A resourceType paraméterrel lehetőség van az összes adattípus kiválasztására.The resourceType parameter, there is an option to choose All rather than one resource type. Ha az összes ki van választva, resource_retriever.ps1 az összes erőforrást feldolgozza egy sorrendben, hogy a központi telepítés Mikor fusson, a rendszer először a függő erőforrásokat telepíti.If All is selected, resource_retriever.ps1 will process all the resources in an order so that when the deployment is run, dependent resources are deployed first. Ha például a virtuális gépek előtt üzembe helyezi a virtuális hálózatok-ket, a virtuális gépekhez VNet van szükség ahhoz, hogy megfelelően üzembe lehessen helyezni őket.For example, VNets are deployed prior to virtual machines as virtual machines require a VNet to be in place for them to be deployed properly.

Ha a parancsfájl végrehajtása befejeződött, három új mappa, Deployment_Files, Parameter_Files és Custom_ARM_Templates jelenik meg.When the script is finished executing, there will be three new folders, Deployment_Files, Parameter_Files, and Custom_ARM_Templates.

Megjegyzés

A generált parancsfájlok bármelyikének futtatása előtt be kell állítania a megfelelő környezetet, és be kell jelentkeznie a cél előfizetésbe (az új Azure Stack hub for ex esetében), és a munkakönyvtárat a Deployment_Files mappába kell beállítania.Before you run any of the generated scripts, you must set the right environment and login to the target subscription (in the new Azure Stack Hub for ex) and set the working directory to the Deployment_Files folder.

Deployment_Files két fájlt fog tárolni DeployResourceGroups.ps1 és DeployResources.ps1.Deployment_Files will hold two files DeployResourceGroups.ps1 and DeployResources.ps1. A DeployResourceGroups.ps1 végrehajtása az erőforráscsoportok központi telepítését végzi.Executing DeployResourceGroups.ps1 will deploy the resource groups. A DeployResources.ps1 végrehajtása a feldolgozott összes erőforrást telepíti.Executing DeployResources.ps1 will deploy all of the resources that were processed. Abban az esetben, ha az eszköz az összes vagy a Microsoft. számítási/virtualMachines erőforrás-típussal lett végrehajtva, DeployResources.ps1 megkéri a felhasználót, hogy adjon meg egy virtuálisgép-rendszergazdai jelszót, amelyet az összes virtuális gép létrehozásához használni fog.In the case that the tool was executed with All or Microsoft.Compute/virtualMachines as the resource type, DeployResources.ps1 will prompt the user to input a virtual machine admin password that will be used to create all of the virtual machines.

PéldaExample

  1. Futtassa a szkriptet.Run the script.

    A szkript futtatása

    Megjegyzés

    Ne felejtse el konfigurálni a forrás evironment és a PS-példány előfizetési környezetét.Don't forget to configure the source evironment and the subscription context for the PS instance.

  2. Tekintse át az újonnan létrehozott mappákat:Review the newly created folders:

    A mappák áttekintése

  3. Állítsa a kontextust a cél előfizetésre, módosítsa a mappát Deployment_Filesre, telepítse az erőforráscsoportot (futtassa a DeployResourceGroups.ps1 parancsfájlt), majd indítsa el az erőforrás-telepítést (futtassa a DeployResources.ps1 szkriptet).Set the context to the target subscription, change the folder to Deployment_Files, deploy the resource groups (run the DeployResourceGroups.ps1 script), and then start the resource deployment (run the DeployResources.ps1 script).

    A központi telepítés konfigurálása és elindítása

  4. Get-JobAz állapot ellenõrzéséhez futtassa a parancsot.Run Get-Job to check the status. Get-Job | A Receive-Job az eredményeket fogja visszaadni.Get-Job | Receive-Job will return the results.

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

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át és annak teljes tartalmát.Inside the replicatorV3 folder, there is a file named cleanup_generated_items.ps1 - it will remove the Deployment_Files, Parameter_Files, and Custom_ARM_Templates folders and all of their contents.

Előfizetés-replikációs műveletekSubscription replicator operations

Az Azure-előfizetési replikátor (v3) jelenleg a következő erőforrástípusok replikálását végzi el:The Azure subscription replicator (v3) can currently replicate the following resource types:

  • Microsoft. számítás/availabilitySetsMicrosoft.Compute/availabilitySets

  • Microsoft.Compute/virtualMachinesMicrosoft.Compute/virtualMachines

  • Microsoft. Network/loadBalancersMicrosoft.Network/loadBalancers

  • Microsoft. Network/networkSecurityGroupsMicrosoft.Network/networkSecurityGroups

  • Microsoft. Network/nyilvános IPMicrosoft.Network/publicIPAddresses

  • Microsoft. Network/routeTablesMicrosoft.Network/routeTables

  • Microsoft. Network/virtualNetworksMicrosoft.Network/virtualNetworks

  • Microsoft. Network/virtualNetworkGatewaysMicrosoft.Network/virtualNetworkGateways

  • Microsoft. Storage/storageAccountsMicrosoft.Storage/storageAccounts

Ha az eszközt az összes erőforrás-típussal futtatja, a replikálás és a telepítés során a rendszer a következő sorrendet követi (az alábbi sorrendben az összes erőforrás konfigurációját replikálták, például SKU, ajánlat stb.):When running the tool with All as the resource type, the following order will be followed when replicating and deploying (in the below, all resources have their configuration replicated, i.e. sku, offer, etc.):

  • Microsoft. Network/virtualNetworksMicrosoft.Network/virtualNetworks

    • Replikálások: – minden címterület – minden alhálózatReplicates: - All address spaces - All subnets
  • Microsoft. Network/virtualNetworkGatewaysMicrosoft.Network/virtualNetworkGateways

    • Replikálások: – nyilvános IP-konfiguráció – alhálózat konfigurációja – VPN-típus – átjáró típusaReplicates: - Public IP configuration - Subnet configuration - VPN type - Gateway type
  • Microsoft. Network/routeTablesMicrosoft.Network/routeTables

  • Microsoft. Network/networkSecurityGroupsMicrosoft.Network/networkSecurityGroups

    • Replikálások: – az összes bejövő és kimenő biztonsági szabályReplicates: - All security rules inbound and outbound
  • Microsoft. Network/nyilvános IPMicrosoft.Network/publicIPAddresses

  • Microsoft. Network/loadBalancersMicrosoft.Network/loadBalancers

    • Replikálások:-magánhálózati IP-címek – nyilvános IP-cím konfigurációja – alhálózat konfigurációjaReplicates: - Private IP addresses - Public IP address configuration - Subnet configuration
  • Microsoft. számítás/availabilitySetsMicrosoft.Compute/availabilitySets

    • Replikálások: – tartalék tartományok száma – frissítési tartományok számaReplicates: - Number of fault domains - Number of update domains
  • Microsoft. Storage/storageAccountsMicrosoft.Storage/storageAccounts

  • Microsoft.Compute/virtualMachinesMicrosoft.Compute/virtualMachines

    • ReplikáljaReplicates:
      – Adatlemezek (adatnélkül)- Data disks (without data)
      – Virtuális gép mérete- Virtual machine size
      -Operációs rendszer- Operating system
      -Diagnosztikai Storage-fiók konfigurálása- Diagnostic storage account configuration
      – Nyilvános IP-konfiguráció- Public IP configuration
      -Hálózati adapter- Network Interface
      -Hálózati adapter magánhálózati IP-címe- Network Interface private IP address
      -Hálózati biztonsági csoport konfigurálása- Network Security Group configuration
      – Rendelkezésre állási csoport konfigurációja- Availability set configuration

Megjegyzés

Csak felügyelt lemezeket hoz létre az operációsrendszer-lemez és az adatlemezek számára.Only creates managed disks for OS disk and data disks. Jelenleg nem támogatott a Storage-fiókok használataCurrently, there isn't support for using storage accounts

KorlátozásokLimitations

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 a forrás-előfizetésből replikált összes erőforrást és beállítást támogatják.The tool can replicate resources from one subscription to another as long as the target subscription’s resource providers support all of the resources and options that are being replicated from the source subscription.

A sikeres replikálás érdekében a (z) biztos, hogy a cél-előfizetés erőforrás-szolgáltatójának verziószáma megegyezik a forrás előfizetésével.To ensure successful replication, mare sure that the target subscription’s resource provider versions match those of the source subscription.

Ha Azure Stack a kereskedelmi Azure-ból a kereskedelmi Azure-ba vagy egy előfizetésből Azure Stack központon belül egy másik előfizetésbe replikál, akkor a Storage-fiókok replikálásakor problémákba ütközik.When replicating from commercial Azure to commercial Azure or from one subscription within Azure Stack Hub to another subscription within the same Azure Stack Hub, there will be issues when replicating storage accounts. Ennek oka, hogy a Storage-fiók elnevezési követelménye, hogy az összes Storage-fióknév egyedi legyen az összes kereskedelmi Azure-ban, vagy egy Azure Stack hub-régió/-példányon lévő összes előfizetés között.This is due to the storage account naming requirement that all storage account names be unique across all of commercial Azure or across all subscriptions on an Azure Stack Hub region/instance. A Storage-fiókok különböző Azure Stack hub-példányok között történő replikálása sikeres lesz, mivel a halmok különálló régiók/példányok.Replicating storage accounts across different Azure Stack Hub instances will succeed as the Stacks are separate regions/instances.

Következő lépésekNext steps

A Azure Stack hub hálózatkezelésével kapcsolatos különbségek és megfontolásokDifferences and considerations for Azure Stack Hub networking