Cet article montre comment créer une machine virtuelle à partir d’une image généralisée :
Répertoriez les définitions d’images d’une galerie avec la commande az sig image-definition list pour voir le nom et l’ID des définitions.
resourceGroup=myGalleryRG
gallery=myGallery
az sig image-definition list --resource-group $resourceGroup --gallery-name $gallery --query "[].[name, id]" --output tsv
Créez une machine virtuelle à l’aide de la commande az vm create. Pour utiliser la version la plus récente de l’image, définissez --image
sur l’ID de la définition d’image.
Cet exemple porte sur la création d’une machine virtuelle Linux sécurisée avec SSH. Pour Windows ou pour sécuriser une machine virtuelle Linux avec un mot de passe, supprimez --generate-ssh-keys
pour être invité à entrer un mot de passe. Si vous souhaitez fournir un mot de passe directement, remplacez --generate-ssh-keys
par --admin-password
. Remplacez les noms de ressources en fonction des besoins dans cet exemple.
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
Vous pouvez également utiliser une version spécifique en utilisant l’ID de version de l’image pour le paramètre --image
. Par exemple, pour utiliser la version de l’image 1.0.0 tapez : --image "/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition/versions/1.0.0"
.
Une fois que vous disposez d’une version d’image généralisée, vous pouvez créer une ou plusieurs machines virtuelles. Utilisation de l’applet de commande New-AzVM.
Dans cet exemple, nous utilisons l’ID de définition d’image pour nous assurer que la nouvelle machine virtuelle utilise la version la plus récente d’une image. Vous pouvez également utiliser une version spécifique en utilisant l’ID de version de l’image pour Set-AzVMSourceImage -Id
. Par exemple, pour utiliser la version de l’image 1.0.0 tapez : Set-AzVMSourceImage -Id "/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition/versions/1.0.0"
.
Souvenez-vous que l’utilisation d’une version d’image spécifique signifie que l’automatisation peut échouer si cette version d’image spécifique n’est pas disponible car elle a été effacée ou supprimée de la région. Nous vous recommandons d’utiliser l’ID de définition d’image pour créer votre machine virtuelle, sauf si une version d’image spécifique est requise.
Remplacez les noms de ressources en fonction des besoins dans ces exemples.
Jeu de paramètres simplifié
Vous pouvez utiliser le jeu de paramètres simplifié défini pour créer rapidement une machine virtuelle à partir d’une image. Le jeu de paramètres simplifié utilise le nom de la machine virtuelle pour créer automatiquement certaines des ressources requises, telles qu’un réseau virtuel et une adresse IP publique pour vous.
# Create some variables for the new VM
$resourceGroup = "myResourceGroup"
$location = "South Central US"
$vmName = "myVMfromImage"
# 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 user object
$cred = Get-Credential `
-Message "Enter a username and password for the virtual machine."
# Create a resource group
New-AzResourceGroup `
-Name $resourceGroup `
-Location $location
New-AzVM `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name $vmName `
-Image $imageDefinition.Id
-Credential $cred
Jeu de paramètres complet
Vous pouvez créer une machine virtuelle à l’aide de ressources spécifiques en utilisant jeu de paramètres complet.
# Create some variables for the new VM
$resourceGroup = "myResourceGroup"
$location = "South Central US"
$vmName = "myVMfromImage"
# 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 user object
$cred = Get-Credential `
-Message "Enter a username and password for the virtual machine."
# Create a resource group
New-AzResourceGroup `
-Name $resourceGroup `
-Location $location
# Network pieces
$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 myNic `
-ResourceGroupName $resourceGroup `
-Location $location `
-SubnetId $vnet.Subnets[0].Id `
-PublicIpAddressId $pip.Id `
-NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration using $imageDefinition.Id to use the latest image version.
$vmConfig = New-AzVMConfig `
-VMName $vmName `
-VMSize Standard_D1_v2 | `
Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred | `
Set-AzVMSourceImage -Id $imageDefinition.Id | `
Add-AzVMNetworkInterface -Id $nic.Id
# Create a virtual machine
New-AzVM `
-ResourceGroupName $resourceGroup `
-Location $location `
-VM $vmConfig
Crée un réseau virtuel.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vNetName}?api-version=2020-05-01
{
"properties": {
"addressSpace": {
"addressPrefixes": [
"10.0.0.0/16"
]
}
},
"location": "eastus"
}
Créez un sous-réseau.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vNetName}/subnets/{subnetName}?api-version=2020-05-01
{
"properties": {
"addressPrefix": "10.0.0.0/16"
},
}
Créez une adresse IP publique.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPAddresses/{pIPName}?api-version=2020-11-01
{
"location": "eastus"
}
Créer des groupes de sécurité réseau
# @name vmNSG
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}?api-version=2020-11-01
{
"properties": {
"securityRules": [
{
"name": "AllowSSH",
"properties": {
"protocol": "Tcp",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"access": "Deny",
"destinationPortRange": "3389",
"sourcePortRange": "*",
"priority": 1000,
"direction": "Inbound"
}
}
]
},
"location": "eastus"
}
Créez une carte réseau.
# @name vmNIC
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{nicName}?api-version=2020-05-01
{
"properties": {
"enableAcceleratedNetworking": true,
"networkSecurityGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
},
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"subnet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vNetName}/subnets/{subNetName}",
},
"publicIPAddress": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPAddresses/{pipName}"
}
}
}
]
},
"location": "eastus",
}
Créez une machine virtuelle Linux. La section oSProfile
contient des détails spécifiques au système d’exploitation. Consultez l’exemple de code suivant pour la syntaxe Windows.
# @name vm
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}?api-version=2020-06-01
{
"location": "eastus",
"properties": {
"hardwareProfile": {
"vmSize": "Standard_DS3_v2"
},
"storageProfile": {
"imageReference": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{galleryImageName}/versions/{versionNumber}"
},
"osDisk": {
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "StandardSSD_LRS"
},
"createOption": "FromImage"
}
},
"osProfile": {
"adminUsername": "{your-username}",
"computerName": "myVM",
"linuxConfiguration": {
"ssh": {
"publicKeys": [
{
"path": "/home/{your-username}/.ssh/authorized_keys",
"keyData": "{sshKey}",
}
]
},
"disablePasswordAuthentication": true
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{nicName}",
}
]
}
},
}
Créer une machine virtuelle Windows
# @name vm
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}?api-version=2020-06-01
{
"location": "eastus",
"properties": {
"hardwareProfile": {
"vmSize": "Standard_DS3_v2"
},
"storageProfile": {
"imageReference": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{galleryImageName}/versions/{versionNumber}"
},
"osDisk": {
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "StandardSSD_LRS"
},
"createOption": "FromImage"
}
},
"osProfile": {
"adminUsername": "{your-username}",
"computerName": "myVM",
"adminPassword": "{your-password}"
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{nicName}",
}
]
}
},
Vous pouvez maintenant créer une ou plusieurs machines virtuelles. Cet exemple crée une machine virtuelle nommée myVM, dans le groupe myResourceGroup du centre de données USA Est.
- Accédez à la définition de votre image. Vous pouvez utiliser le filtre de ressources pour afficher toutes les définitions d’images disponibles.
- Dans la page de définition de votre image, sélectionnez Créer une machine virtuelle dans le menu situé en haut.
- Pour Groupe de ressources, sélectionnez Créer et entrez myResourceGroup comme nom.
- Dans Nom de la machine virtuelle, tapez myVM.
- Pour Région, sélectionnez USA Est.
- Pour Options de disponibilité, conservez la valeur par défaut Aucune redondance d’infrastructure nécessaire.
- La valeur sous Image est automatiquement renseignée avec la version d’image
latest
si vous avez démarré à partir de la page de la définition d’image.
- Pour Taille, choisissez une taille de machine virtuelle dans la liste des tailles disponibles, puis Sélectionner.
- Sous Compte d’administrateur, vous devez fournir un nom d’utilisateur (par exemple, azureuser) et un mot de passe ou une clé SSH. Le mot de passe doit contenir au moins 12 caractères et satisfaire aux exigences de complexité définies.
- Si vous souhaitez autoriser l’accès à distance à la machine virtuelle, sous Ports d’entrée publics, choisissez Autoriser les ports sélectionnés, puis sélectionnez SSH (22) ou RDP (3389) dans la liste déroulante. Si vous ne souhaitez pas autoriser l’accès à distance à la machine virtuelle, conservez la sélection Aucun pour Ports d’entrée publics.
- Quand vous avez terminé, sélectionnez le bouton Vérifier + créer en bas de la page.
- Une fois la machine virtuelle validée, sélectionnez Créer en bas de la page pour démarrer le déploiement.
Si l’abonnement où réside la galerie se trouve dans le même locataire, les images partagées via RBAC peuvent être utilisées pour créer des machines virtuelles à l’aide de l’interface CLI et de PowerShell.
Si l’image que vous souhaitez utiliser est stockée dans une galerie qui ne se trouve pas dans le même tenant (répertoire), vous devez vous connecter à chaque tenant pour vérifier que vous y avez accès.
Dans cet exemple, nous montrons comment créer une machine virtuelle à partir d’une image généralisée. Si vous utilisez une image spécialisée, consultez Créer une machine virtuelle à l’aide d’une version d’image spécialisée.
Vous devez vous connecter au locataire dans lequel l’image est stockée, obtenir un jeton d’accès, puis vous connecter au locataire dans lequel vous souhaitez créer la machine virtuelle. Dans ce cas, tenant1 est l’emplacement où l’image est stockée, et tenant2 est l’emplacement où vous souhaitez créer la machine virtuelle. C’est ainsi qu’Azure authentifie que vous avez accès à l’image.
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
Créez la machine virtuelle. Remplacez les informations dans l’exemple par vos propres données. Avant de créer la machine virtuelle, assurez-vous que l’image est répliquée dans la région où vous souhaitez créer la machine virtuelle.
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
Dans cet exemple, nous montrons comment créer une machine virtuelle à partir d’une image généralisée. Si vous utilisez une image spécialisée, consultez Créer une machine virtuelle à l’aide d’une version d’image spécialisée.
Vous devez vous connecter au locataire dans lequel l’image est stockée, obtenir un jeton d’accès, puis vous connecter au locataire dans lequel vous souhaitez créer la machine virtuelle. Dans ce cas, tenant1 est l’emplacement où l’image est stockée, et tenant2 est l’emplacement où vous souhaitez créer la machine virtuelle. C’est ainsi qu’Azure authentifie que vous avez accès à l’image.
$tenant1 = "<Tenant 1 ID>"
$tenant2 = "<Tenant 2 ID>"
Connect-AzAccount -Tenant "<Tenant 1 ID>" -UseDeviceAuthentication
Connect-AzAccount -Tenant "<Tenant 2 ID>" -UseDeviceAuthentication
Créez la machine virtuelle. Remplacez les informations dans l’exemple par vos propres données. Avant de créer la machine virtuelle, assurez-vous que l’image est répliquée dans la région où vous souhaitez créer la machine virtuelle.
$resourceGroup = "myResourceGroup"
$location = "South Central US"
$vmName = "myVMfromImage"
# 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 user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
# Create a resource group
New-AzResourceGroup -Name $resourceGroup -Location $location
# Networking pieces
$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 Allow
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
-Name myNetworkSecurityGroup -SecurityRules $nsgRuleRDP
$nic = New-AzNetworkInterface -Name myNic -ResourceGroupName $resourceGroup -Location $location `
-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration using the $image variable to specify the image
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize Standard_D1_v2 | `
Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred | `
Set-AzVMSourceImage -Id $image | `
Add-AzVMNetworkInterface -Id $nic.Id
# Create a virtual machine
New-AzVM -ResourceGroupName $resourceGroup -Location $location -VM $vmConfig
L’utilisation des images de machine virtuelle envoyées par la communauté présente plusieurs risques. Les images peuvent contenir des programmes malveillants, avoir des failles de sécurité ou violer la propriété intellectuelle d’une personne. Pour nous aider à créer une expérience sécurisée et fiable pour la communauté, vous pouvez signaler les images dans lesquelles vous rencontrez ces problèmes.
Le moyen le plus simple de signaler des problèmes avec une galerie de la communauté consiste à utiliser le portail, qui pré-remplira les informations nécessaires au rapport :
Vous pouvez également utiliser les liens suivants pour signaler des problèmes, mais les formulaires ne sont pas préremplis :
Pour créer une machine à partir d’une image partagée dans une galerie de communauté, utilisez l’identifiant unique de l’image pour --image
qui figurera dans le format suivant :
/CommunityGalleries/<community gallery name, like: ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f>/Images/<image name>/Versions/latest
Suivez ces instructions pour obtenir la liste des images de communauté à l’aide de l’interface CLI :
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
Pour obtenir le nom public d’une galerie de communauté à partir du portail. Accédez à Machines virtuelles>Créer>Machine virtuelle Azure>Image>Afficher toutes les images de machines virtuelles>Images de communauté>Nom de la galerie publique.
Dans cet exemple, nous créons une machine virtuelle depuis une image Linux, puis créons des clés SSH pour l’authentification.
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
Lorsque vous utilisez une image de communauté, vous êtes invité à accepter les conditions légales. Le message ressemble à ceci :
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):
Obtenez l’ID de la version de l’image. La valeur sera utilisée dans la requête de déploiement de la machine virtuelle.
GET
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Compute/Locations/{location}/CommunityGalleries/{CommunityGalleryPublicName}/Images/{galleryImageName}/Versions/{1.0.0}?api-version=2021-07-01
Réponse :
"location": "West US",
"identifier": {
"uniqueId": "/CommunityGalleries/{PublicGalleryName}/Images/{imageName}/Versions/{verionsName}"
},
"name": "1.0.0"
Vous pouvez maintenant déployer la machine virtuelle. L’exemple nécessite l’API version 2021-07-01 ou ultérieure.
PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{rg}/providers/Microsoft.Compute/virtualMachines/{VMName}?api-version=2021-03-01
{
"location": "{location}",
"properties": {
"hardwareProfile": {
"vmSize": "Standard_D1_v2"
},
"storageProfile": {
"imageReference": {
"communityGalleryImageId":"/communityGalleries/{publicGalleryName}/images/{galleryImageName}/versions/1.0.0"
},
"osDisk": {
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "Standard_LRS"
},
"name": "myVMosdisk",
"createOption": "FromImage"
}
},
"osProfile": {
"adminUsername": "azureuser",
"computerName": "myVM",
"adminPassword": "{password}}"
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/00000000-0000-0000-0000-
000000000000/resourceGroups/{rg}/providers/Microsoft.Network/networkInterfaces/{networkIntefaceName}",
"properties": {
"primary": true
}
}
]
}
}
}
- Tapez Images de la communauté dans la barre de recherche.
- Sous Services, sélectionnez Images de la communauté.
- Sélectionnez l’image dans la liste des images disponibles. Vous pouvez utiliser le filtre pour restreindre la liste le cas échéant.
- Sur la page de l’image, sélectionnez Créer une machine virtuelle. La page Créer une machine virtuelle s’ouvre avec la valeur Image présélectionnée.
- Dans l’onglet De base, sous Détails du projet, vérifiez que l’abonnement approprié est sélectionné, puis choisissez de Créer un groupe de ressources ou sélectionnez-en un dans la liste déroulante.
- Sous Détails de l’instance, entrez un nom pour la machine virtuelle.
- Complétez les options restantes, puis sélectionnez le bouton Vérifier + créer en bas de la page.
- Dans la page Créer une machine virtuelle, vous pouvez voir les détails de la machine virtuelle que vous allez créer. Quand vous êtes prêt, sélectionnez Créer.
Important
Galerie Azure Compute Gallery : la galerie partagée directe est en préversion et est soumise aux Conditions d’évaluation d’Azure Compute Gallery.
Pour publier des images dans une galerie partagée directe pendant la préversion, vous devez vous inscrire sur https://aka.ms/directsharedgallery-preview. La création de machines virtuelles à partir de la galerie partagée directe est ouverte à tous les utilisateurs d’Azure.
Pendant la préversion, vous devez créer une galerie, en définissant la propriété sharingProfile.permissions
sur Groups
. Quand vous utilisez l’interface CLI pour créer une galerie, utilisez le paramètre --permissions groups
. Vous ne pouvez pas utiliser une galerie existante ; la propriété ne peut pas être mise à jour.
Pour créer une machine virtuelle en utilisant une image partagée avec votre abonnement ou locataire, vous avez besoin de l’ID unique de l’image au format suivant :
/SharedGalleries/<uniqueID>/Images/<image name>/Versions/latest
Pour rechercher le uniqueID
d’une galerie partagée avec vous, utilisez az sig list-shared. Dans cet exemple, nous recherchons les galeries dans la région USA Ouest.
region=westus
az sig list-shared --location $region --query "[].name" -o tsv
Utilisez le nom de la galerie pour rechercher les images disponibles. Dans cet exemple, nous dressons la liste de toutes les images de la région USA Ouest et par nom, l’ID unique nécessaire pour créer une machine virtuelle, un système d’exploitation et un état du système d’exploitation.
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
Vérifiez que l’état de l’image est Generalized
. Si vous souhaitez utiliser une image avec l’état Specialized
, consultez Créer une machine virtuelle à partir d’une version d’image spécialisée.
Utilisez l’Id
à partir de la sortie, suivi de /Versions/latest
pour utiliser la dernière version, comme valeur pour --image
afin de créer une machine virtuelle. Dans cet exemple, nous créons une machine virtuelle depuis une image Linux directement partagée avec nous, puis créons des clés SSH pour l’authentification.
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
Obtenez l’ID de la version de l’image. La valeur sera utilisée dans la requête de déploiement de la machine virtuelle.
GET
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Compute/Locations/{location}/sharedGalleries/{galleryUniqueName}/Images/{galleryImageName}/Versions/{1.0.0}?api-version=2021-07-01
Réponse :
"location": "West US",
"identifier": {
"uniqueId": "/sharedGalleries/{PublicGalleryName}/Images/{imageName}/Versions/{verionsName}"
},
"name": "1.0.0"
Vous pouvez maintenant déployer la machine virtuelle. L’exemple nécessite l’API version 2021-07-01 ou ultérieure.
PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{rg}/providers/Microsoft.Compute/virtualMachines/{VMName}?api-version=2021-03-01
{
"location": "{location}",
"properties": {
"hardwareProfile": {
"vmSize": "Standard_D1_v2"
},
"storageProfile": {
"imageReference": {
"sharedGalleryImageId":"/sharedGalleries/{galleryUniqueName}/images/{galleryImageName}/versions/1.0.0"
},
"osDisk": {
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "Standard_LRS"
},
"name": "myVMosdisk",
"createOption": "FromImage"
}
},
"osProfile": {
"adminUsername": "azureuser",
"computerName": "myVM",
"adminPassword": "{password}}"
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/00000000-0000-0000-0000-
000000000000/resourceGroups/{rg}/providers/Microsoft.Network/networkInterfaces/{networkIntefaceName}",
"properties": {
"primary": true
}
}
]
}
}
}
Remarque
Problème connu : Dans le Portail Azure, si vous sélectionnez une région, sélectionnez une image, puis modifiez la région, vous obtenez le message d’erreur « Vous pouvez uniquement créer une machine virtuelle dans les régions de réplication de cette image », même quand l’image est répliquée dans cette région. Pour vous débarrasser de l’erreur, sélectionnez une autre région, puis revenez à la région souhaitée. Si l’image est disponible, cette action doit effacer le message d’erreur.
Vous pouvez également utiliser Azure CLI pour vérifier les images partagées avec vous. Par exemple, vous pouvez utiliser az sig list-shared --location westus
pour voir quelles images sont partagées avec vous dans la région USA Ouest.
- Tapez machines virtuelles dans la zone de recherche.
- Sous Services, sélectionnez Machines virtuelles.
- Dans la page Machines virtuelles, sélectionnez Créer, puis Machine virtuelle. La page Créer une machine virtuelle s’ouvre.
- Dans l’onglet De base, sous Détails du projet, vérifiez que l’abonnement approprié est sélectionné, puis choisissez de Créer un groupe de ressources ou sélectionnez-en un dans la liste déroulante.
- Sous Détails de l’instance, entrez un nom pour la machine virtuelle.
- Pour le type de sécurité, vérifiez que Standard est sélectionné.
- Pour votre image, sélectionnez Afficher toutes les images. La page Sélectionner une image s’ouvre.
- Dans le menu de gauche, sous Autres éléments, sélectionnez Images partagées directes (PRÉVERSION). La page Autres éléments | Images partagées directes (PRÉVERSION) s’ouvre.
- L’étendue de cette section est définie sur « Abonnement » par défaut, remplacez l’étendue par « Locataire » si vous ne voyez pas les images, et cliquez en dehors de la zone pour voir la liste des images partagées avec l’ensemble du locataire.
- Sélectionnez une image dans la liste. Assurez-vous que l’état du système d’exploitation est Généralisé. Si vous souhaitez utiliser une image spécialisée, consultez Créer une machine virtuelle à l’aide d’une version d’image spécialisée. Selon l’image que vous choisissez, la région dans laquelle la machine virtuelle est créée change pour correspondre à l’image.
- Complétez les options restantes, puis sélectionnez le bouton Vérifier + créer en bas de la page.
- Dans la page Créer une machine virtuelle, vous pouvez voir les détails de la machine virtuelle que vous allez créer. Quand vous êtes prêt, sélectionnez Créer.