Quando si crea una nuova macchina virtuale da un'immagine specializzata, la nuova macchina virtuale mantiene il nome computer della macchina virtuale originale. Vengono mantenute anche altre informazioni specifiche del computer, ad esempio li CMID. Queste informazioni duplicate possono causare problemi. Quando si copia una macchina virtuale, tenere presente quali tipi di informazioni specifiche del computer vengono usate dalle applicazioni.
Creare una macchina virtuale dalla propria raccolta
Creare una macchina virtuale da una raccolta interna.
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
Per creare la macchina virtuale, usare az vm create con il parametro --specialized per indicare che si tratta di un'immagine specializzata.
Usare l'ID definizione immagine per --image per creare la macchina virtuale dalla versione più recente dell'immagine disponibile. È anche possibile creare la macchina virtuale da una versione specifica fornendo l'ID versione dell'immagine per --image.
In questo esempio viene creata una macchina virtuale dalla versione più recente dell'immagine myImageDefinition.
az group create --name myResourceGroup --location eastus
az vm create --resource-group myResourceGroup \
--name myVM \
--image "/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition" \
--specialized
Ora che si dispone di una versione di immagine specializzata, è possibile usarla per creare una o più macchine virtuali nuove usando il cmdlet New-AzVM.
In questo esempio viene usato l'ID definizione dell'immagine per assicurarsi che la nuova macchina virtuale usi la versione più recente di un'immagine. È anche possibile usare una versione specifica tramite l'ID versione dell'immagine per Set-AzVMSourceImage -Id. Ad esempio, per usare la versione dell'immagine 1.0.0 digitare: Set-AzVMSourceImage -Id "/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition/versions/1.0.0".
L'uso di una versione specifica dell'immagine significa che l'automazione potrebbe non riuscire se tale versione specifica dell'immagine non è disponibile perché è stata eliminata o rimossa dall'area. È consigliabile usare l'ID definizione dell'immagine per la creazione della nuova macchina virtuale, a meno che non sia necessaria una versione specifica dell'immagine.
Sostituire i nomi delle risorse di questo esempio secondo necessità.
# Create some variables for the new VM.
$resourceGroup = "mySIGSpecializedRG"
$location = "South Central US"
$vmName = "mySpecializedVM"
# Get the image. Replace the name of your resource group, gallery, and image definition. This will create the VM from the latest image version available.
$imageDefinition = Get-AzGalleryImageDefinition `
-GalleryName myGallery `
-ResourceGroupName myResourceGroup `
-Name myImageDefinition
# Create a resource group
New-AzResourceGroup -Name $resourceGroup -Location $location
# Create the network resources.
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name mySubnet `
-AddressPrefix 192.168.1.0/24
$vnet = New-AzVirtualNetwork `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name MYvNET `
-AddressPrefix 192.168.0.0/16 `
-Subnet $subnetConfig
$pip = New-AzPublicIpAddress `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name "mypublicdns$(Get-Random)" `
-AllocationMethod Static `
-IdleTimeoutInMinutes 4
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig `
-Name myNetworkSecurityGroupRuleRDP `
-Protocol Tcp `
-Direction Inbound `
-Priority 1000 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 3389 -Access Deny
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name myNetworkSecurityGroup `
-SecurityRules $nsgRuleRDP
$nic = New-AzNetworkInterface `
-Name $vmName `
-ResourceGroupName $resourceGroup `
-Location $location `
-SubnetId $vnet.Subnets[0].Id `
-PublicIpAddressId $pip.Id `
-NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration using Set-AzVMSourceImage -Id $imageDefinition.Id to use the latest available image version.
$vmConfig = New-AzVMConfig `
-VMName $vmName `
-VMSize Standard_D1_v2 | `
Set-AzVMSourceImage -Id $imageDefinition.Id | `
Add-AzVMNetworkInterface -Id $nic.Id
# Create a virtual machine
New-AzVM `
-ResourceGroupName $resourceGroup `
-Location $location `
-VM $vmConfig
È ora possibile creare una o più nuove macchine virtuali. Questo esempio crea una macchina virtuale denominata myVM in myResourceGroup nel datacenter Stati Uniti orientali.
Passare alla definizione dell'immagine. È possibile usare il filtro delle risorse per visualizzare tutte le definizioni di immagine disponibili.
Nella pagina per la definizione dell'immagine selezionare Crea macchina virtuale dal menu nella parte superiore della pagina.
In Gruppo di risorse selezionare Crea nuovo e digitare myResourceGroup come nome.
In Nome macchina virtuale digitare myVM.
In Area selezionare Stati Uniti orientali.
Per Opzioni di disponibilità, lasciare l'impostazione predefinita Nessuna ridondanza dell'infrastruttura richiesta.
Il valore per Immagine viene compilato automaticamente con la versione dell'immagine latest se si è avviata l'operazione dalla pagina per la definizione dell'immagine.
Per Dimensioni, scegliere una dimensione della macchina virtuale dall'elenco delle dimensioni disponibili e quindi scegliere Seleziona.
In Account amministratore il nome utente è disattivato perché vengono usati il nome utente e le credenziali della macchina virtuale di origine.
Se si vuole consentire l'accesso remoto alla macchina virtuale, in Porte in ingresso pubbliche scegliere Consenti porte selezionate e quindi selezionare SSH (22) o RDP (3389) dall'elenco a discesa. Se non si vuole consentire l'accesso remoto alla macchina virtuale, lasciare selezionata l'opzione Nessuna per Porte in ingresso pubbliche.
Una volta fatto, selezionare quindi il pulsante Rivedi e crea nella parte inferiore della pagina.
Dopo aver superato la convalida della macchina virtuale, selezionare Crea nella parte inferiore della pagina per avviare la distribuzione.
Controllo degli accessi in base al ruolo: 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 il imageID dell'immagine che si vuole usare e assicurarsi che l'immagine venga replicata nell'area in cui si vuole creare la macchina virtuale.
Controllo degli accessi in base al ruolo: da un altro tenant o organizzazione
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à necessario il imageID dell'immagine che si vuole usare e assicurarsi che l'immagine venga replicata 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.
È 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. 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
Per creare la macchina virtuale, usare az vm create con il parametro --specialized per indicare che si tratta di un'immagine specializzata.
imageid=""/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition""
resourcegroup="myResourceGroup"
location="West US 3"
name='myVM'
az group create --name $resourcegroup --location $location
az vm create --resource-group $resourcegroup \
--name $name \
--image $image \
--specialized
È 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. Questo è il modo in cui Azure autentica e verifica che l'utente ha accesso all'immagine.
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.
# Create some variables for the new VM.
$resourceGroup = "myResourceGroup"
$location = "South Central US"
$vmName = "myVM"
# Set a variable for the image version in Tenant 1 using the full image ID of the image version
$image = "/subscriptions/<Tenant 1 subscription>/resourceGroups/<Resource group>/providers/Microsoft.Compute/galleries/<Gallery>/images/<Image definition>/versions/<version>"
# Create a resource group
New-AzResourceGroup -Name $resourceGroup -Location $location
# Create the network resources.
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name mySubnet `
-AddressPrefix 192.168.1.0/24
$vnet = New-AzVirtualNetwork `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name MYvNET `
-AddressPrefix 192.168.0.0/16 `
-Subnet $subnetConfig
$pip = New-AzPublicIpAddress `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name "mypublicdns$(Get-Random)" `
-AllocationMethod Static `
-IdleTimeoutInMinutes 4
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig `
-Name myNetworkSecurityGroupRuleRDP `
-Protocol Tcp `
-Direction Inbound `
-Priority 1000 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 3389 -Access Deny
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name myNetworkSecurityGroup `
-SecurityRules $nsgRuleRDP
$nic = New-AzNetworkInterface `
-Name $vmName `
-ResourceGroupName $resourceGroup `
-Location $location `
-SubnetId $vnet.Subnets[0].Id `
-PublicIpAddressId $pip.Id `
-NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration using Set-AzVMSourceImage -Id $imageDefinition.Id to use the latest available image version.
$vmConfig = New-AzVMConfig `
-VMName $vmName `
-VMSize Standard_D1_v2 | `
Set-AzVMSourceImage -Id $image | `
Add-AzVMNetworkInterface -Id $nic.Id
# Create a virtual machine
New-AzVM `
-ResourceGroupName $resourceGroup `
-Location $location `
-VM $vmConfig
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:
Come utente finale, per ottenere il nome pubblico di una raccolta community, è necessario usare il portale. Passare a Macchine virtuali>Crea>Macchina virtuale di Azure>Immagine>Visualizza tutte le immagini>Immagini della community>Nome della raccolta pubblica.
Elencare tutte le definizioni di immagine disponibili in una raccolta community usando az sig image-definition list-community. In questo esempio vengono elencate tutte le immagini nella raccolta ContosoImage 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.
az sig image-definition list-community \
--public-gallery-name "ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f" \
--location westus \
--query [*]."{Name:name,ID:uniqueId,OS:osType,State:osState}" -o table
Per creare la macchina virtuale, usare az vm create con il parametro --specialized per indicare che si tratta di un'immagine specializzata.
In questo esempio viene creata una macchina virtuale dalla versione più recente dell'immagine myImageDefinition.
az group create --name myResourceGroup --location eastus
az vm create --resource-group myResourceGroup \
--name myVM \
--image "/CommunityGalleries/ContosoImages-f61bb1d9-3c5a-4ad2-99b5-744030225de6/Images/LinuxSpecializedVersions/latest" \
--specialized
Quando si usa un'immagine della community, verrà richiesto di accettare le condizioni legali. Il messaggio sarà 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):
Digitare macchine virtuali nella casella di ricerca.
In Servizi selezionare Macchine virtuali.
Nella pagina Macchine virtuali, selezionare Crea e quindi Macchina virtuale. Viene visualizzata la pagina Creare una macchina virtuale.
Nella scheda Informazioni di base, in Dettagli progetto verificare che sia selezionata la sottoscrizione corretta e quindi scegliere Crea nuovo gruppo di risorse o selezionarne uno nell'elenco a discesa.
In Dettagli istanza digitare un nome per il Nome della macchina virtuale.
Per Tipo di sicurezza, assicurarsi che sia selezionato Standard.
Per Immagine, selezionare Visualizza tutte le immagini. Verrà aperta la pagina Selezionare un'immagine.
Nel menu a sinistra, in Altri elementi selezionare Immagini della community. Si aprirà la pagina Altri elementi | Immagini della community.
Selezionare un'immagine dall'elenco. Assicurarsi che lo Stato del sistema operativo sia Specializzato. Per usare un'immagine specializzata, vedere Creare una macchina virtuale usando una versione generalizzata dell'immagine. A seconda dell'immagine scelta, l'area in cui verrà creata la macchina virtuale cambierà in modo da corrispondere all'immagine.
Completare le altre opzioni e quindi selezionare il pulsante Rivedi e crea nella parte inferiore della pagina.
Nella pagina Crea macchina virtuale è possibile visualizzare i dettagli sulla macchina virtuale che si sta creando. Al termine, selezionare Crea.
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 la versione più recente di un'immagine condivisa nella sottoscrizione o nel tenant, è necessario l'ID dell'immagine nel formato seguente:
Per trovare 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 tutte 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
Per creare la macchina virtuale, usare az vm create con il parametro --specialized per indicare che si tratta di un'immagine specializzata.
Usare Id, 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 dalla versione più recente dell'immagine myImageDefinition.
imgDef="/SharedGalleries/1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-MYDIRECTSHARED/Images/myDirectDefinition/Versions/latest"
vmResourceGroup=myResourceGroup
location=westus
vmName=myVM
az group create --name $vmResourceGroup --location $location
az vm create\
--resource-group $vmResourceGroup \
--name $vmName \
--image $imgDef \
--specialized
Nota
Problema noto: nel portale di Azure, se si seleziona un'area, si seleziona un'immagine e quindi si modifica l'area, viene visualizzato un messaggio di errore: "È possibile creare una macchina virtuale solo nelle aree di replica dell'immagine" anche quando l'immagine viene replicata in tale area. Per eliminare l'errore, selezionare un'area diversa, quindi tornare all'area desiderata. Se l'immagine è disponibile, il messaggio di errore verrà cancellato.
È anche possibile usare l'interfaccia della riga di comando di Azure per verificare le immagini condivise con l'utente. Ad esempio, è possibile usare "az sig list-shared --location westus" per visualizzare le immagini condivise con l'utente nell'area Stati Uniti occidentali.
Digitare macchine virtuali nella casella di ricerca.
In Servizi selezionare Macchine virtuali.
Nella pagina Macchine virtuali, selezionare Crea e quindi Macchina virtuale. Viene visualizzata la pagina Creare una macchina virtuale.
Nella scheda Informazioni di base, in Dettagli progetto verificare che sia selezionata la sottoscrizione corretta e quindi scegliere Crea nuovo gruppo di risorse o selezionarne uno nell'elenco a discesa.
In Dettagli istanza digitare un nome per il Nome della macchina virtuale.
Per Tipo di sicurezza, assicurarsi che sia selezionato Standard.
Per Immagine, selezionare Visualizza tutte le immagini. Verrà aperta la pagina Selezionare un'immagine.
Nel menu a sinistra, in Altri elementi selezionare Immagini condivise dirette (ANTEPRIMA). Si aprirà la pagina Altri elementi | Immagini condivise dirette (ANTEPRIMA).
Selezionare un'immagine dall'elenco. Assicurarsi che lo Stato del sistema operativo sia Specializzato. Se si vuole creare una macchina virtuale usando un disco rigido virtuale generico, vedere Creare una macchina virtuale da una versione di immagine generalizzata. A seconda dell'immagine scelta, l'area in cui verrà creata la macchina virtuale cambierà in modo da corrispondere all'immagine.
Completare le altre opzioni e quindi selezionare il pulsante Rivedi e crea nella parte inferiore della pagina.
Nella pagina Crea macchina virtuale è possibile visualizzare i dettagli sulla macchina virtuale che si sta creando. Al termine, selezionare Crea.