Tutoriel : Créer une image personnalisée d’une machine virtuelle Azure avec Azure CLI

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

Les images personnalisées sont comme des images de la Place de marché, sauf que vous les créez vous-même. Les images personnalisées peuvent être utilisées pour amorcer des configurations comme le préchargement des applications, les configurations d’application et d’autres configurations de système d’exploitation. Ce didacticiel explique comment créer votre propre image personnalisée d’une machine virtuelle Azure. Vous allez apprendre à effectuer les actions suivantes :

  • Créer une galerie Azure Compute Gallery (anciennement appelée Shared Image Gallery)
  • Créer une définition d’image
  • Créer une version d’image
  • Créer une machine virtuelle à partir d’une image
  • Partager une galerie

Ce tutoriel utilise l’interface CLI disponible dans Azure Cloud Shell, qui est constamment mise à jour vers la dernière version. Pour ouvrir Cloud Shell, sélectionnez Essayer en haut d’un bloc de code.

Si vous choisissez d’installer et d’utiliser l’interface CLI localement, ce tutoriel nécessite l’exécution d’Azure CLI version 2.35.0 ou ultérieure. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.

Vue d’ensemble

Une galerie Azure Compute Gallery simplifie considérablement le partage d’images personnalisées dans votre organisation. Les images personnalisées sont comme des images de la Place de marché, sauf que vous les créez vous-même. Les images personnalisées peuvent être utilisées pour amorcer des configurations comme le préchargement des applications, les configurations d’application et d’autres configurations de système d’exploitation.

Azure Compute Gallery vous permet de partager vos images de machines virtuelles personnalisées avec d’autres utilisateurs. Choisissez les images à partager, les régions dans lesquelles vous souhaitez qu’elles soient disponibles ainsi que les personnes avec lesquelles vous souhaitez les partager.

La fonctionnalité Azure Compute Gallery présente plusieurs types de ressources :

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, un instantané ou une version d’image dans une autre galerie.
Galerie Tout comme la Place de marché Azure, une galerie est un dépôt permettant de gérer et partager des images et des applications VM, 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 en interne. 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 d’une définition de 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.

Avant de commencer

Les étapes suivantes montrent comment transformer une machine virtuelle existante en une image personnalisée réutilisable, qui vous permet de créer d’autres instances de machine virtuelle.

Pour exécuter l’exemple dans ce didacticiel, vous devez disposer d’une machine virtuelle. Si nécessaire, vous pouvez consulter le guide de démarrage rapide de l’interface CLI pour créer une machine virtuelle à utiliser pour ce tutoriel. Au cours du tutoriel, remplacez les noms des ressources si nécessaire.

Lancement d’Azure Cloud Shell

Azure Cloud Shell est un interpréteur de commandes interactif et gratuit que vous pouvez utiliser pour exécuter les étapes de cet article. Il contient des outils Azure courants préinstallés et configurés pour être utilisés avec votre compte.

Pour ouvrir Cloud Shell, sélectionnez simplement Essayer en haut à droite d’un bloc de code. Vous pouvez aussi lancer Cloud Shell dans un onglet distinct du navigateur en accédant à https://shell.azure.com/powershell. Sélectionnez Copier pour copier les blocs de code, collez-les dans Cloud Shell, puis appuyez sur Entrée pour les exécuter.

Une galerie est la principale ressource utilisée pour permettre le partage d’images.

Les caractères autorisés pour le nom de galerie sont les lettres majuscules ou minuscules, les chiffres et les points. Le nom de galerie ne peut pas contenir de tirets. Les noms de galerie doivent être uniques dans votre abonnement.

Créez une galerie à l’aide de la commande az sig create. L’exemple suivant crée un groupe de ressources nommé myGalleryRG dans USA Est et une galerie nommée myGallery.

az group create --name myGalleryRG --location eastus
az sig create --resource-group myGalleryRG --gallery-name myGallery

Obtenir des informations sur la machine virtuelle

Vous pouvez obtenir la liste des machines virtuelles disponibles à l’aide de la commande az vm list.

az vm list --output table

Une fois que vous connaissez le nom de la machine virtuelle et le groupe de ressources dans lequel elle se trouve, récupérez l’ID de la machine virtuelle à l’aide de la commande az vm get-instance-view.

az vm get-instance-view -g MyResourceGroup -n MyVm --query id

Copiez l’ID de votre machine virtuelle pour une utilisation ultérieure.

Créer une définition d’image

Les définitions d’image créent un regroupement logique des images. Elles permettent de gérer les informations relatives aux versions d’image créées au sein de celles-ci.

Les noms de définition d’image peuvent contenir des lettres majuscules ou minuscules, des chiffres, des tirets et des points.

Pour plus d’informations sur les valeurs que vous pouvez spécifier pour une définition d’image, consultez Définitions d’image.

Créez une définition d’image dans la galerie avec la commande az sig image-definition create.

Dans cet exemple, la définition d’image se nomme myImageDefinition et est destinée à une image de système d’exploitation Linux spécialisée.

az sig image-definition create \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --publisher myPublisher \
   --offer myOffer \
   --sku mySKU \
   --os-type Linux \
   --os-state specialized

Copiez l’ID de la définition d’image à partir de la sortie pour l’utiliser ultérieurement.

Créer la version de l’image

Créez une version de l’image à partir de la machine virtuelle avec az sig image-version create.

Les caractères autorisés pour la version d’image sont les nombres et les points. Les nombres doivent être un entier 32 bits. Format: MajorVersion.MinorVersion.Patch.

Dans cet exemple, la version de notre image est 1.0.0. Nous allons créer deux réplicas dans la région USA Centre-Ouest, un réplica dans la région USA Centre Sud et un réplica dans la région USA Est 2 à l’aide du stockage redondant interzone. Les régions de réplication doivent inclure la région dans laquelle se trouve la machine virtuelle source.

Remplacez la valeur de --managed-image dans cet exemple par l’ID de votre machine virtuelle récupéré à l’étape précédente.

az sig image-version create \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --gallery-image-version 1.0.0 \
   --target-regions "westcentralus" "southcentralus=1" "eastus=1=standard_zrs" \
   --replica-count 2 \
   --managed-image "/subscriptions/<Subscription ID>/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM"

Notes

Vous devez attendre que la version d’image soit totalement intégrée et répliquée avant de pouvoir utiliser la même image managée pour créer une autre version d’image.

Vous pouvez également stocker votre image dans le Stockage Premium, en ajoutant --storage-account-type premium_lrs, ou dans le stockage redondant interzone, en ajoutant --storage-account-type standard_zrs, quand vous créez la version de l’image.

Création de la machine virtuelle

Créez la machine virtuelle à l’aide de la commande az vm create, en spécifiant le paramètre --specialized pour indiquer qu’il s’agit d’une image spécialisée.

Utilisez l’ID de définition d’image pour --image afin de créer la machine virtuelle à partir de la version la plus récente de l’image disponible. Vous pouvez également créer la machine virtuelle à partir d’une version spécifique en fournissant l’ID de version de l’image pour --image.

Dans cet exemple, nous créons une machine virtuelle à partir de la dernière version de l’image myImageDefinition.

az group create --name myResourceGroup --location eastus
az vm create --resource-group myResourceGroup \
    --name myVM2 \
    --image "/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition" \
    --specialized

Vous pouvez partager des images entre abonnements à l’aide du contrôle d’accès en fonction du rôle Azure (Azure RBAC). Vous pouvez partager des images au niveau de la galerie, de la définition d’image ou de la version d’image. Tout utilisateur disposant d’autorisations de lecture sur une version d’image, même dans plusieurs abonnements, peut déployer une machine virtuelle à partir de la version d’image.

Nous vous recommandons de partager l’accès avec d’autres utilisateurs au niveau de la galerie. Pour obtenir l’ID d’objet de votre galerie, utilisez az sig show.

az sig show \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --query id

Utilisez l’ID d’objet en tant qu’étendue, ainsi qu’une adresse e-mail et la commande az role assignment create pour donner aux utilisateurs l’accès à la galerie Azure Compute Gallery. Remplacez <email-address> et <gallery iD> par vos propres informations.

az role assignment create \
   --role "Reader" \
   --assignee <email address> \
   --scope <gallery ID>

Pour plus d’informations sur la façon de partager des ressources à l’aide d’Azure RBAC, consultez Ajouter ou supprimer des attributions de rôle Azure à l’aide d’Azure CLI.

Azure Image Builder

Azure propose également un service, basé sur Packer, nommé Azure VM Image Builder. Décrivez vos personnalisations dans un modèle, qui va gérer la création de l’image.

Étapes suivantes

Ce didacticiel vous montré comment créer une image de machine virtuelle. Vous avez appris à :

  • Créer une instance Azure Compute Gallery
  • Créer une définition d’image
  • Créer une version d’image
  • Créer une machine virtuelle à partir d’une image
  • Partager une galerie

Passez au didacticiel suivant pour en savoir plus sur les groupes de machines virtuelles identiques.