Créer une image managée héritée d’une machine virtuelle généralisée dans Azure

S’applique à : ✔️ Machines virtuelles Linux ✔️ Machines virtuelles Windows ✔️ Groupes identiques flexibles

Important

Cet article traite de l’ancienne technologie d’image managée. Pour la technologie la plus récente, les clients sont encouragés à utiliser Azure Compute Gallery. Toutes les nouvelles fonctionnalités, telles qu’ARM64, Lancement fiable et Machine virtuelle confidentielle, sont uniquement prises en charge via Azure Compute Gallery.  Si vous disposez d’une image managée existante, vous pouvez l’utiliser comme source et créer une image Azure Compute Gallery.  Pour plus d’informations, consultez Migrer une image managée vers la galerie de calcul Azure.

Une fois une machine virtuelle marquée comme generalized dans Azure, vous ne pouvez pas la redémarrer.

Une image managée prend en charge jusqu’à 20 déploiements simultanés. Une tentative de création simultanée de plus de 20 machines virtuelles à partir de la même image managée peut entraîner l’expiration des délais d’approvisionnement en raison des limites de performances de stockage d’un disque dur virtuel unique. Pour créer plus de 20 machines virtuelles simultanément, utilisez une image de Azure Compute Gallery (anciennement Shared Image Gallery) configurée avec 1 réplica tous les 20 déploiements simultanés de machines virtuelles.

Pour plus d'informations sur la facturation des images managées, reportez-vous à Tarification de la fonctionnalité Disques managés.

Prérequis

Pour créer une image, vous avez besoin d’une machine virtuelle généralisée.

Interface CLI : créer une image managée héritée d’une machine virtuelle

Créez une image managée d’une machine virtuelle à l’aide de az image create. L’exemple suivant crée une image nommée myImage dans le groupe de ressources nommé myResourceGroup à l’aide de la ressource de machine virtuelle nommée myVM.

az image create \
   --resource-group myResourceGroup \
   --name myImage --source myVM

Notes

L’image est créée dans le même groupe de ressources que votre machine virtuelle source. Vous pouvez créer des machines virtuelles dans n’importe quel groupe de ressources de votre abonnement à partir de cette image. En matière de gestion, peut-être voudrez-vous créer un groupe de ressources spécifique pour vos ressources de machine virtuelle et vos images.

Si vous capturez l’image d’une machine virtuelle de 2e génération, utilisez également le paramètre --hyper-v-generation V2. Pour plus d’informations, consultez Machines virtuelles de 2e génération.

Si vous souhaitez stocker votre image dans le stockage résilient aux zones, vous devez la créer dans une région qui prend en charge des zones de disponibilité et inclut le paramètre --zone-resilient true.

Cette commande retourne du code JSON qui décrit l’image de machine virtuelle. Enregistrez cette sortie pour référence ultérieure.

PowerShell : créer une image managée héritée d’une machine virtuelle

La création d’une image directement à partir de la machine virtuelle permet de s’assurer que celle-ci comprend tous les disques associés à la machine virtuelle, y compris le disque du système d’exploitation et tous les disques de données. Cet exemple montre comment créer une image gérée à partir d’une machine virtuelle qui utilise des disques managés.

Avant de commencer, assurez-vous que vous disposez de la dernière version du module Azure PowerShell. Pour trouver la version, exécutez Get-Module -ListAvailable Az dans PowerShell. Si vous devez procéder à une mise à niveau, voir Installer Azure PowerShell sur Windows avec PowerShellGet. Si vous exécutez PowerShell en local, exécutez Connect-AzAccount pour créer une connexion avec Azure.

Notes

Si vous voulez stocker votre image dans un stockage redondant interzone, vous devez la créer dans une région qui prend en charge les zones de disponibilité et inclut le paramètre -ZoneResilient dans la configuration de l’image (commande New-AzImageConfig).

Pour créer une image de machine virtuelle, procédez comme suit :

  1. Définissez des variables.

    $vmName = "myVM"
    $rgName = "myResourceGroup"
    $location = "EastUS"
    $imageName = "myImage"
    
  2. Assurez-vous que la machine virtuelle a été libérée.

    Stop-AzVM -ResourceGroupName $rgName -Name $vmName -Force
    
  3. Définissez l’état de la machine virtuelle sur Généralisé.

    Set-AzVm -ResourceGroupName $rgName -Name $vmName -Generalized
    
  4. Accédez à la machine virtuelle.

    $vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
    
  5. Créez la configuration de l’image.

    $image = New-AzImageConfig -Location $location -SourceVirtualMachineId $vm.Id 
    
  6. Créez l’image.

    New-AzImage -Image $image -ImageName $imageName -ResourceGroupName $rgName
    

PowerShell : créer une image managée héritée à partir d’un disque managé

Si vous souhaitez créer une image uniquement du disque du système d’exploitation, spécifiez l’ID de disque managé en tant que le disque du système d’exploitation :

  1. Définissez des variables.

    $vmName = "myVM"
    $rgName = "myResourceGroup"
    $location = "EastUS"
    $imageName = "myImage"
    
  2. Obtenez la machine virtuelle.

    $vm = Get-AzVm -Name $vmName -ResourceGroupName $rgName
    
  3. Obtenez l’ID du disque géré.

    $diskID = $vm.StorageProfile.OsDisk.ManagedDisk.Id
    
  4. Créez la configuration de l’image.

    $imageConfig = New-AzImageConfig -Location $location
    $imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsState Generalized -OsType Windows -ManagedDiskId $diskID
    
  5. Créez l’image.

    New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
    

PowerShell : créer une image managée héritée à partir d’une capture instantanée

Vous pouvez créer une image gérée à partir d’une capture instantanée d’une machine virtuelle généralisée en procédant comme suit :

  1. Définissez des variables.

    $rgName = "myResourceGroup"
    $location = "EastUS"
    $snapshotName = "mySnapshot"
    $imageName = "myImage"
    
  2. Accédez à la capture instantanée.

    $snapshot = Get-AzSnapshot -ResourceGroupName $rgName -SnapshotName $snapshotName
    
  3. Créez la configuration de l’image.

    $imageConfig = New-AzImageConfig -Location $location
    $imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsState Generalized -OsType Windows -SnapshotId $snapshot.Id
    
  4. Créez l’image.

    New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
    

PowerShell : créer une image managée héritée à partir d’une machine virtuelle qui utilise un compte de stockage

Pour créer une image managée à partir d’une machine virtuelle qui n’utilise pas de disques managés, vous devez disposer de l’URI du VHD (disque dur virtuel) de système d’exploitation dans le compte de stockage, au format suivant : https://moncomptedestockage.blob.core.windows.net/conteneurvhd/nomdefichiervhd.vhd. Dans cet exemple, le disque dur virtuel se trouve dans mystorageaccount, dans un conteneur nommé vhdcontainer, et le nom de fichier du disque dur virtuel est vhdfilename.vhd.

  1. Définissez des variables.

    $vmName = "myVM"
    $rgName = "myResourceGroup"
    $location = "EastUS"
    $imageName = "myImage"
    $osVhdUri = "https://mystorageaccount.blob.core.windows.net/vhdcontainer/vhdfilename.vhd"
    
  2. Arrêtez/libérez la machine virtuelle.

    Stop-AzVM -ResourceGroupName $rgName -Name $vmName -Force
    
  3. Indiquez que la machine virtuelle est généralisée.

    Set-AzVm -ResourceGroupName $rgName -Name $vmName -Generalized    
    
  4. Créez l’image en utilisant votre disque dur virtuel généralisé de système d’exploitation.

    $imageConfig = New-AzImageConfig -Location $location
    $imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsType Windows -OsState Generalized -BlobUri $osVhdUri
    $image = New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
    

Interface CLI : créer une machine virtuelle à partir d’une image managée héritée

Créez une machine virtuelle en utilisant l’image que vous avez créée à l’aide de la commande az vm create. L’exemple suivant crée une machine virtuelle nommée myVMDeployed à partir de l’image nommée myImage.

az vm create \
   --resource-group myResourceGroup \
   --name myVMDeployed \
   --image myImage\
   --admin-username azureuser \
   --ssh-key-value ~/.ssh/id_rsa.pub

Interface CLI : créer une machine virtuelle dans un autre groupe de ressources à partir d’une image managée héritée

Vous pouvez créer des machines virtuelles à partir d’une image dans n’importe quel groupe de ressources de votre abonnement. Pour créer une machine virtuelle dans un groupe de ressources différent de celui de l’image, indiquez l’ID de ressource complet de votre image. Utilisez la commande az image list pour afficher une liste d’images. Le résultat ressemble à l’exemple qui suit.

"id": "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/images/myImage",
   "location": "westus",
   "name": "myImage",

L’exemple suivant utilise la commande az vm create pour créer une machine virtuelle dans un groupe de ressources différent de celui de l’image source en spécifiant l’ID de ressource d’image.

az vm create \
   --resource-group myOtherResourceGroup \
   --name myOtherVMDeployed \
   --image "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/images/myImage" \
   --admin-username azureuser \
   --ssh-key-value ~/.ssh/id_rsa.pub

Portail : créer une machine virtuelle à partir d’une image managée héritée

  1. Accédez au Portail Azure pour rechercher une image managée. Recherchez et sélectionnez Images.
  2. Sélectionnez l’image à utiliser dans la liste. La page Vue d’ensemble de l’image s’ouvre.
  3. Sélectionnez Créer une machine virtuelle dans le menu.
  4. Saisissez les informations de la machine virtuelle. Le nom d’utilisateur et le mot de passe que vous avez entrés vous serviront pour vous connecter à la machine virtuelle. Quand vous avez terminé, sélectionnez OK. Vous pouvez créer la machine virtuelle dans un groupe de ressources existant ou sélectionner Créer nouveau pour créer un groupe de ressources pour stocker la machine virtuelle.
  5. Choisissez la taille de la machine virtuelle. Pour voir plus de tailles, sélectionnez Afficher tout ou modifiez le filtre Type de disque pris en charge.
  6. Sous Paramètres, procédez aux modifications nécessaires et cliquez sur OK.
  7. Dans la page Résumé, vous pouvez voir le nom de votre image répertorié comme Image privée. Cliquez sur OK pour démarrer le déploiement de la machine virtuelle.

PowerShell : créer une machine virtuelle à partir d’une image managée héritée

Vous pouvez utiliser PowerShell pour créer une machine virtuelle à partir d’une image à l’aide du paramètre simplifié défini pour la cmdlet New-AzVm. L’image doit se trouver dans le même groupe de ressources que celui dans lequel vous allez créer la machine virtuelle.

Le paramètre simplifié défini pour New-AzVm nécessite uniquement un nom, un groupe de ressources et un nom d’image pour créer une machine virtuelle à partir d’une image. New-AzVm utilise la valeur du paramètre -Name comme nom de toutes les ressources qu’il crée automatiquement. Dans cet exemple, nous fournissons des noms plus détaillés pour chaque ressource, mais laissons l’applet de commande les créer automatiquement. Vous pouvez également créer des ressources en avance, comme le réseau virtuel, et passer le nom de ressource dans l’applet de commande. New-AzVm utilisera les ressources existantes s’il peut les trouver par leur nom.

L’exemple suivant crée une machine virtuelle nommée myVMfromImage dans le groupe de ressources myResourceGroup, à partir de l’image nommée myImage.

New-AzVm `
    -ResourceGroupName "myResourceGroup" `
    -Name "myVMfromImage" `
    -ImageName "myImage" `
    -Location "East US" `
    -VirtualNetworkName "myImageVnet" `
    -SubnetName "myImageSubnet" `
    -SecurityGroupName "myImageNSG" `
    -PublicIpAddressName "myImagePIP" 

Étapes suivantes