Creare una VM da una versione dell'immagine generalizzata

Creare una macchina virtuale da una versione di immagine generalizzata archiviata in una raccolta di calcolo di Azure (in precedenza nota come Raccolta immagini condivise). Per creare una macchina virtuale usando un'immagine specializzata, vedere Creare una macchina virtuale da un'immagine specializzata.

Questo articolo illustra come creare una macchina virtuale da un'immagine generalizzata:

Elencare le definizioni di immagine in una raccolta usando az sig image-definition list per visualizzare il nome e l'ID delle definizioni.

resourceGroup=myGalleryRG
gallery=myGallery
az sig image-definition list --resource-group $resourceGroup --gallery-name $gallery --query "[].[name, id]" --output tsv

Creare una macchina virtuale usando il comando az vm create. Per usare la versione più recente dell'immagine, impostare --image sull'ID della definizione dell'immagine.

Questo esempio riguarda la creazione di una macchina virtuale Linux protetta con SSH. Per Windows o per proteggere una macchina virtuale Linux con una password, rimuovere --generate-ssh-keys per richiedere una password. Se si vuole specificare direttamente una password, sostituire --generate-ssh-keys con --admin-password. Sostituire i nomi delle risorse di questo esempio secondo necessità.

imgDef="/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition"
vmResourceGroup=myResourceGroup
location=eastus
vmName=myVM
adminUsername=azureuser

az group create --name $vmResourceGroup --location $location

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $imgDef \
   --admin-username $adminUsername \
   --generate-ssh-keys

È anche possibile usare una versione specifica usando l'ID versione dell'immagine per il parametro --image. Ad esempio, per usare la versione dell'immagine 1.0.0 tipo: --image "/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition/versions/1.0.0".

Controllo degli accessi in base al ruolo - Condiviso all'interno dell'organizzazione

Se la sottoscrizione in cui risiede la raccolta si trova nello stesso tenant, le immagini condivise tramite il controllo degli accessi in base al ruolo possono essere usate per creare macchine virtuali usando l'interfaccia della riga di comando e PowerShell.

Sarà necessario usare imageID dell'immagine che si vuole usare ed è necessario assicurarsi che sia replicato nell'area in cui si vuole creare la macchina virtuale.

Assicurarsi che lo stato dell'immagine sia Generalized. Se si vuole usare un'immagine con lo stato Specialized, vedere Creare una macchina virtuale da una versione specializzata dell'immagine.

imgDef="/SharedGalleries/1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-MYDIRECTSHARED/Images/myDirectDefinition/Versions/latest"
vmResourceGroup=myResourceGroup
location=westus
vmName=myVM
adminUsername=azureuser

az group create --name $vmResourceGroup --location $location

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $imgDef \
   --admin-username $adminUsername \
   --generate-ssh-keys

Controllo degli accessi in base al ruolo - Condiviso da un altro tenant

Se l'immagine che si vuole usare viene archiviata in una raccolta che non si trova nello stesso tenant (directory), sarà necessario accedere a ogni tenant per verificare di avere accesso.

Sarà anche necessario usare imageID dell'immagine che si vuole usare ed è necessario assicurarsi che sia replicato nell'area in cui si vuole creare la macchina virtuale. Saranno necessari anche tenantID per la raccolta di origine e tenantID per la posizione in cui si vuole creare la macchina virtuale.

In questo esempio viene illustrato come creare una macchina virtuale da un'immagine generalizzata. Per usare un'immagine specializzata, vedere Creare una macchina virtuale usando una versione generalizzata dell'immagine.

È necessario accedere al tenant in cui è archiviata l'immagine, ottenere un token di accesso, quindi accedere al tenant in cui si vuole creare la macchina virtuale. In questo caso, tenant1 è la posizione in cui è archiviata l'immagine e tenant2 è la posizione in cui si vuole creare la macchina virtuale. Questo è il modo in cui Azure autentica e verifica che l'utente ha accesso all'immagine.


tenant1='<ID for tenant 1>'
tenant2='<ID for tenant 2>'

az account clear
az login --tenant $tenant1
az account get-access-token 
az login --tenant $tenant2
az account get-access-token

Creare la macchina virtuale. Sostituire le informazioni nell'esempio con le proprie. Prima di creare la macchina virtuale, assicurarsi che l'immagine venga replicata nell'area in cui si vuole creare la macchina virtuale.

imageid="<ID of the image that you want to use>"
resourcegroup="<name for the resource group>"
location="<location where the image is replicated>"
user='<username for the VM>'
name='<name for the VM>'

az group create --location $location --resource-group $resourcegroup
az vm create \
  --resource-group $resourcegroup \
  --name $name \
  --image $imageid \
  --admin-username $user \
  --generate-ssh-keys

Importante

Microsoft non fornisce supporto per le immagini nella raccolta della community.

Segnalazione di problemi con un'immagine della community

L'uso di immagini di macchine virtuali inviate dalla community presenta diversi rischi. Le immagini possono contenere malware, vulnerabilità di sicurezza o violare la proprietà intellettuale di un utente. Per creare un'esperienza sicura e affidabile per la community, è possibile segnalare le immagini quando vengono riscontrati questi problemi.

Il modo più semplice per segnalare i problemi relativi a una raccolta della community consiste nell'usare il portale, che precompilerà le informazioni per il report:

  • Per i problemi relativi ai collegamenti o ad altre informazioni nei campi di una definizione di immagine, selezionare Segnala immagine della community.
  • Se una versione dell'immagine contiene codice dannoso o si verificano altri problemi con una versione specifica di un'immagine, selezionare Segnala nella colonna Segnala versione nella tabella delle versioni dell'immagine.

È anche possibile usare i collegamenti seguenti per segnalare i problemi, ma i moduli non verranno precompilati:

Per creare una macchina virtuale usando un'immagine condivisa in una raccolta community, usare l'ID univoco dell'immagine per --image, che sarà nel formato seguente:

/CommunityGalleries/<community gallery name, like: ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f>/Images/<image name>/Versions/latest

Seguire queste istruzioni per ottenere l'elenco delle immagini della community tramite l'interfaccia della riga di comando:

Step 1:  Show all 'Community images' in a specific location
az sig list-community --location westus2

Step 2: Once you have the public gallery name from Step 1, Get the Image definition (Name) of the image by running the following command
az sig image-definition list-community --public-gallery-name <<public gallery name>> --location westus2

Step 3: Finally, run the following command to list different image versions available for the specific image
az sig image-version list-community --public-gallery-name <<galleryname>> --gallery-image-definition <<image name>> --location westus2

Per ottenere il nome pubblico di una raccolta community dal portale. Passare a Macchine virtuali>Crea>Macchina virtuale di Azure>Immagine>Visualizza tutte le immagini>Immagini della community>Nome della raccolta pubblica.

In questo esempio si crea una macchina virtuale da un'immagine Linux e si creano chiavi SSH per l'autenticazione.

imgDef="/CommunityGalleries/ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f>/Images/myLinuxImage/Versions/latest"
vmResourceGroup=myResourceGroup
location=eastus
vmName=myVM
adminUsername=azureuser

az group create --name $vmResourceGroup --location $location

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $imgDef \
   --admin-username $adminUsername \
   --generate-ssh-keys

Quando si usa un'immagine della community, verrà richiesto di accettare le condizioni legali. Il messaggio è simile al seguente:

To create the VM from community gallery image, you must accept the license agreement and privacy statement: http://contoso.com. (If you want to accept the legal terms by default, please use the option '--accept-term' when creating VM/VMSS) (Y/n): 

Importante

Raccolta di calcolo di Azure: la raccolta condivisa diretta è attualmente disponibile in ANTEPRIMA ed è soggetta alle Condizioni per l’anteprima per la Raccolta di calcolo di Azure.

Per pubblicare immagini in una raccolta condivisa diretta durante l'anteprima, è necessario registrarsi in https://aka.ms/directsharedgallery-preview. La creazione di macchine virtuali dalla raccolta condivisa diretta è aperta a tutti gli utenti di Azure.

Durante l'anteprima è necessario creare una nuova raccolta, con la proprietà sharingProfile.permissions impostata su Groups. Quando si usa l'interfaccia della riga di comando per creare una raccolta, usare il parametro --permissions groups. Non è possibile usare una raccolta esistente, la proprietà non può essere aggiornata.

Per creare una macchina virtuale usando un'immagine condivisa nella sottoscrizione o nel tenant, è necessario l'ID univoco dell'immagine nel formato seguente:

/SharedGalleries/<uniqueID>/Images/<image name>/Versions/latest

Per trovare il valore uniqueID di una raccolta condivisa con l'utente, usare az sig list-shared. In questo esempio si stanno cercando raccolte nell'area Stati Uniti occidentali.

region=westus
az sig list-shared --location $region --query "[].name" -o tsv

Usare il nome della raccolta per trovare le immagini disponibili. In questo esempio vengono elencate tutte le immagini in Stati Uniti occidentali e, in base al nome, l'ID univoco necessario per creare una macchina virtuale, un sistema operativo e uno stato del sistema operativo.

galleryName="1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-myDirectShared"
 az sig image-definition list-shared \
   --gallery-unique-name $galleryName \
   --location $region \
   --query [*]."{Name:name,ID:uniqueId,OS:osType,State:osState}" -o table

Assicurarsi che lo stato dell'immagine sia Generalized. Se si vuole usare un'immagine con lo stato Specialized, vedere Creare una macchina virtuale da una versione specializzata dell'immagine.

Usare il valore Id dell'output, con /Versions/latest aggiunto per usare la versione più recente, come valore per --image per creare una macchina virtuale. In questo esempio viene creata una macchina virtuale da un'immagine Linux condivisa direttamente e si creano chiavi SSH per l'autenticazione.

imgDef="/SharedGalleries/1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-MYDIRECTSHARED/Images/myDirectDefinition/Versions/latest"
vmResourceGroup=myResourceGroup
location=westus
vmName=myVM
adminUsername=azureuser

az group create --name $vmResourceGroup --location $location

az vm create\
   --resource-group $vmResourceGroup \
   --name $vmName \
   --image $imgDef \
   --admin-username $adminUsername \
   --generate-ssh-keys

Passaggi successivi