Esercitazione: Creare e usare un'immagine personalizzata per set di scalabilità di macchine virtuali con l'interfaccia della riga di comando di Azure

Quando si crea un set di scalabilità, si specifica un'immagine da usare quando vengono distribuite le istanze di macchina virtuale. Per ridurre il numero di attività dopo la distribuzione delle istanze di macchina virtuale, è possibile usare un'immagine di VM personalizzata. Questa immagine di VM personalizzata include le installazioni o le configurazioni delle applicazioni necessarie. Le istanze di macchina virtuale create nel set di scalabilità usano l'immagine di VM personalizzata e sono pronte per gestire il traffico delle applicazioni. In questa esercitazione si apprenderà come:

  • Creare una Raccolta di calcolo di Azure
  • Creare una definizione di immagine specializzata
  • Creare una versione di immagine
  • Creare un set di scalabilità da un'immagine specializzata
  • Condividere una raccolta di immagini

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Prerequisiti

  • Questo articolo richiede la versione 2.4.0 dell'interfaccia della riga di comando di Azure. Se si usa Azure Cloud Shell, la versione più recente è già installata.

Panoramica

Una raccolta di calcolo di Azure semplifica la condivisione di immagini personalizzate nell'organizzazione. Le immagini personalizzate sono come le immagini di marketplace, ma si possono creare autonomamente. Le immagini personalizzate possono essere usate per le configurazioni di avvio, ad esempio il precaricamento e le configurazioni di applicazioni e altre configurazioni del sistema operativo.

La raccolta di calcolo di Azure consente di condividere le immagini di vm personalizzate con altri utenti. Scegliere le immagini che si intende condividere, le aree nelle quali si vuole renderle disponibili e i destinatari.

Creare e configurare una macchina virtuale di origine

Creare prima un gruppo di risorse con il comando az group create, quindi creare una VM con az vm create. Questa macchina virtuale viene quindi usata come origine per l'immagine. L'esempio seguente crea una VM denominata myVM nel gruppo di risorse denominato myResourceGroup:

az group create --name myResourceGroup --location eastus

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image <SKU image> \
  --admin-username azureuser \
  --generate-ssh-keys

Importante

L'ID della VM viene mostrato nell'output del comando az vm create. Copiare questo valore in un posto sicuro, in modo da poterlo usare più avanti in questa esercitazione.

Una raccolta di immagini è la risorsa principale usata per l'abilitazione della condivisione di immagini.

I caratteri consentiti per i nomi delle raccolte sono lettere maiuscole o minuscole, numeri e punti. Il nome della raccolta non può contenere trattini. I nomi di raccolta devono essere univoci all'interno della sottoscrizione.

Creare una raccolta di immagini usando sig az create. L'esempio seguente crea un gruppo di risorse denominato myGalleryRG nell'area Stati Uniti orientali e una raccolta denominata myGallery.

az group create --name myGalleryRG --location eastus
az sig create --resource-group myGalleryRG --gallery-name myGallery

Creare una definizione dell'immagine

Le definizioni di immagini creano un raggruppamento logico per le immagini. Vengono usate per gestire le informazioni sulle versioni di immagini create al loro interno.

I nomi delle definizioni di immagini possono essere costituiti da lettere maiuscole o minuscole, numeri, trattini e punti.

Assicurarsi che la definizione di immagine sia del tipo corretto. Se la VM è stata generalizzata, usando Sysprep per Windows o waagent -deprovision per Linux, è necessario creare una definizione di immagine generalizzata usando --os-state generalized. Se si vuole usare la VM senza rimuovere gli account utente esistenti, creare una definizione di immagine specializzata usando --os-state specialized.

Per altre informazioni sui valori che è possibile specificare per la definizione di immagine, vedere Definizioni di immagini.

Creare una definizione di immagine nella raccolta usando az sig image-definition create.

In questo esempio la definizione di immagine è denominata myImageDefinition ed è relativa a un'immagine specializzata del sistema operativo Linux. Per creare una definizione per le immagini usando un sistema operativo Windows, usare --os-type Windows.

az sig image-definition create \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --publisher myPublisher \
   --offer myOffer \
   --sku mySKU \
   --os-type Linux \
   --os-state specialized

Importante

L'ID della definizione di immagine viene mostrato nell'output del comando. Copiare questo valore in un posto sicuro, in modo da poterlo usare più avanti in questa esercitazione.

Creare una versione di immagine

Per creare una versione di immagine dalla macchina virtuale, usare az image gallery create-image-version.

I caratteri consentiti per le versioni delle immagini sono numeri e punti. I numeri devono essere compresi nell'intervallo di un valore Integer a 32 bit. Formato: MajorVersion.MinorVersion.Patch.

In questo esempio la versione dell'immagine è1.0.0 e verranno create una replica nell'area Stati Uniti centro-meridionali e una replica nell'area Stati Uniti orientali 2. Le aree di replica devono includere l'area in cui si trova la macchina virtuale di origine.

Sostituire il valore di --managed-image in questo esempio con l'ID della macchina virtuale del passaggio precedente.

az sig image-version create \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --gallery-image-version 1.0.0 \
   --target-regions "southcentralus=1" "eastus=1" \
   --managed-image "/subscriptions/<Subscription ID>/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM"

Nota

È necessario attendere che la creazione della versione dell'immagine venga interamente completata e replicata prima di poter usare la stessa immagine gestita o creare un'altra versione di immagine.

Quando si crea la versione dell'immagine, è anche possibile archiviare l'immagine nell'archiviazione Premium, aggiungendo --storage-account-type premium_lrs, oppure nell'archiviazione con ridondanza della zona, aggiungendo --storage-account-type standard_zrs.

Creare un set di scalabilità dall'immagine

Importante

A partire da novembre 2023, i set di scalabilità di macchine virtuali creati con PowerShell e l'interfaccia della riga di comando di Azure per impostazione predefinita saranno modalità di orchestrazione flessibile se non è specificata alcuna modalità di orchestrazione. Per altre informazioni su questa modifica e sulle azioni da eseguire, vedere Modifica di rilievo per i clienti di PowerShell/interfaccia della riga di comando di VMSS - Hub della community Microsoft

Creare un set di scalabilità dall'immagine specializzata usando az vmss create.

Creare il set di scalabilità usando az vmss create il parametro --specialized per indicare che l'immagine è un'immagine specializzata.

Usare l'ID definizione immagine per --image per creare le istanze del set di scalabilità dalla versione più recente dell'immagine disponibile. È anche possibile creare le istanze del set di scalabilità da una versione specifica fornendo l'ID versione dell'immagine per --image.

Creare un set di scalabilità denominato myScaleSet, la versione più recente dell'immagine myImageDefinition creata in precedenza.

az group create --name myResourceGroup --location eastus
az vmss create \
   --resource-group myResourceGroup \
   --name myScaleSet \
   --orchestration-mode flexible \
   --image "/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition" \
   --specialized

La creazione e la configurazione di tutte le macchine virtuali e risorse del set di scalabilità richiedono alcuni minuti.

È possibile condividere immagini tra sottoscrizioni usando il controllo degli accessi in base al ruolo di Azure. È possibile condividere immagini nella raccolta, definizioni di immagini o versioni di immagini. Qualsiasi utente che abbia autorizzazioni di lettura per una versione di immagine, anche tra sottoscrizioni diverse, potrà distribuire una VM usando la versione dell'immagine.

È consigliabile condividere con altri utenti a livello di raccolta. Per ottenere l'ID oggetto della raccolta, usare az sig show.

az sig show \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --query id

Usare l'ID oggetto come ambito, insieme a un indirizzo di posta elettronica e a az role assignment create, per concedere a un utente l'accesso a Raccolta immagini condivise. Sostituire <email-address> e <gallery iD> con le informazioni personalizzate.

az role assignment create \
   --role "Reader" \
   --assignee <email address> \
   --scope <gallery ID>

Per altre informazioni su come condividere risorse usando il controllo degli accessi in base al ruolo di Azure, vedere Aggiungere o rimuovere assegnazioni di ruolo di Azure tramite l'interfaccia della riga di comando di Azure.

Pulire le risorse

Per rimuovere il set di scalabilità e le risorse aggiuntive, eliminare il gruppo di risorse e tutte le relative risorse con az group delete. Il parametro --no-wait restituisce il controllo al prompt senza attendere il completamento dell'operazione. Il parametro --yes conferma che si desidera eliminare le risorse senza un prompt aggiuntivo a tale scopo.

az group delete --name myResourceGroup --no-wait --yes

Passaggi successivi

In questa esercitazione è stato descritto come creare e usare un'immagine di macchina virtuale personalizzata per il set di scalabilità con l'interfaccia della riga di comando di Azure:

  • Creare una Raccolta di calcolo di Azure
  • Creare una definizione di immagine specializzata
  • Creare una versione di immagine
  • Creare un set di scalabilità da un'immagine specializzata
  • Condividere una raccolta di immagini

Passare all'esercitazione successiva per informazioni su come distribuire le applicazioni nel set di scalabilità.