Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile usare lo script powerShell del replicatore di sottoscrizioni hub di Azure Stack per copiare le risorse tra sottoscrizioni hub di Azure Stack, in hub di Azure Stack stamp o tra hub di Azure Stack e Azure. Lo script del replicatore legge e ricompila le risorse di Azure Resource Manager da diverse sottoscrizioni dell'hub di Azure e di Azure Stack. Questo articolo illustra il funzionamento dello script, come è possibile usare lo script e fornisce un riferimento per le operazioni script.
È possibile trovare gli script usati in questo articolo nel repository GitHub Modelli di Edge intelligente di Azure. Gli script si trovano nella cartella del replicatore della sottoscrizione .
Panoramica del replicatore degli abbonamenti
Il replicatore di sottoscrizione Azure è modulare. Questo strumento usa un processore core che orchestra la replica delle risorse. Inoltre, lo strumento supporta processori personalizzabili che fungono da modelli per la copia di diversi tipi di risorse.
Il processore principale è costituito dai tre script seguenti:
resource_retriever.ps1
Genera cartelle per archiviare i file di output.
Imposta il contesto per la sottoscrizione di origine.
Recupera le risorse e le passa a resource_processor.ps1.
resource_processor.ps1
Elabora la risorsa passata da resource_retriever.ps1.
Determina il processore personalizzato da usare e passa le risorse.
post_process.ps1
Elabora ulteriormente l'output generato dal processore personalizzato per prepararlo alla distribuzione nella sottoscrizione di destinazione.
Genera il codice di distribuzione per distribuire le risorse nella sottoscrizione di destinazione.
I tre script controllano il flusso delle informazioni in modo standard per garantire una maggiore flessibilità. L'aggiunta del supporto per risorse aggiuntive, ad esempio, non richiede la modifica di codice nel processore principale.
I processori personalizzati, menzionati in precedenza, sono ps1 file che determinano come deve essere elaborato un determinato tipo di risorsa. Il nome di un processore personalizzato usa sempre i dati di tipo in una risorsa. Si supponga, ad esempio, di $vm contenere un oggetto macchina virtuale, eseguendo $vm. Il tipo restituisce Microsoft.Compute/virtualMachines. Ciò significa che un processore per una macchina virtuale è denominato virtualMachines_processor.ps1. Il nome deve essere esattamente come appare nei metadati della risorsa perché il processore principale lo usa per determinare quale processore personalizzato usare.
Un processore personalizzato determina la modalità di replica di una risorsa determinando quali informazioni sono importanti e determinando il modo in cui tali informazioni devono essere estratte dai metadati delle risorse. Il processore personalizzato accetta quindi tutti i dati estratti e lo usa per generare un file di parametri che funziona con un modello di Azure Resource Manager per distribuire la risorsa nella sottoscrizione di destinazione. Lo script post_process.ps1 archivia questo file di parametri nella cartella Parameter_Files dopo l'elaborazione.
Esiste una cartella nella struttura di file Replicator denominata Standardized_ARM_Templates. A seconda dell'ambiente di origine, le distribuzioni usano uno di questi modelli di Resource Manager standardizzati oppure potrebbe essere necessario generare un modello di Resource Manager personalizzato. In questo caso, un processore personalizzato deve chiamare un generatore di modelli di Resource Manager. Nell'esempio avviato in precedenza, il nome di un generatore di modelli Resource Manager per le macchine virtuali è virtualMachines_ARM_Template_Generator.ps1. Il generatore di modelli Resource Manager è responsabile della creazione di un modello di Resource Manager personalizzato in base alle informazioni contenute nei metadati di una risorsa. Ad esempio, se la risorsa macchina virtuale ha metadati che specificano che è membro di un set di disponibilità, il generatore di modelli Resource Manager crea un modello di Resource Manager con codice che specifica l'ID del set di disponibilità di cui fa parte la macchina virtuale. In questo modo, quando la macchina virtuale viene distribuita nella nuova sottoscrizione, viene aggiunta automaticamente al set di disponibilità al momento della distribuzione. Questi modelli di Resource Manager personalizzati vengono archiviati nella cartella Custom_ARM_Templates che si trova all'interno della cartella Standardized_ARM_Templates. Lo script post_processor.ps1 è responsabile di determinare se una distribuzione deve usare un modello di Resource Manager standardizzato o personalizzato e generare il codice di distribuzione corrispondente.
Lo script post-process.ps1 è responsabile della pulizia dei file di parametri e della creazione degli script usati dall'utente per distribuire le nuove risorse. Durante la fase di pulizia, lo script sostituisce tutti i riferimenti all'ID sottoscrizione di origine, all'ID tenant e alla posizione con i valori di destinazione corrispondenti. Restituisce quindi il file dei parametri nella cartella Parameter_Files. Determina quindi se la risorsa elaborata usa o meno un modello di Resource Manager personalizzato e genera il codice di distribuzione corrispondente, che usa il cmdlet New-AzResourceGroupDeployment. Il codice di distribuzione viene quindi aggiunto al file denominato DeployResources.ps1 archiviato nella cartella Deployment_Files. Infine, lo script determina il gruppo di risorse a cui appartiene la risorsa e controlla lo script DeployResourceGroups.ps1 per verificare se il codice di distribuzione per distribuire il gruppo di risorse esiste già. In caso contrario, lo script aggiunge codice a tale script per distribuire il gruppo di risorse. In caso affermativo, lo script non esegue alcuna operazione.
Recupero di API dinamiche
Lo strumento include il recupero dinamico dell'API, quindi usa la versione più recente dell'API del provider di risorse disponibile nella sottoscrizione di origine per distribuire le risorse nella sottoscrizione di destinazione:
Tuttavia, la sottoscrizione di destinazione potrebbe avere una versione precedente dell'API del provider di risorse che non supporta la versione fornita dalla sottoscrizione di origine. In questo caso, si verifica un errore quando si esegue la distribuzione. Per risolvere questo errore, aggiornare i provider di risorse nella sottoscrizione di destinazione in modo che corrispondano a quelli nella sottoscrizione di origine.
Distribuzioni parallele
Lo strumento richiede un parametro denominato parallel. Questo parametro accetta un valore booleano che specifica se distribuire le risorse recuperate in parallelo. Se si imposta il valore su true, ogni chiamata a New-AzResourceGroupDeployment include il flag -asJob . Il processo aggiunge blocchi di codice che attendono il completamento dei processi paralleli tra set di distribuzioni di risorse in base ai tipi di risorse. Garantisce che tutte le risorse di un tipo vengano distribuite prima di distribuire il tipo di risorsa successivo. Se si imposta il valore del parametro parallelo su false, le risorse vengono distribuite in serie.
Aggiungere altri tipi di risorse
L'aggiunta di nuovi tipi di risorse è semplice. Creare un processore personalizzato e un modello di Resource Manager o un generatore di modelli Resource Manager. Dopo aver completato questi passaggi, aggiungere il tipo di risorsa a ValidateSet per il parametro $resourceType e la matrice di $resourceTypes in resource_retriever.ps1. Quando si aggiunge il tipo di risorsa alla matrice $resourceTypes , aggiungerlo nell'ordine corretto. L'ordine della matrice determina l'ordine di distribuzione delle risorse, quindi tenere presenti le dipendenze. Infine, se il processore personalizzato usa un generatore di modelli Resource Manager, aggiungere il nome del tipo di risorsa alla matrice $customTypes in post_process.ps1.
Eseguire il replicatore di sottoscrizioni di Azure
Per eseguire lo strumento Azure replicatore di sottoscrizioni (v3), avviare resource_retriever.ps1 e specificare tutti i parametri. Per il parametro resourceType è possibile scegliere All anziché un tipo di risorsa. Se si seleziona Tutto, resource_retriever.ps1 elabora tutte le risorse in un ordine in modo che quando viene eseguita la distribuzione, le risorse dipendenti vengono distribuite per prime. Ad esempio, le reti virtuali vengono distribuite prima delle macchine virtuali perché le macchine virtuali richiedono la corretta distribuzione di una rete virtuale.
Al termine dell'esecuzione dello script, sono disponibili tre nuove cartelle: Deployment_Files, Parameter_Files e Custom_ARM_Templates.
Nota
Prima di eseguire uno degli script generati, impostare l'ambiente corretto e accedere alla sottoscrizione di destinazione, ad esempio nel nuovo hub di Azure Stack. Impostare la directory di lavoro sulla cartella Deployment_Files .
Deployment_Files contiene due file: DeployResourceGroups.ps1 e DeployResources.ps1. Quando si esegue DeployResourceGroups.ps1, distribuisce i gruppi di risorse. Quando si esegue DeployResources.ps1, vengono distribuite tutte le risorse elaborate. Se si esegue lo strumento con Tutti o Microsoft. Calcolo/virtualMachines come tipo di risorsa ,DeployResources.ps1 richiede di immettere una password amministratore macchina virtuale usata per creare tutte le macchine virtuali.
Esempio
Esegui lo script.
Nota
Non dimenticare di configurare l'ambiente di origine e il contesto della sottoscrizione per l'istanza di PS.
Esaminare le cartelle appena create:
Impostare il contesto sulla sottoscrizione di destinazione, modificare la cartella in Deployment_Files, distribuire i gruppi di risorse (eseguire lo
DeployResourceGroups.ps1script) e quindi avviare la distribuzione delle risorse (eseguire loDeployResources.ps1script).Eseguire
Get-Jobper controllare lo stato. Get-Job | Receive-Job restituirà i risultati.
Pulizia
All'interno della replicatorV3 cartella, il file dicleanup_generated_items.ps1 rimuove le cartelle Deployment_Files, Parameter_Files e Custom_ARM_Templates e tutto il relativo contenuto.
Operazioni del replicatore di abbonamento
Il replicatore di sottoscrizioni di Azure (v3) può attualmente replicare i tipi di risorse seguenti:
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
Quando si esegue lo strumento con All come tipo di risorsa, segue l'ordine nell'elenco seguente durante la replica e la distribuzione. Nell'elenco seguente tutte le risorse hanno la relativa configurazione replicata, ad esempio SKU, offerta e altre impostazioni:
Microsoft.Network/virtualNetworks
- Repliche: - Tutti gli spazi degli indirizzi - Tutte le subnet
Microsoft.Network/virtualNetworkGateways
- Repliche: - Configurazione IP pubblico - Configurazione subnet - Tipo VPN - Tipo di gateway
Microsoft.Network/routeTables
Microsoft.Network/networkSecurityGroups
- Repliche: - Tutte le Regole di Sicurezza in Ingresso e in Uscita
Microsoft.Network/publicIPAddresses
Microsoft.Network/loadBalancers
- Repliche: - Indirizzi IP privati - Configurazione dell'indirizzo IP pubblico - Configurazione della subnet
Microsoft.Compute/availabilitySets
- Repliche: - Numero di domini di errore - Numero di domini di aggiornamento
Microsoft.Storage/storageAccounts
Microsoft.Compute/virtualMachines
- Replica:
- Dischi dati (senza dati)
- Dimensioni macchina virtuale
-Sistema operativo
- Configurazione dell'account di archiviazione diagnostico
- Configurazione IP pubblico
- Interfaccia di rete
- Indirizzo IP privato dell'interfaccia di rete
- Configurazione del gruppo di sicurezza di rete
- Configurazione del set di disponibilità
- Replica:
Nota
Questo processo crea solo dischi gestiti per il disco del sistema operativo e i dischi dati. Attualmente non supporta l'uso degli account di archiviazione.
Limitazioni
Lo strumento può replicare le risorse da una sottoscrizione a un'altra, purché la sottoscrizione di destinazione supporti tutti i tipi di risorse e le opzioni da replicare dalla sottoscrizione di origine. Per garantire la corretta replica, assicurarsi che le versioni del provider di risorse della sottoscrizione di destinazione corrispondano a quelle della sottoscrizione di origine.
Per garantire la corretta replica, assicurarsi che le versioni del provider di risorse della sottoscrizione di destinazione corrispondano a quelle della sottoscrizione di origine.
Quando si replicano risorse da Azure commerciali a Azure commerciali o da una sottoscrizione all'interno di hub di Azure Stack a un'altra sottoscrizione all'interno della stessa hub di Azure Stack, si verificano problemi durante la replica degli account di archiviazione. Questo problema si verifica perché i nomi degli account di archiviazione devono essere univoci in tutti i Azure commerciali o in tutte le sottoscrizioni in un'area o un'istanza di hub di Azure Stack. È possibile replicare correttamente gli account di archiviazione in istanze di hub di Azure Stack diverse perché gli stack sono aree o istanze separate.
Passaggi successivi
Differenze e considerazioni per il networking di hub di Azure Stack