Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können das PowerShell-Skript Azure Stack Hub Abonnementreplikation verwenden, um Ressourcen zwischen Azure Stack Hub Abonnements, Azure Stack Hub Stempeln oder zwischen Azure Stack Hub und Azure zu kopieren. Das Replikatskript liest und erstellt die Azure Resource Manager Ressourcen aus verschiedenen Azure und Azure Stack Hub Abonnements neu. In diesem Artikel wird erläutert, wie das Skript funktioniert, wie Sie das Skript verwenden können, und es wird eine Referenz für Skriptvorgänge bereitgestellt.
Sie finden die in diesem Artikel verwendeten Skripts im Azure Intelligent Edge Patterns GitHub Repository. Die Skripts befinden sich im Abonnementreplikationsordner .
Übersicht über die Abonnementreplikation
Der Azure Abonnementreplikationsdienst ist modular. Dieses Tool verwendet einen Kernprozessor, der die Ressourcenreplikation koordiniert. Darüber hinaus unterstützt das Tool anpassbare Prozessoren, die als Vorlagen zum Kopieren verschiedener Ressourcentypen fungieren.
Der Kernprozessor besteht aus den folgenden drei Skripts:
resource_retriever.ps1
Generiert Ordner zum Speichern von Ausgabedateien.
Legt den Kontext auf das Quellabonnement fest.
Ruft die Ressourcen ab und übergibt sie an resource_processor.ps1.
resource_processor.ps1
Verarbeitet die von resource_retriever.ps1übergebene Ressource.
Bestimmt, welcher angepasste Prozessor verwendet werden soll, und übergibt die Ressourcen.
post_process.ps1
Post verarbeitet die vom angepassten Prozessor generierte Ausgabe, um sie auf die Bereitstellung im Zielabonnement vorzubereiten.
Generiert Bereitstellungscode zum Bereitstellen der Ressourcen im Zielabonnement.
Die drei Skripts steuern den Informationsfluss standardmäßig, um eine größere Flexibilität zu ermöglichen. Das Hinzufügen von Unterstützung für zusätzliche Ressourcen erfordert z. B. keine Änderung von Code im Kernprozessor.
Angepasste Prozessoren, wie weiter oben erwähnt, sind ps1 Dateien, die bestimmen, wie eine bestimmte Art von Ressource verarbeitet werden soll. Der Name eines angepassten Prozessors verwendet immer die Typdaten in einer Ressource. Angenommen, sie $vm enthält ein Virtuelles Computerobjekt, das ausgeführt wird $vm. Typ ergibt Microsoft.Compute/virtualMachines. Dies bedeutet, dass ein Prozessor für einen virtuellen Computer benannt virtualMachines_processor.ps1wird. Der Name muss genau so sein, wie er in den Ressourcenmetadaten angezeigt wird, da der Kernprozessor ihn verwendet, um zu bestimmen, welcher benutzerdefinierte Prozessor verwendet werden soll.
Ein angepasster Prozessor bestimmt, wie eine Ressource repliziert werden soll, indem ermittelt wird, welche Informationen wichtig sind und wie diese Informationen aus den Ressourcenmetadaten abgerufen werden sollen. Der angepasste Prozessor verwendet dann alle extrahierten Daten und verwendet diese, um eine Parameterdatei zu generieren, die mit einer Azure Resource Manager Vorlage funktioniert, um die Ressource im Zielabonnement bereitzustellen. Das skriptpost_process.ps1 speichert diese Parameterdatei im Ordner Parameter_Files nach der Verarbeitung.
In der Replikationsdateistruktur mit dem Namen Standardized_ARM_Templates befindet sich ein Ordner. Je nach Quellumgebung verwenden die Bereitstellungen eine dieser standardisierten Resource Manager-Vorlage, oder Sie müssen möglicherweise eine angepasste Resource Manager Vorlage generieren. In diesem Fall muss ein angepasster Prozessor einen Resource Manager Vorlagenvorlagengenerator aufrufen. Im vorherigen Beispiel wurde der Name eines Resource Manager Vorlagengenerators für virtuelle Computer virtualMachines_ARM_Template_Generator.ps1. Der Resource Manager Vorlagengenerator ist dafür verantwortlich, eine angepasste Resource Manager Vorlage basierend auf den Informationen in den Metadaten einer Ressource zu erstellen. Wenn beispielsweise die Ressource des virtuellen Computers Metadaten enthält, die angeben, dass es sich um ein Mitglied eines Verfügbarkeitssatzes handelt, erstellt der Resource Manager Vorlagengenerator eine Resource Manager Vorlage mit Code, der die ID des Verfügbarkeitssatzes angibt, zu dem der virtuelle Computer gehört. Auf diese Weise wird der virtuelle Computer beim Bereitstellen des neuen Abonnements automatisch zur Verfügbarkeit hinzugefügt, die bei der Bereitstellung festgelegt wurde. Diese angepassten Resource Manager-Vorlagen werden im ordner Custom_ARM_Templates im ordner Standardized_ARM_Templates gespeichert. Das post_processor.ps1-Skript ist dafür verantwortlich, zu bestimmen, ob eine Bereitstellung eine standardisierte Resource Manager Vorlage oder eine angepasste Vorlage verwenden und den entsprechenden Bereitstellungscode generiert.
Das Skript post-process.ps1 ist dafür verantwortlich, die Parameterdateien zu bereinigen und die Skripts zu erstellen, die der Benutzer zum Bereitstellen der neuen Ressourcen verwendet. Während der Bereinigungsphase ersetzt das Skript alle Verweise auf die Quellabonnement-ID, die Mandanten-ID und den Speicherort durch die entsprechenden Zielwerte. Anschließend wird die Parameterdatei in den ordner Parameter_Files ausgegeben. Anschließend wird ermittelt, ob die verarbeitete Ressource eine angepasste Resource Manager Vorlage verwendet oder nicht und generiert den entsprechenden Bereitstellungscode, der das Cmdlet New-AzResourceGroupDeployment verwendet. Der Bereitstellungscode wird dann der Datei namens DeployResources.ps1 hinzugefügt, die im ordner Deployment_Files gespeichert ist. Schließlich bestimmt das Skript die Ressourcengruppe, zu der die Ressource gehört, und überprüft das DeployResourceGroups.ps1 Skript, um festzustellen, ob der Bereitstellungscode für die Bereitstellung dieser Ressourcengruppe bereits vorhanden ist. Wenn dies nicht der Fehler ist, fügt das Skript diesem Skript Code hinzu, um die Ressourcengruppe bereitzustellen. Wenn dies der Fall ist, führt das Skript nichts aus.
Dynamischer API-Abruf
Das Tool enthält einen dynamischen API-Abruf, sodass es die neueste API-Version des Ressourcenanbieters verwendet, die im Quellabonnement verfügbar ist, um die Ressourcen im Zielabonnement bereitzustellen:
Das Zielabonnement verfügt jedoch möglicherweise über eine ältere API-Version des Ressourcenanbieters, die die vom Quellabonnement bereitgestellte Version nicht unterstützt. In diesem Fall tritt ein Fehler auf, wenn Sie die Bereitstellung ausführen. Um diesen Fehler zu beheben, aktualisieren Sie die Ressourcenanbieter im Zielabonnement so, dass sie mit denen im Quellabonnement übereinstimmen.
Parallele Bereitstellungen
Für das Tool ist ein Parameter mit dem Namen parallel erforderlich. Dieser Parameter verwendet einen booleschen Wert, der angibt, ob die abgerufenen Ressourcen parallel bereitgestellt werden sollen. Wenn Sie den Wert auf "true" festlegen, enthält jeder Aufruf von New-AzResourceGroupDeployment das Flag "-asJob ". Der Prozess fügt Codeblöcke hinzu, die auf den Abschluss paralleler Aufträge zwischen Gruppen von Ressourcenbereitstellungen basierend auf den Ressourcentypen warten. Es stellt sicher, dass alle Ressourcen eines Typs bereitgestellt werden, bevor der nächste Ressourcentyp bereitgestellt wird. Wenn Sie den Wert des parallelen Parameters auf "false" festlegen, werden die Ressourcen serial bereitgestellt.
Hinzufügen zusätzlicher Ressourcentypen
Das Hinzufügen neuer Ressourcentypen ist einfach. Erstellen Sie einen benutzerdefinierten Prozessor und entweder eine Resource Manager Vorlage oder einen Resource Manager Vorlagengenerator. Nachdem Sie diese Schritte ausgeführt haben, fügen Sie den Ressourcentyp zum ValidateSet für den Parameter $resourceType und das $resourceTypes Array in resource_retriever.ps1hinzu. Wenn Sie den Ressourcentyp zum $resourceTypes Array hinzufügen, fügen Sie ihn in der richtigen Reihenfolge hinzu. Die Reihenfolge des Arrays bestimmt die Reihenfolge, in der Ressourcen bereitgestellt werden, sodass Abhängigkeiten beachtet werden. Wenn der angepasste Prozessor einen Resource Manager Vorlagengenerator verwendet, fügen Sie schließlich den Ressourcentypnamen zum $customTypes Array in post_process.ps1hinzu.
Ausführen Azure Abonnementreplikationsdiensts
Um das Tool Azure Abonnementreplikationsdienst (v3) auszuführen, starten Sie resource_retriever.ps1, und geben Sie alle Parameter an. Für den Parameter "resourceType " können Sie " Alle " anstelle eines Ressourcentyps auswählen. Wenn Sie "Alle" auswählen, verarbeitet resource_retriever.ps1 alle Ressourcen in einer Reihenfolge, sodass abhängige Ressourcen zuerst bereitgestellt werden, wenn die Bereitstellung ausgeführt wird. Beispielsweise werden VNets bereitgestellt, bevor virtuelle Computer als virtuelle Computer ein VNet bereitstellen müssen, damit sie ordnungsgemäß bereitgestellt werden.
Nach Abschluss der Ausführung des Skripts gibt es drei neue Ordner: Deployment_Files, Parameter_Files und Custom_ARM_Templates.
Note
Bevor Sie eines der generierten Skripts ausführen, legen Sie die richtige Umgebung fest, und melden Sie sich beim Zielabonnement an (z. B. im neuen Azure Stack Hub). Legen Sie das Arbeitsverzeichnis auf den ordner Deployment_Files fest.
Deployment_Files enthält zwei Dateien: DeployResourceGroups.ps1 und DeployResources.ps1. Wenn Sie DeployResourceGroups.ps1ausführen, werden die Ressourcengruppen bereitgestellt. Wenn Sie DeployResources.ps1ausführen, werden alle verarbeiteten Ressourcen bereitgestellt. Wenn Sie das Tool mit "Alle" oder "Microsoft" ausführen. Compute/virtualMachines als Ressourcentyp ,DeployResources.ps1 Sie auffordert, ein Administratorkennwort für virtuelle Computer einzugeben, das zum Erstellen aller virtuellen Computer verwendet wird.
Example
Führen Sie das Skript aus.
Note
Vergessen Sie nicht, die Quellumgebung und den Abonnementkontext für die PS-Instanz zu konfigurieren.
Überprüfen Sie die neu erstellten Ordner:
Legen Sie den Kontext auf das Zielabonnement fest, ändern Sie den Ordner in Deployment_Files, stellen Sie die Ressourcengruppen bereit (führen Sie das
DeployResourceGroups.ps1Skript aus), und starten Sie dann die Ressourcenbereitstellung (führen Sie dasDeployResources.ps1Skript aus).Führen Sie die Ausführung
Get-Jobaus, um den Status zu überprüfen. Get-Job | Receive-Job gibt die Ergebnisse zurück.
Aufräumen
Innerhalb des replicatorV3 Ordners entfernt die cleanup_generated_items.ps1 Datei die ordner Deployment_Files, Parameter_Files und Custom_ARM_Templates Ordner und alle deren Inhalte.
Replikationsvorgänge für Abonnements
Der Azure Abonnementreplikationsdienst (v3) kann derzeit die folgenden Ressourcentypen replizieren:
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
Wenn Sie das Tool mit "Alle " als Ressourcentyp ausführen, folgt es der Reihenfolge in der folgenden Liste beim Replizieren und Bereitstellen. In der folgenden Liste haben alle Ressourcen ihre Konfiguration repliziert, z. B. SKU, Angebot und andere Einstellungen:
Microsoft.Network/virtualNetworks
- Repliziert: - Alle Adressräume - Alle Subnetze
Microsoft.Network/virtualNetworkGateways
- Repliziert: - Öffentliche IP-Konfiguration - Subnetzkonfiguration - VPN-Typ - Gatewaytyp
Microsoft.Network/routeTables
Microsoft.Network/networkSecurityGroups
- Repliziert: - Alle Sicherheitsregeln eingehend und ausgehend
Microsoft.Network/publicIPAddresses
Microsoft.Network/loadBalancers
- Repliziert: - Private IP-Adressen – Konfiguration öffentlicher IP-Adressen – Subnetzkonfiguration
Microsoft.Compute/availabilitySets
- Repliziert: - Anzahl der Fehlerdomänen - Anzahl der Updatedomänen
Microsoft.Storage/storageAccounts
Microsoft. Compute/virtualMachines
- Repliziert:
- Datenträger (ohne Daten)
- Größe des virtuellen Computers
- Betriebssystem
– Konfiguration des Diagnosespeicherkontos
– Öffentliche IP-Konfiguration
- Netzwerkschnittstelle
- Private IP-Adresse der Netzwerkschnittstelle
– Konfiguration der Netzwerksicherheitsgruppe
– Verfügbarkeitssatzkonfiguration
- Repliziert:
Note
Dieser Vorgang erstellt nur verwaltete Datenträger für den Betriebssystemdatenträger und Datenträger. Derzeit wird die Verwendung von Speicherkonten nicht unterstützt.
Einschränkungen
Das Tool kann Ressourcen von einem Abonnement in ein anderes replizieren, solange das Zielabonnement alle Ressourcentypen und Optionen unterstützt, die Sie aus dem Quellabonnement replizieren. Um eine erfolgreiche Replikation sicherzustellen, stellen Sie sicher, dass die Ressourcenanbieterversionen des Zielabonnements mit denen des Quellabonnements übereinstimmen.
Um eine erfolgreiche Replikation sicherzustellen, stellen Sie sicher, dass die Ressourcenanbieterversionen des Zielabonnements mit denen des Quellabonnements übereinstimmen.
Wenn Sie Ressourcen aus kommerziellen Azure in kommerzielle Azure oder von einem Abonnement innerhalb Azure Stack Hub in ein anderes Abonnement innerhalb derselben Azure Stack Hub replizieren, treten Beim Replizieren von Speicherkonten Probleme auf. Dieses Problem tritt auf, da speicherkontonamen für alle kommerziellen Azure oder für alle Abonnements in einer Azure Stack Hub Region oder Instanz eindeutig sein müssen. Sie können Speicherkonten erfolgreich in verschiedenen Azure Stack Hub Instanzen replizieren, da die Stapel separate Regionen oder Instanzen sind.
Nächste Schritte
Unterschiede und Überlegungen für Azure Stack Hub Networking