Sdílet prostřednictvím


Replikace prostředků pomocí replikátoru předplatného služby Azure Stack Hub

Pomocí skriptu PowerShell replikátoru předplatného služby Azure Stack Hub můžete kopírovat prostředky mezi předplatnými služby Azure Stack Hub, instancemi služby Azure Stack Hub nebo mezi službou Azure Stack Hub a Azure. Skript replikátoru přečte a znovu sestaví prostředky Azure Resource Manageru z různých předplatných Azure a Azure Stack Hubu. Tento článek popisuje, jak skript funguje, jak můžete skript použít, a poskytuje referenční informace pro operace se skripty.

Skripty použité v tomto článku najdete v úložišti GitHubu Azure Intelligence Edge Patterns. Skripty jsou ve složce replikátoru předplatného.

Přehled replikátoru předplatného

Replikátor předplatného Azure byl navržen tak, aby byl modulární. Tento nástroj používá základní procesor, který orchestruje replikaci prostředků. Nástroj navíc podporuje přizpůsobitelné procesory, které fungují jako šablony pro kopírování různých typů prostředků.

Základní procesor se skládá z následujících tří skriptů:

  • resource_retriever.ps1

    • Generuje složky pro ukládání výstupních souborů.

    • Nastaví kontext zdrojového předplatného.

    • Načte prostředky a předá je do resource_processor.ps1.

  • resource_processor.ps1

    • Zpracovává prostředek, který je předán pomocí resource_retriever.ps1.

    • Určuje, jaký přizpůsobený procesor má být použit, a předává zdroje.

  • post_process.ps1

    • Post zpracuje výstup vygenerovaný přizpůsobeným procesorem a připraví ho tak, aby se nasadil v cílovém předplatném.

    • Vygeneruje kód nasazení pro nasazení prostředků v cílovém předplatném.

Tři skripty řídí tok informací standardním způsobem, který umožňuje větší flexibilitu. Přidání podpory pro další prostředky například nevyžaduje, abyste v základním procesoru změnili žádný kód.

Přizpůsobené procesory, které byly zmíněny výše, jsou soubory ps1, které určují, jak má být určitý typ prostředku zpracován. Název přizpůsobeného procesoru je vždy tvořen pomocí typových dat v rámci zdroje. Předpokládejme například, že $vm obsahuje objekt virtuálního počítače a že spuštění $vm.Type by vrátilo Microsoft.Compute/virtualMachines. To znamená, že procesor virtuálního počítače by měl být pojmenován virtualMachines_processor.ps1, přičemž název musí být přesně tak, jak se zobrazuje v metadatech prostředků, protože právě tak jádro procesoru určuje, který přizpůsobený procesor použít.

Přizpůsobený procesor určuje, jak se má prostředek replikovat, a to určením důležitých informací a diktováním způsobu, jakým se mají informace vytáhnout z metadat prostředků. Přizpůsobený procesor pak vezme všechna extrahovaná data a použije je k vygenerování souboru parametrů, který se použije společně s šablonou Azure Resource Manageru k nasazení prostředku v cílovém předplatném. Tento soubor parametrů je uložen v Parameter_Files po zpracování post_process.ps1.

Ve struktuře souboru replikátoru je složka s názvem Standardized_ARM_Templates. V závislosti na zdrojovém prostředí budou nasazení používat jednu z těchto standardizovaných šablon Azure Resource Manageru nebo se bude muset vygenerovat přizpůsobená šablona Azure Resource Manageru. V tomto případě musí přizpůsobený procesor volat generátor šablon Azure Resource Manageru. V předchozím příkladu by se název generátoru šablon Azure Resource Manageru pro virtuální počítače jmenoval virtualMachines_ARM_Template_Generator.ps1. Generátor šablon Azure Resource Manageru zodpovídá za vytvoření přizpůsobené šablony Azure Resource Manageru na základě informací v metadatech prostředku. Pokud má například prostředek virtuálního počítače metadata určující, že je členem skupiny dostupnosti, generátor šablon Azure Resource Manageru vytvoří šablonu Azure Resource Manageru s kódem určujícím ID skupiny dostupnosti, na které je virtuální počítač součástí. Tímto způsobem se při nasazení virtuální počítač automaticky přidá do skupiny dostupnosti, když je nasazen do nového předplatného. Tyto přizpůsobené šablony Azure Resource Manageru se ukládají do složky Custom_ARM_Templates umístěné ve složce Standardized_ARM_Templates. post_processor.ps1 zodpovídá za určení, jestli má nasazení používat standardizovanou šablonu Azure Resource Manageru nebo přizpůsobenou šablonu a generovat odpovídající kód nasazení.

Skript post-process.ps1 zodpovídá za vyčištění souborů parametrů a vytvoření skriptů, které bude uživatel používat k nasazení nových prostředků. Během fáze čištění nahradí skript všechny odkazy na ID zdrojového předplatného, ID tenanta a umístění odpovídajícími cílovými hodnotami. Potom vypíše soubor parametrů do složky Parameter_Files. Pak určí, jestli zpracovávaný prostředek používá přizpůsobenou šablonu Azure Resource Manageru nebo ne, a vygeneruje odpovídající kód nasazení, který využívá rutinu New-AzResourceGroupDeployment. Kód nasazení se pak přidá do souboru s názvem DeployResources.ps1 uloženým ve složce Deployment_Files. Nakonec skript určí skupinu prostředků, do které prostředek patří, a zkontroluje DeployResourceGroups.ps1 skript, aby zjistil, jestli kód nasazení pro nasazení této skupiny prostředků již existuje. Pokud tomu tak není, přidá do skriptu kód pro nasazení skupiny prostředků. Pokud skript již nasazuje skupinu prostředků, neprovede žádnou akci.

Dynamické načítání rozhraní API

Nástroj má integrované dynamické načítání rozhraní API, aby se k nasazení prostředků v cílovém předplatném použila nejnovější verze rozhraní API poskytovatele prostředků dostupná ve zdrojovém předplatném:

načítání pomocí rozhraní API

Načítání rozhraní API na obrázku v resource_processor.ps1.

Je však možné, že verze rozhraní API poskytovatele prostředků cílového předplatného je starší než verze zdrojového předplatného a nepodporuje verzi poskytovanou ze zdrojového předplatného. V takovém případě dojde při spuštění nasazení k vyvolání chyby. Pokud chcete tento problém vyřešit, aktualizujte poskytovatele prostředků v cílovém předplatném tak, aby odpovídaly poskytovatelům prostředků ve zdrojovém předplatném.

Paralelní nasazení

Nástroj vyžaduje parametr nazvaný paralelní k. Tento parametr přebírá logickou hodnotu určující, zda mají být načtené prostředky nasazeny paralelně nebo ne. Pokud je hodnota nastavená na true, každé volání New-AzResourceGroupDeployment bude mít příznak -asJob a mezi sady nasazení prostředků budou podle typů prostředků přidány bloky kódu, které čekají na dokončení paralelních úloh. Zajišťuje, že se všechny prostředky jednoho typu nasadí před nasazením dalšího typu prostředku. Pokud je hodnota parametru paralelní nastavená na false, všechny prostředky budou nasazeny v sérii.

Přidání dalších typů prostředků

Přidání nových typů prostředků je jednoduché. Vývojář musí vytvořit přizpůsobený procesor a buď šablonu Azure Resource Manageru, nebo generátor šablon Azure Resource Manageru. Po dokončení musí vývojář přidat typ prostředku do ValidateSet pro parametr $resourceType a pole $resourceTypes v resource_retriever.ps1. Typ prostředku musí být při přidávání do pole $resourceTypes přidán ve správném pořadí. Pořadí pole určuje pořadí nasazení prostředků, proto mějte na paměti závislosti. Pokud přizpůsobený procesor využívá generátor šablon Azure Resource Manageru, musí navíc přidat název typu prostředku do pole $customTypes v post_process.ps1.

Spuštění replikátoru předplatného Azure

Pokud chcete spustit nástroj replikátoru předplatného Azure (v3), budete muset spustit resource_retriever.ps1a zadat všechny parametry. U parametru resourceType je možnost zvolit Všechny místo jednoho typu prostředku. Pokud je vybrána Všechna, resource_retriever.ps1 zpracuje vše v pořadí tak, aby při spuštění nasazení byly nejprve nasazeny závislé prostředky. Například virtuální sítě se nasazují před virtuálními počítači, protože virtuální počítače vyžadují správné nasazení virtuální sítě.

Po dokončení provádění skriptu budou tři nové složky, Deployment_Files, Parameter_Filesa Custom_ARM_Templates.

Poznámka

Než spustíte některý z vygenerovaných skriptů, musíte nastavit správné prostředí a přihlásit se k cílovému předplatnému (v nové službě Azure Stack Hub pro ex) a nastavit pracovní adresář na Deployment_Files složku.

Deployment_Files budou obsahovat dva soubory DeployResourceGroups.ps1 a DeployResources.ps1. Vykonáním DeployResourceGroups.ps1 dojde k nasazení skupin prostředků. Provádění DeployResources.ps1 nasadí všechny zpracované prostředky. V případě, že se nástroj spustil s Všechny nebo Microsoft.Compute/virtualMachines jako typ prostředku, DeployResources.ps1 vyzve uživatele, aby zadal heslo správce virtuálního počítače, které se použije k vytvoření všech virtuálních počítačů.

Příklad

  1. Spusťte skript.

    Spusťte skript

    Poznámka

    Nezapomeňte nakonfigurovat zdrojové prostředí a kontext předplatného pro instanci PowerShell.

  2. Zkontrolujte nově vytvořené složky:

    Kontrola složek

  3. Nastavte kontext cílového předplatného, změňte složku na Deployment_Files, nasaďte skupiny prostředků (spusťte skript DeployResourceGroups.ps1) a pak spusťte nasazení prostředků (spusťte skript DeployResources.ps1).

    Nakonfigurujte a spuštěte nasazení

  4. Spuštěním Get-Job zkontrolujte stav. Get-Job | Receive-Job vrátí výsledky.

Odklidit

Ve složce replicatorV3 je soubor s názvem cleanup_generated_items.ps1 – odebere Deployment_Files, Parameter_Filesa Custom_ARM_Templates složky a veškerý jejich obsah.

Operace replikátoru předplatného

Replikátor předplatného Azure (v3) může v současné době replikovat následující typy prostředků:

  • Microsoft.Compute/sadyDostupnosti

  • Microsoft.Compute/virtualMachines

  • Microsoft.Network/loadBalancers

  • Microsoft.Network/networkSecurityGroups

  • Microsoft.Network/publicIPAddresses

  • Microsoft.Network/routeTables

  • Microsoft.Network/virtualNetworks

  • Microsoft.Network/virtualNetworkGateways

  • Microsoft.Storage/storageAccounts

Při spuštění nástroje s Všechny jako typ prostředku bude při replikaci a nasazení následováno toto pořadí: všechny prostředky mají zkopírovanou konfiguraci, tj. sku, nabídka atd.

  • Microsoft.Network/virtualNetworks

    • Repliky: – Všechny adresní prostory – Všechny podsítě
  • Microsoft.Network/virtualNetworkGateways

    • Repliky: – Konfigurace veřejné IP adresy – Konfigurace podsítě – Typ sítě VPN – Typ brány
  • Microsoft.Network/routeTables

  • Microsoft.Network/networkSecurityGroups

    • Replikuje: – Příchozí a odchozí pravidla zabezpečení
  • Microsoft.Network/publicIPAddresses

  • Microsoft.Network/loadBalancers

    • Replikace: – Privátní IP adresy – Konfigurace veřejné IP adresy – Konfigurace podsítě
  • Microsoft.Compute/availabilitySets

    • Repliky: – Počet domén selhání – Počet aktualizačních domén
  • Microsoft.Storage/storageAccounts

  • Microsoft.Compute/virtualMachines

    • Replikuje:
      – Datové disky (bez dat)
      – Velikost virtuálního počítače
      -Operační systém
      – Konfigurace účtu úložiště diagnostiky
      – Konfigurace veřejné IP adresy
      - Síťové rozhraní
      – Privátní IP adresa síťového rozhraní
      – Konfigurace skupiny zabezpečení sítě
      – Konfigurace skupiny dostupnosti

Poznámka

Vytváří jenom spravované disky pro disk s operačním systémem a datové disky. V současné době se nepodporuje používání účtů úložiště.

Omezení

Nástroj může replikovat prostředky z jednoho předplatného do jiného, pokud poskytovatelé prostředků cílového předplatného podporují všechny prostředky a možnosti, které se replikují ze zdrojového předplatného.

Aby se zajistila úspěšná replikace, ujistěte se, že verze poskytovatele prostředků cílového předplatného odpovídají verzím zdrojového předplatného.

Při replikaci z komerčního Azure do komerčního Azure nebo z jednoho předplatného ve službě Azure Stack Hub do jiného předplatného ve stejném azure Stack Hubu dojde k problémům při replikaci účtů úložiště. Důvodem je požadavek na pojmenování účtu úložiště, aby všechny názvy účtů úložiště byly jedinečné pro všechny komerční Azure nebo pro všechna předplatná v oblasti nebo instanci služby Azure Stack Hub. Replikace účtů úložiště mezi různými instancemi služby Azure Stack Hub bude úspěšná, protože zásobníky jsou samostatné oblasti nebo instance.

Další kroky

Rozdíly a úvahy o síťových službách Azure Stack Hub