Spostare manualmente un registro contenitori in un'altra area
Potrebbe essere necessario spostare un Registro Azure Container da un'area di Azure a un'altra. Ad esempio, è possibile eseguire una pipeline di sviluppo o ospitare una nuova destinazione di distribuzione in un'area diversa e si vuole fornire un registro nelle vicinanze.
Sebbene Azure Resource Mover non possa attualmente automatizzare uno spostamento per un Registro Azure Container, è possibile spostare manualmente un registro contenitori in un'area diversa:
- Esportare le impostazioni del Registro di sistema in un modello di Resource Manager
- Usare il modello per distribuire un Registro di sistema in un'area di Azure diversa
- Importare il contenuto del Registro di sistema dal Registro di sistema di origine al Registro di sistema di destinazione
Nota
Se occorre distribuire immagini del contenitore identiche tra più aree di Azure, Registro Azure Container supporta anche la replica geografica. Replica geografica di un Registro di sistema (livello di servizio Premium richiesto), è possibile gestire più aree con nomi di immagine e tag identici da un singolo Registro di sistema.
Prerequisiti
Interfaccia della riga di comando di Azure
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido per Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere con l'interfaccia della riga di comando di Azure.
Quando viene richiesto, installare l'estensione dell'interfaccia della riga di comando di Azure per la prima volta. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
Considerazioni
- Usare i passaggi descritti in questo articolo per spostare il Registro di sistema in un'area diversa nella stessa sottoscrizione. È possibile che sia necessaria più configurazione per spostare un Registro di sistema in una sottoscrizione di Azure diversa nello stesso tenant di Active Directory.
- L'esportazione e l'uso di un modello di Resource Manager consentono di ricreare molte impostazioni del Registro di sistema. È possibile modificare il modello per configurare altre impostazioni o aggiornare il Registro di sistema di destinazione dopo la creazione.
- Attualmente, Registro Azure Container non supporta lo spostamento del Registro di sistema in un tenant di Active Directory diverso. Questa limitazione si applica ai registri crittografati con una chiave gestita dal cliente e registri non crittografati.
- Se non è possibile spostare un Registro di sistema è descritto in questo articolo, creare un nuovo Registro di sistema, ricreare manualmente le impostazioni e Importare il contenuto del Registro di sistema nel Registro di sistema di destinazione.
- È possibile trovare i passaggi per spostare le risorse del Registro di sistema in un nuovo gruppo di risorse nella stessa sottoscrizione o spostare le risorse in una nuova sottoscrizione.
Esportare il modello dal Registro di sistema di origine
Usare portale di Azure, interfaccia della riga di comando di Azure, Azure PowerShell o altri strumenti di Azure per esportare un modello di Resource Manager. Per usare il Portale di Azure:
Nella portale di Azure passare al Registro di sistema di origine.
Nel menu, in Automazione selezionare Esporta modello>Download.
Ridistribuire il Registro di sistema di destinazione nella nuova area
Modificare il modello
Esaminare le proprietà del Registro di sistema nel file JSON del modello scaricato e apportare modifiche necessarie. Almeno:
- Modificare il nome
defaultValue
del Registro di sistema nel nome desiderato del Registro di sistema di destinazione - Aggiornare l'oggetto
location
all'area di Azure desiderata per il Registro di sistema di destinazione
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"registries_myregistry_name": {
"defaultValue": "myregistry",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.ContainerRegistry/registries",
"apiVersion": "2020-11-01-preview",
"name": "[parameters('myregistry_name')]",
"location": "centralus",
...
}
]
}
Per altre informazioni, vedere Usare il modello esportato dalla portale di Azure e dal riferimento al modello.
Importante
Se si vuole crittografare il Registro di sistema di destinazione usando una chiave gestita dal cliente, assicurarsi di aggiornare il modello con le impostazioni per l'identità gestita, l'insieme di credenziali delle chiavi e la chiave necessari. È possibile abilitare la chiave gestita dal cliente solo quando si distribuisce il Registro di sistema.
Per altre informazioni, vedere Crittografare il Registro di sistema usando la chiave gestita dal cliente.
Creare un gruppo di risorse
Creare un gruppo di risorse per il Registro di sistema di destinazione usando az group create. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località stati uniti orientali.
az group create --name myResourceGroup --location eastus
Distribuire il Registro di sistema di destinazione in una nuova area
Usare il comando az deployment group create per distribuire il Registro di sistema di destinazione usando il modello:
az deployment group create --resource-group myResourceGroup \
--template-file template.json --name mydeployment
Nota
Se durante la distribuzione vengono visualizzati errori, potrebbe essere necessario aggiornare determinate configurazioni nel file del modello e riprovare il comando.
Importare contenuto del Registro di sistema nel Registro di sistema di destinazione
Dopo aver creato il Registro di sistema nell'area di destinazione, usare il comando az acr import o il comando Import-AzContainerImage
di PowerShell equivalente per importare immagini e altri artefatti da mantenere dal Registro di sistema di origine al Registro di sistema di destinazione. Per esempi di comandi, vedere Importare immagini del contenitore in un registro contenitori.
- Usare i comandi dell'interfaccia della riga di comando di Azure az acr repository e az acr repository show-tags o Azure PowerShell equivalenti, per enumerare il contenuto del Registro di sistema di origine.
- Eseguire il comando di importazione per singoli artefatti o creare uno script per eseguire un elenco di artefatti.
Lo script dell'interfaccia della riga di comando di Azure di esempio enumera i repository e i tag di origine e quindi importa gli artefatti in un Registro di sistema di destinazione nella stessa sottoscrizione di Azure. Modificare in base alle esigenze per importare repository o tag specifici. Per importare da un Registro di sistema in una sottoscrizione o un tenant diverso, vedere esempi in Importare immagini contenitore in un registro contenitori.
#!/bin/bash
# Modify registry names for your environment
SOURCE_REG=myregistry
TARGET_REG=targetregistry
# Get list of source repositories
REPO_LIST=$(az acr repository list \
--name $SOURCE_REG --output tsv)
# Enumerate tags and import to target registry
for repo in $REPO_LIST; do
TAGS_LIST=$(az acr repository show-tags --name $SOURCE_REG --repository $repo --output tsv);
for tag in $TAGS_LIST; do
echo "Importing $repo:$tag";
az acr import --name $TARGET_REG --source $SOURCE_REG.azurecr.io/$repo":"$tag;
done
done
Verificare il Registro di sistema di destinazione
Confermare le informazioni seguenti nel Registro di sistema di destinazione:
- Impostazioni del Registro di sistema, ad esempio il nome del Registro di sistema, il livello di servizio, l'accesso pubblico e le repliche
- Repository e tag per il contenuto che si vuole conservare.
Configurazione aggiuntiva
Se necessario, configurare manualmente le impostazioni nel Registro di sistema di destinazione, ad esempio endpoint privati, regole di accesso IP e identità gestite.
Aggiornare i sistemi di sviluppo e distribuzione per usare il Registro di sistema di destinazione anziché il Registro di sistema di origine.
Aggiornare le regole del firewall client per consentire l'accesso al Registro di sistema di destinazione.
Eliminare il Registro di sistema originale
Dopo aver distribuito correttamente il Registro di sistema di destinazione, il contenuto migrato e le impostazioni del Registro di sistema verificate, è possibile eliminare il Registro di sistema di origine.
Passaggi successivi
- Altre informazioni sull'importazione di immagini del contenitore in un Registro Azure Container da un registro pubblico o da un altro registro privato.
- Vedere il riferimento Resource Manager modello per Registro Azure Container.