Esercitazione: Creare e usare un'immagine personalizzata per i 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
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su 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 tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. 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.
- 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 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 macchina virtuale basata su Linux denominata myVM nel gruppo di risorse denominato myResourceGroup.
export RANDOM_ID=$(openssl rand -hex 3)
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_ID"
export REGION="eastus"
export MY_VM_NAME="myVM"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION
az vm create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_VM_NAME \
--image debian11 \
--admin-username azureuser \
--generate-ssh-keys
Suggerimento
L'ID della VM viene mostrato nell'output del comando az vm create. Copiare e archiviarlo in una posizione sicura in modo da poterlo usare più avanti in questa esercitazione.
Creare un raccolta di immagini
Una raccolta di immagini è la risorsa principale usata per l'abilitazione della condivisione di immagini.
I caratteri consentiti per i nomi della raccolta sono lettere maiuscole o minuscole, cifre, punti 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.
Nell'esempio seguente :
- Si crea un gruppo di risorse per la raccolta denominata myGalleryRG che si trova negli Stati Uniti orientali.
- La raccolta è denominata myGallery.
export MY_GALLERY_RG_NAME="myGalleryRG$RANDOM_ID"
export MY_GALLERY_NAME="myGallery$RANDOM_ID"
az group create --name $MY_GALLERY_RG_NAME --location $REGION
az sig create --resource-group $MY_GALLERY_RG_NAME --gallery-name $MY_GALLERY_NAME
Creare una definizione dell'immagine
Le definizioni di immagini creano un raggruppamento logico per le immagini. Vengono usati per gestire le informazioni sulle versioni delle immagini create all'interno di esse.
I nomi delle definizioni di immagini possono essere costituiti da lettere maiuscole o minuscole, numeri, trattini e punti.
Assicurarsi che la definizione dell'immagine sia il tipo corretto:
- Stato : se la macchina virtuale è 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
. - Tipo di sicurezza: le nuove macchine virtuali di Azure vengono create con Avvio attendibile configurato per impostazione predefinita. Questa esercitazione include esempi di codice successivi che riflettono la configurazione Avvio attendibile durante la creazione della definizione dell'immagine e del set di scalabilità. Se si sta creando un'immagine con una macchina virtuale in cui non è abilitata l'avvio attendibile, assicurarsi di riflettere il tipo di sicurezza corretto quando si creano entrambe le risorse. Per altre informazioni sull'avvio attendibile, vedere Avvio attendibile per le macchine virtuali di Azure.
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.
Nell'esempio seguente la definizione dell'immagine è:
- Denominato myImageDefinition.
- Configurato per un'immagine specializzata del sistema operativo Linux. Per creare una definizione per le immagini usando un sistema operativo Windows, usare
--os-type Windows
. - Configurato per l'avvio attendibile.
export MY_IMAGE_DEF_NAME="myImageDefinition$RANDOM_ID"
MY_PUBLISHER_NAME="myPublisher$RANDOM_ID"
az sig image-definition create \
--resource-group $MY_GALLERY_RG_NAME \
--gallery-name $MY_GALLERY_NAME \
--gallery-image-definition $MY_IMAGE_DEF_NAME \
--publisher $MY_PUBLISHER_NAME \
--offer myOffer \
--sku mySKU \
--os-type Linux \
--os-state specialized \
--features SecurityType=TrustedLaunch
Suggerimento
L'ID della definizione di immagine viene mostrato nell'output del comando. Copiare e archiviarlo in una posizione sicura 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 la versione dell'immagine sono numeri e punti. I numeri devono essere compresi nell'intervallo di un valore Integer a 32 bit. Formato: VersionePrincipale.VersioneSecondaria.Patch.
Nell'esempio seguente :
- La versione dell'immagine è 1.0.0.
- Viene creata una replica nell'area Stati Uniti centro-meridionali e una replica nell'area Stati Uniti orientali. Le aree di replica devono includere l'area in cui si trova la macchina virtuale di origine.
--virtual-machine
è l'ID della macchina virtuale creata in precedenza.
export MY_VM_ID=$(az vm show --name $MY_VM_NAME --resource-group $MY_RESOURCE_GROUP_NAME --query "id" --output tsv)
az sig image-version create \
--resource-group $MY_GALLERY_RG_NAME \
--gallery-name $MY_GALLERY_NAME \
--gallery-image-definition $MY_IMAGE_DEF_NAME \
--gallery-image-version 1.0.0 \
--target-regions "southcentralus=1" "eastus=1" \
--virtual-machine $MY_VM_ID
Nota
È necessario attendere che la versione dell'immagine finisca completamente di essere compilata e replicata prima di poter usare la stessa immagine per creare un'altra versione dell'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
Si crea un set di scalabilità usando az vmss create
. Se si usa una macchina virtuale di origine specializzata, aggiungere il --specialized
parametro per indicare che si tratta di un'immagine specializzata.
Quando si usa l'ID definizione immagine per --image
per creare le istanze del set di scalabilità, si crea un set di scalabilità che usa la versione più recente dell'immagine disponibile. Se si vuole una versione specifica dell'immagine, assicurarsi di includere l'ID versione dell'immagine quando si definisce .--image
Esempio di immagine più recente:
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage
Esempio di immagine specifica:
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/1.0.0
Nell'esempio seguente il set di scalabilità è:
- Denominato myScaleSet
- Uso della versione più recente dell'immagine myImageDefinition .
- Configurato per l'avvio attendibile.
export MY_IMAGE_DEF_ID=$(az sig image-definition show --resource-group $MY_GALLERY_RG_NAME --gallery-name $MY_GALLERY_NAME --gallery-image-definition $MY_IMAGE_DEF_NAME --query "id" --output tsv)
export MY_SCALE_SET_RG_NAME="myResourceGroup$RANDOM_ID"
export MY_SCALE_SET_NAME="myScaleSet$RANDOM_ID"
az group create --name $MY_SCALE_SET_RG_NAME --location eastus
az vmss create \
--resource-group $MY_SCALE_SET_RG_NAME \
--name $MY_SCALE_SET_NAME \
--orchestration-mode flexible \
--image $MY_IMAGE_DEF_ID \
--specialized \
--security-type TrustedLaunch
La creazione e la configurazione di tutte le macchine virtuali e risorse del set di scalabilità richiedono alcuni minuti.
Condividere la raccolta
È possibile condividere immagini tra sottoscrizioni usando il controllo degli accessi in base al ruolo di Azure ed è possibile condividerle a livello di raccolta, definizione di immagine o versione dell'immagine. Qualsiasi utente con autorizzazione di lettura per una versione dell'immagine, anche tra sottoscrizioni, è in grado di distribuire una macchina virtuale usando la versione dell'immagine.
È consigliabile condividere con altri utenti a livello di raccolta.
L'esempio seguente:
- Ottiene l'ID oggetto della raccolta usando az sig show.
- Fornisce l'accesso alla raccolta usando az role assignment create.
- Usa l'ID oggetto come ambito dell'assegnazione.
- Usa l'ID dell'utente connesso come assegnatario a scopo dimostrativo. Quando si usa questo codice nel codice di test o di produzione, assicurarsi di aggiornare l'assegnatario in modo da riflettere chi si vuole poter accedere a questa immagine. 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. , insieme a un indirizzo di posta elettronica, usando az role assignment create per concedere a un utente l'accesso alla raccolta di immagini condivise.
export MY_GALLERY_ID=$(az sig show --resource-group $MY_GALLERY_RG_NAME --gallery-name $MY_GALLERY_NAME --query "id" --output tsv)
export CALLER_ID=$(az ad signed-in-user show --query id -o tsv)
az role assignment create \
--role "Reader" \
--assignee $CALLER_ID \
--scope $MY_GALLERY_ID
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.
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à.