Tutoriel : Créer et utiliser une image personnalisée pour des groupes de machines virtuelles identiques avec Azure CLI

Lorsque vous créez un groupe identique, vous spécifiez une image à utiliser lors du déploiement des instances de machine virtuelle. Pour réduire le nombre de tâches une fois que les instances de machine virtuelle sont déployées, vous pouvez utiliser une image de machine virtuelle personnalisée. Cette image de machine virtuelle personnalisée inclut les configurations ou installations des applications requises. Toutes les instances de machine virtuelle créées dans le groupe identique utilisent l’image de machine virtuelle personnalisée et sont prêtes à répondre au trafic des applications. Ce didacticiel vous montre comment effectuer les opérations suivantes :

  • Créer une instance Azure Compute Gallery
  • Créer une définition d’image spécialisée
  • Créer une version d’image
  • Créer un groupe identique à partir d’une image spécialisée
  • Partager une galerie d’images

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Prérequis

  • Cet article nécessite la version 2.4.0 ou ultérieure d’Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.

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 les rendre disponibles et les personnes avec lesquelles vous voulez les partager.

Créer et configurer une machine virtuelle source

Commencez par créer un groupe de ressource avec az group create, puis créez une machine virtuelle avec az vm create. Cette machine virtuelle est ensuite utilisée comme source de l’image. L’exemple suivant crée une machine virtuelle nommée myVM dans le groupe de ressources nommé myResourceGroup :

az group create --name myResourceGroup --location eastus

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image <SKU image> \
  --admin-username azureuser \
  --generate-ssh-keys

Important

L’ID de votre machine virtuelle est affichée dans la sortie de la commande az vm create. Copiez-le à un emplacement sûr pour pouvoir l’utiliser plus loin dans ce tutoriel.

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

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 d’images à l’aide de 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

Créer une définition d’image

Les définitions d’image créent un regroupement logique des images. Elles sont utilisées pour gérer les informations sur les 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.

Assurez-vous que le type de votre définition d’image est approprié. Si vous avez généralisé la machine virtuelle (à l’aide de Sysprep pour Windows ou de waagent -deprovision pour Linux), vous devez créer une définition d’image généralisée à l’aide de la commande --os-state generalized. Si vous souhaitez utiliser la machine virtuelle sans supprimer de comptes d’utilisateur, créez une définition d’image spécialisée à l’aide de la commande --os-state specialized.

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. Pour créer une définition pour des images utilisant un système d’exploitation Windows, utilisez --os-type Windows.

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

Important

L’ID de votre définition d’image est indiqué dans la sortie de la commande. Copiez-le à un emplacement sûr pour pouvoir l’utiliser plus loin dans ce tutoriel.

Créer la version de l’image

Créez une version d’image à partir de la machine virtuelle à l’aide de la commande az image gallery create-image-version.

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 et nous allons créer un réplica dans la région USA Centre Sud et un réplica dans la région USA Est 2. 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 "southcentralus=1" "eastus=1" \
   --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éer un groupe identique à partir de l’image

Important

À compter de novembre 2023, les groupes de machines virtuelles identiques créés à l’aide de PowerShell et d’Azure CLI utilisent par défaut le mode d’orchestration flexible si aucun mode d’orchestration n’est spécifié. Pour plus d’informations sur ce changement et les actions que vous devez entreprendre, consultez l’article Changement cassant pour les clients VMSS PowerShell/CLI – Hub Communauté Microsoft

Créez un groupe identique à partir de l’image spécialisée à l’aide de la commande az vmss create.

Créez le groupe identique avec la commande az vmss create, en spécifiant le paramètre --specialized pour indiquer que l’image est une image spécialisée.

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

Créez un groupe identique nommé myScaleSet avec la dernière version de l’image myImageDefinition que nous avons créée plus tôt.

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

La création et la configuration des l’ensemble des ressources et des machines virtuelles du groupe identique prennent quelques minutes.

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 az role assignment create pour donner aux utilisateurs un accès à la galerie d’images partagées. 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.

Nettoyer les ressources

Pour supprimer votre groupe identique et les ressources supplémentaires, supprimez le groupe de ressources et toutes ses ressources avec az group delete. Le paramètre --no-wait retourne le contrôle à l’invite de commandes sans attendre que l’opération se termine. Le paramètre --yes confirme que vous souhaitez supprimer les ressources sans passer par une invite supplémentaire à cette fin.

az group delete --name myResourceGroup --no-wait --yes

Étapes suivantes

Dans ce tutoriel, vous avez appris à créer et utiliser une image de machine virtuelle personnalisée pour vos groupes identiques avec Azure CLI :

  • Créer une instance Azure Compute Gallery
  • Créer une définition d’image spécialisée
  • Créer une version d’image
  • Créer un groupe identique à partir d’une image spécialisée
  • Partager une galerie d’images

Passez au didacticiel suivant pour apprendre à déployer des applications dans votre groupe identique.