Stocker et partager des images dans une galerie Azure Compute Gallery

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

Une image est une copie d’une machine virtuelle complète (dont tous les disques de données attachés) ou juste du disque de système d’exploitation, selon la façon dont elle est créée. Quand vous créez une machine virtuelle à partir de l’image, une copie des disques durs virtuels dans l’image est utilisée pour créer les disques de la nouvelle machine virtuelle. L’image reste dans le stockage et peut être utilisée sans limite pour créer des machines virtuelles.

Si vous avez un grand nombre d’images à gérer et que vous voulez qu’elles soient disponibles dans toute votre entreprise, vous pouvez utiliser une galerie Azure Compute Gallery comme référentiel.

Lorsque vous utilisez une galerie pour stocker des images, plusieurs types de ressources sont créés :

Ressource Description
Source d’image Cette ressource peut être utilisée pour créer une version d’image dans une galerie. Une source d’image peut être une machine virtuelle Azure existante qui est généralisée ou spécialisée, une image managée, une capture instantanée, un disque dur virtuel ou une version d’image dans une autre galerie.
Galerie Tout comme la Place de marché Azure, une galerie est un référentiel permettant de gérer et partager des images et d’autres ressources, mais vous contrôlez les utilisateurs qui y ont accès.
Définition d'image Les définitions d’image sont créées dans une galerie et contiennent des informations sur l’image et sur les exigences relatives à son utilisation pour créer des machines virtuelles. Ces informations indiquent, par exemple, si l’image est Windows ou Linux, et comprennent les notes de publication et les exigences de mémoire maximale et minimale. Il s’agit de la définition d’un type d’image.
Version de l’image Une version d’image est ce qui vous permet de créer une machine virtuelle quand vous utilisez une galerie. Vous pouvez avoir plusieurs versions d’une image en fonction des besoins de votre environnement. Tout comme une image managée, quand vous utilisez une version d’image pour créer une machine virtuelle, la version d’image permet de créer des disques pour la machine virtuelle. Les versions d’image peuvent être utilisées plusieurs fois.

Graphique montrant comment vous pouvez avoir plusieurs versions d’une image dans la galerie

Définitions d’image

Une définition d’image est un regroupement logique des versions d’une image. La définition d’image contient des informations sur la raison pour laquelle l’image a été créée, mais aussi des métadonnées d’image telles que le système d’exploitation concerné, les fonctionnalités prises en charge et d’autres informations sur l’utilisation de l’image. Une définition d’image est similaire à un plan, qui inclut l’ensemble des détails concernant la création d’une image spécifique. Vous ne déployez pas une machine virtuelle à partir d’une définition d’image, mais à partir des versions de l’image créées sur la base de la définition.

Il existe trois paramètres pour chaque définition d’image, qui sont utilisés les uns avec les autres : Publisher, Offre et SKU. Ils permettent de rechercher une définition d’image spécifique. Des définitions d'image peuvent partager une ou deux de ces valeurs, mais pas les trois. Par exemple, voici trois définitions d'image et leurs valeurs :

Définition de l’image Publisher Offer Sku
myImage1 Contoso Finances Backend
myImage2 Contoso Finances Serveur frontal
myImage3 Test Finances Serveur frontal

Ces trois définitions présentent des ensembles de valeurs uniques. Le format ressemble à celui qui est utilisé pour spécifier un éditeur (publisher), une offre et une SKU pour des images Azure Marketplace dans Azure PowerShell, afin d’obtenir la toute dernière version d’une image d’une Place de marché Microsoft Azure. Chaque définition d’image doit disposer d’un ensemble unique de ces valeurs.

Les paramètres suivants déterminent les types de versions d’images qu’elles peuvent contenir :

  • État de système d’exploitation : vous pouvez définir l’état du système d’exploitation sur la valeur Généralisée ou Spécialisée. Ce champ doit obligatoirement être renseigné.
  • Système d’exploitation : Windows ou Linux. Ce champ doit obligatoirement être renseigné.
  • Génération d’Hyper-V : spécifiez si l’image a été créée à partir d’un disque dur virtuel Hyper-V de génération 1 ou de génération 2. Par défaut, il s’agit de génération 1.

Les définitions d’image contiennent les métadonnées de l’image afin de permettre le regroupement d’images qui prennent en charge les mêmes éléments tels les fonctionnalités, le plan, l’état du système d’exploitation, le type de système d’exploitation, etc. Voici d’autres paramètres qui peuvent être configurés sur votre définition d’image de sorte à faciliter le suivi de vos ressources :

  • Description : elle vous permet de fournir des informations plus détaillées sur la raison pour laquelle la définition d’image a été créée. Par exemple, vous disposez peut-être d’une définition d’image pour votre serveur front-end sur lequel l’application est préinstallée.

  • CLUF : il peut être utilisé pour pointer vers un contrat de licence utilisateur final spécifique à la définition d’image.

  • Notes de publication et déclaration de confidentialité : stockez des notes de publication et des déclarations de confidentialité dans le stockage Azure et fournissez un URI permettant d’y accéder dans la définition d’image.

  • Date de fin de vie : établissez une date par défaut après laquelle l’image ne doit pas être utilisée, pour toutes les versions d’image de la définition d’image. Les dates de fin de vie sont fournies à titre d’information. Les utilisateurs peuvent toujours créer des machines virtuelles à partir d’images et de versions dont la date de fin de vie est dépassée.

  • Étiquette : vous pouvez ajouter des étiquettes lorsque vous créez votre définition d’image. Pour en savoir plus sur les étiquettes, voir Organisation des ressources Azure à l’aide d’étiquettes.

  • Suggestions concernant la quantité maximale et minimale de processeurs virtuels et de mémoire : si votre image est associée à ces types de recommandation, vous pouvez indiquer ces informations dans votre définition d’image.

  • Types de disque non autorisés : vous pouvez fournir des informations sur les besoins de votre machine virtuelle en termes de stockage. Par exemple, si l’image n’est pas adaptée aux disques durs standard, vous pouvez les ajouter à la liste de disques non autorisés.

  • Informations sur le plan d’achat d’images de la Place de marché - -PurchasePlanPublisher, -PurchasePlanName et -PurchasePlanProduct. Pour en savoir plus sur les informations relatives au plan d’achat, consultez Trouver des images dans la Place de marché Azure et Donner des informations sur le plan d’achat de la Place de marché Azure lors de la création d’images.

  • Architecture

  • Les fonctionnalités vous permettent de spécifier des fonctionnalités supplémentaires et des SecurityType(s) pris en charge sur l’image, en fonction du type de galerie :

    Fonctionnalités Valeurs acceptées Définition Pris en charge dans
    IsHibernateSupported True, False Créer des machines virtuelles avec prise en charge de la mise en veille prolongée. Privé, partagé direct, communauté
    IsAcceleratedNetworkSupported True, False Créer des machines virtuelles avec les performances réseau accélérées activées. Lorsque la valeur est définie sur True sur la définition d’image, la capture des machines virtuelles qui ne prennent pas en charge les performances réseau accélérées n’est pas prise en charge. Privé, partagé direct, communauté
    DiskControllerType ["SCSI", "NVMe"], ["SCSI"] Définissez cette valeur pour utiliser le type de disque SCSI ou NVMe. Les machines virtuelles et les disques NVMe peuvent uniquement être capturés dans des définitions d’image marquées pour prendre en charge NVMe. Privé, partagé direct, communauté

    Lorsque vous spécifiez un SecurityType à l’aide du paramètre features, cela limite les fonctionnalités de sécurité activées sur la machine virtuelle. Certains types sont limités, en fonction du type de galerie dans lequel ils sont stockés :

    SecurityType Définition Pris en charge dans
    ConfidentialVMSupported Image Gen2 générique qui ne contient pas d’objet blob VMGS. Une machine virtuelle Gen2 ou confidentielle peut être créée à partir de ce type d’image. Privé, partagé direct, communauté
    Machine virtuelle confidentielle Seules des machines virtuelles confidentielles peuvent être créées à partir de ce type d’image. Privées
    TrustedLaunchSupported Image Gen2 générique qui ne contient pas l’objet blob VMGS. Une machine virtuelle Gen2 ou TrustedLaunch peut être créée à partir de ce type d’image. Privé, partagé direct, communauté
    TrustedLaunch Seule une machine virtuelle TrustedLaunch peut être créée à partir de ce type d’image. Privées
    TrustedLaunchAndConfidentialVmSupported Image Gen2 générique qui ne contient pas l’objet blob VMGS. Une machine virtuelle Gen2, TrustedLaunch ou confidentielle peut être créée à partir de ce type d’image. Privé, partagé direct, communauté

    Pour plus d’informations, consultez les exemple CLI pour l’ajout de fonctionnalités de définition d’image et SecurityType ou d’exemples PowerShell.

    **ConfidentialVM est uniquement pris en charge dans ses régions de disponibilité. Vous pouvez trouver les régions prises en charge ici.

Versions d’images

Une version d’image est ce que vous utilisez pour créer une machine virtuelle. Vous pouvez avoir plusieurs versions d’une image en fonction des besoins de votre environnement. Quand vous utilisez une version d’image pour créer une machine virtuelle, la version d’image est utilisée pour créer des disques pour la machine virtuelle. Les versions d’image peuvent être utilisées plusieurs fois.

Les propriétés d’une version d’image sont les suivantes :

  • Numéro de version. Il est utilisé comme nom de la version d’image. Son format est toujours : MajorVersion.MinorVersion.Patch. Si vous spécifiez d’utiliser la dernière image lors de la création d’une machine virtuelle, la dernière image est choisie en fonction de la valeur la plus élevée de MajorVersion, de MinorVersion, puis de Patch.
  • Source. La source peut être une machine virtuelle, un disque managé, une capture instantanée, une image managée ou une autre version de l’image.
  • Date de fin de vie. Indiquez la date de fin de vie de la version de l’image. Les dates de fin de vie sont fournies à titre d’information. Les utilisateurs peuvent toujours créer des machines virtuelles à partir de versions dont la date de fin de vie est dépassée.

Images généralisées et spécialisées

Il existe deux états de système d'exploitation pris en charge par Azure Compute Gallery. Généralement, les images nécessitent que la machine virtuelle utilisée pour créer l'image ait été généralisée avant de créer l'image. La généralisation est un processus qui supprime de la machine virtuelle les informations spécifiques à la machine et à l'utilisateur. Pour Linux, vous pouvez utiliser waagent-deprovision ou les paramètres -deprovision+user. Pour Windows, l’outil Sysprep est utilisé.

Les machines virtuelles spécialisées n'ont pas été soumises à un processus de suppression des informations et des comptes spécifiques aux machines. Par ailleurs, les machines virtuelles créées à partir d'images spécialisées ne sont associées à aucun osProfile. Cela signifie que les images spécialisées ont certaines limites en plus de certains avantages.

  • Les machines virtuelles et les groupes identiques créés à partir d’images spécialisées peuvent être opérationnels plus rapidement. Étant donné qu’ils sont créés à partir d’une source qui a déjà fait l’objet d’un premier démarrage, les machines virtuelles créées à partir de ces images démarrent plus rapidement.
  • Les comptes qui pourraient être utilisés pour se connecter à la machine virtuelle peuvent également être utilisés sur n'importe quelle machine virtuelle créée en utilisant l'image spécialisée créée à partir de celle-ci.
  • Les machines virtuelles porteront le nom de l'ordinateur de la machine virtuelle d’où est extraire l’image. Vous devriez renommer l’ordinateur pour éviter tout conflit.
  • Le osProfile représente la façon dont certaines informations sensibles sont transmises à la machine virtuelle, en utilisant secrets. Cela peut entraîner des problèmes lors de l'utilisation de KeyVault, WinRM et d'autres fonctionnalités qui utilisent secrets dans le osProfile. Dans certains cas, vous pouvez utiliser des identités de service managées (MSI) pour contourner ces limitations.

Mise à jour des ressources

Une fois qu’elles sont créées, vous pouvez apporter des modifications aux ressources de la galerie. Ceux-ci sont limités aux éléments suivants :

Azure Compute Gallery :

  • Description

Définition d’image :

  • Processeurs virtuels recommandés
  • Mémoire recommandée
  • Description
  • Date de fin de vie
  • ReleaseNotes

Version d’image :

  • Nombre de réplicas régionaux
  • Régions cibles
  • Exclure de la plus récente
  • Date de fin de vie

Partage

Il existe trois façons principales de partager des images dans une galerie Azure Compute Gallery, selon les personnes avec lesquelles vous souhaitez partager :

À partager avec : Personnes Groupes Principal de service Tous les utilisateurs d’un locataire (ou) d’un abonnement spécifique Publiquement avec tous les utilisateurs dans Azure
Partage RBAC Oui Oui Oui No Non
RBAC + Galerie partagée directe Oui Oui Oui Oui Non
RBAC + Galerie de la communauté Oui Oui Oui No Oui

Autorisations RBAC nécessaires pour créer une image ACG :

Les images ACG peuvent être créées par des utilisateurs à partir de différentes sources, notamment des machines virtuelles, des disques/instantanés et des disques durs virtuels. La section décrit les différentes autorisations utilisateur nécessaires à la création d’une image Azure Compute Gallery. Les identités sans les autorisations nécessaires ne pourront pas créer d’images ACG.

  • Les utilisateurs nécessitent une autorisation en écriture sur la machine virtuelle pour créer une version d’image ACG.
  • Pour le SDK Azure, utilisez la propriété properties.storageProfile.source.virtualMachineId. Cette propriété nécessite l’API version 2023-07-03 ou version 1.4.0 (ou ultérieure) du SDK .NET
Type de source Autorisations requises
Machine virtuelle Écrire
Disque/instantané Écrire
VHD Écriture (listKeys)
Image managée Lire
Image de galerie Lire

Consulter notre documentation pour plus d’informations sur les rôles intégrés Azure pour accorder des autorisations RBAC

Réplication peu profonde

Lorsque vous créez une version d’image, vous pouvez définir le mode de réplication sur peu profond pour le développement et le test. La réplication peu profonde ignore la copie de l’image ; ainsi, la version de l’image est prête plus rapidement. Toutefois, cela signifie également que vous ne pouvez pas déployer un grand nombre de machines virtuelles à partir de cette version d’image. Cela est similaire à la façon dont les anciennes images managées fonctionnaient.

La réplication peu profonde peut également être utile si vous avez des images volumineuses (jusqu’à 32 To) qui ne sont pas fréquemment déployées. Étant donné que l’image source n’est pas copiée, des disques plus volumineux peuvent être utilisés. Mais ils ne peuvent pas également être utilisés pour déployer un grand nombre de machines virtuelles simultanément.

Pour définir une image pour la réplication peu profonde, utilisez --replication-mode Shallow avec Azure CLI.

Prise en charge des Kits de développement logiciel (SDK)

Les SDK suivants prennent en charge la création de galeries Azure Compute Gallery :

Modèles

Vous pouvez créer la ressource Azure Compute Gallery en utilisant des modèles. Plusieurs modèles de démarrage rapide sont disponibles :

Forum aux questions

Pour lister toutes les ressources Azure Compute Gallery de différents abonnements auxquels vous avez accès sur le portail Azure, suivez les étapes ci-dessous :

  1. Ouvrez le portail Azure.
  2. Faites défiler la page vers le bas, puis sélectionnez Toutes les ressources.
  3. Sélectionnez tous les abonnements dont vous voulez lister l’ensemble des ressources.
  4. Recherchez des ressources de type Azure Compute Gallery.

Pour lister toutes les ressources Azure Compute Gallery des différents abonnements sur lesquels vous avez des autorisations, utilisez la commande suivante dans Azure CLI :

   az account list -otsv --query "[].id" | xargs -n 1 az sig list --subscription

Oui. Il existe 3 scénarios basés sur les types d’images.

Scénario 1 : Si vous avez une image managée, vous pouvez créer une définition et une version de cette image. Pour plus d'informations, consultez Créer une définition d'image et une version d'image.

Scénario 2 : Si vous avez une image non managée, vous pouvez créer une image managée de l’image, puis créer une définition et une version de cette image.

Scénario 3 : Si vous avez un VHD dans votre système de fichiers local, vous devez le charger sur une image managée pour pouvoir ensuite créer une définition et une version de cette image.

Puis-je créer une version d’image à partir d’un disque spécialisé ?

Oui, vous pouvez créer une machine virtuelle à partir d'une image spécialisée.

Non, vous ne pouvez pas déplacer la ressource de galerie d’images vers un autre abonnement. Vous pouvez répliquer les versions de l'image se trouvant dans la galerie vers d'autres régions ou copier une image d'une autre galerie.

Puis-je répliquer mes versions d’image entre des clouds tels qu’Azure géré par 21Vianet, Azure Allemagne et Azure Government ?

Non, vous ne pouvez pas répliquer les versions d’image entre clouds.

Puis-je répliquer mes versions d’image entre abonnements ?

Non, vous pouvez répliquer les versions d’image entre régions dans un abonnement et les utiliser dans d’autres abonnements au moyen de RBAC.

Puis-je partager des versions d’image entre locataires Microsoft Entra ?

Oui, vous pouvez utiliser le contrôle d’accès en fonction du rôle (RBAC) pour partager des images avec des individus se trouvant sur différents locataires. Si vous voulez effectuer un partage à grande échelle, consultez la section relative au partage d’images de galerie sur plusieurs locataires Azure via PowerShell ou la CLI.

Combien de temps faut-il pour répliquer des versions d’image sur les régions cibles ?

Le temps de réplication des versions d’image dépend entièrement de la taille de l’image et du nombre de régions cibles. Toutefois, une bonne pratique est de limiter la taille de l’image et de rapprocher les régions source et cible pour obtenir de meilleurs résultats. Vous pouvez vérifier l’état de la réplication à l’aide de l’indicateur -ReplicationStatus.

Quelle est la différence entre la région source et la région cible ?

La région source est la région dans laquelle votre version d’image est créée et les régions cibles sont les régions dans lesquelles vous stockez une copie de votre version d’image. Pour chaque version d’image, vous pouvez avoir seulement une région source. Par ailleurs, vérifiez que vous passez l’emplacement de la région source comme l’une des régions cibles quand vous créez une version d’image.

Comment spécifier la région source pendant la création de la version d’image ?

Quand vous créez une version d’image, vous pouvez utiliser l’argument --location dans l’interface CLI et le paramètre -Location dans PowerShell pour spécifier la région source. Vérifiez que l’image managée que vous utilisez comme image de base pour créer la version d’image se trouve dans le même emplacement que celui dans lequel vous voulez créer la version d’image. Par ailleurs, vérifiez que vous passez l’emplacement de la région source comme l’une des régions cibles quand vous créez une version d’image.

Comment spécifier le nombre de réplicas de version d’image à créer dans chaque région ?

Deux méthodes vous permettent de spécifier le nombre de réplicas de version d’image à créer dans chaque région :

  1. Le nombre de réplicas régionaux, qui spécifie le nombre de réplicas que vous voulez créer par région.
  2. Le nombre de réplicas communs, qui est le nombre par défaut par région si le nombre de réplicas régionaux n’est pas spécifié.

Pour spécifier le nombre de réplicas régionaux, indiquez l’emplacement ainsi que le nombre de réplicas à créer dans cette région : « South Central US=2».

Si le nombre de réplicas régionaux n’est pas spécifié avec chaque emplacement, le nombre de réplicas par défaut est le nombre de réplicas communs que vous avez spécifié.

Pour spécifier le nombre de réplicas communs dans Azure CLI, utilisez l’argument --replica-count dans la commande az sig image-version create.

Oui, c’est possible. Cependant, nous vous encourageons à conserver au même endroit le groupe de ressources, la galerie, la définition d’image et la version d’image.

L’utilisation du service Azure Compute Gallery n’engendre aucun coût, à l’exception des coûts de stockage des versions d’image et des coûts de sortie de réseau pour la réplication des versions d’image de la région source vers les régions cibles.

Quelle version de l’API dois-je utiliser lors de la création d’images ?

Pour utiliser des galeries, des définitions d’image et des versions d’image, nous vous recommandons d’utiliser la version d’API 2018-06-01. ZRS requiert la version 2019-03-01 ou plus.

Quelle version d’API utiliser pour créer une machine virtuelle ou un groupe de machines virtuelles identiques à partir de la version d’image ?

Pour déployer une machine virtuelle ou un groupe de machines virtuelles identiques à partir d’une version d’image, nous vous recommandons d’utiliser la version d’API 2018-04-01 ou une version ultérieure.

Oui, vous pouvez mettre à jour la référence d’une image de groupe identique en passant d’une image managée à une image Azure Compute Gallery, à condition que le type de système d’exploitation, la génération Hyper-V et la disposition du disque de données soient cohérents entre les images.

Comment puis-je mettre à jour mon code pour utiliser la nouvelle propriété et garantir que les autorisations sont accordées avec précision lors de la création de l'image de la VM ?

Pour le champ ID de machine virtuelle, utilisez le champ VirtualMachineId sous GallerySource (GalleryImageVersionStorageProfile.GallerySource.VirtualMachineID). La nouvelle propriété nécessite la version API 2023-07-03 ou la version 1.4.0 (ou supérieure) du SDK .NET

StorageProfile = new GalleryImageVersionStorageProfile()
            {
                GallerySource = new GalleryArtifactVersionFullSource()
                {
                    VirtualMachineId = new ResourceIdentifier(virtualMachineId),
                }
            },

Pour le VHD comme source, utilisez le champ StorageAccountID sous GallerySource sous OSDiskImage ou l’image du disque de données (GalleryImageVersionStorageProfile.OSDiskImage.GallerySource.StorageAccountId). La nouvelle propriété nécessite la version API 2022-03-03

StorageProfile = new GalleryImageVersionStorageProfile()
            {
                OSDiskImage = new GalleryOSDiskImage()
                {
                    GallerySource = new GalleryDiskImageSource()
                    {
                        StorageAccountId = new ResourceIdentifier(storageAccountId),
                        Uri = new Uri(blobUri),
                    }
                }
            },

Résolution des problèmes

Si vous rencontrez des problèmes lors de l’exécution d’opérations sur les ressources de la galerie, consultez la liste des erreurs courantes dans le guide de résolution des problèmes.

En outre, vous pouvez publier et étiqueter vos questions avec azure-virtual-machines-images sur Questions et réponses.

Étapes suivantes

Découvrez comment déployer des images avec Azure Compute Gallery.