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:
- Nella propria raccolta
- Condiviso all'interno dell'organizzazione usando il controllo degli accessi in base al ruolo
- Condiviso tra tenant con controllo degli accessi in base al ruolo
- Condiviso a tutti gli utenti in una raccolta community
- Condiviso direttamente alla sottoscrizione o al tenant
Raccolta personalizzata
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
Raccolta della community
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:
- Immagini dannose: contattare Segnalazione abusi.
- Violazioni della proprietà intellettuale: contattare Segnalazione di violazione.
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):
Raccolta condivisa diretta
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