AVD Solo : Start and Stop !

Azure Virtual Desktop est souvent associé aux environnements mutualisés. Mais on oublie souvent qu’AVD propose également à des environnements individuels, comme peut aussi le faire Windows 365. Comme toujours, les produits estampillés Azure apportent de la flexibilité dans la configuration et des optimisations possibles. Par exemple, des machines virtuelles équipées de puissantes cartes graphiques.

Aujourd’hui, Azure Virtual Desktop continue d’évoluer et propose maintenant l’arrêt automatique des VMs pour les environnements individuels.

En effet, il est déjà possible depuis un certains de temps faire automatiquement démarrer la machine virtuelle AVD d’utilisateur quand celui-ci s’y connecte. Cela s’appelle le Start on connect et j’en avait déjà parlé juste ici. Bien pratique et facile à configurer, cette fonction avait pour défaut de ne jamais arrêter la VM quand l’utilisateur n’en avait plus besoin.

Rappelons-le : une machine virtuelle éteinte au niveau OS continue de coûter de l’argent car des ressources Azure lui sont toujours allouées.

Des parades existent déjà depuis quelques temps déjà, mais elles nécessitent bien souvent une configuration annexe :

J’avais d’ailleurs écrit un article sur ce sujet. Mais depuis, les choses se compliquent car certaines fonctionnalités des comptes Azure Automation vont bientôt être dépréciées…

Bref, je suis bien content que Microsoft ait rajouté cette fonctionnalité d’arrêt automatique des VMs dans Azure Virtual Desktop.

Qu’est-ce que la mise à l’échelle automatique ?

La mise à l’échelle automatique vous permet d’effectuer un scale-up ou un scale-down de vos hôtes de session de machines virtuelles dans un pool d’hôtes pour optimiser les coûts de déploiement.

Microsoft Learn

La mise à l’échelle automatique, ou autoscaling, est déjà disponible pour les environnements AVD mutualisés. Un autre article en parle juste ici.

Comme indiqué dans le titre, la grande nouveauté concerne les environnements AVD individuels. La documentation Microsoft en parle déjà : la mise à l’échelle automatique pour les pools d’hôtes individuels est actuellement en préversion.

Voici donc un petit exercice pour tester cette fonctionnalité :

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice sur Azure Virtual Desktop, il vous faudra disposer de :

  • Un tenant Microsoft
  • Une souscription Azure valide

Etape I – Déploiement de l’environnement AVD :

Pour déployer un environnement AVD, commencez par déployer un réseau virtuel Azure. Pour cela, rendez-vous dans le portail d’Azure et utilisez la barre de recherche :

Renseignez tous les champs, puis lancez la validation Azure :

Une fois la validation réussie, lancez la création de votre réseau virtuel :

Attendez environ une minute que le déploiement se termine :

Utilisez encore une fois la barre de recherche Azure pour créer votre environnement AVD :

Cliquez-ici pour créer un nouvel environnement AVD :

Renseignez tous les champs en prenant soin de choisir un type d’environnement individuel :

Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :

Renseignez les champs liés aux machines virtuelles AVD de votre environnement :

Choisissez la taille et le nombre de VMs AVD, ainsi que le réseau virtuel créé précédemment :

Dans notre environnement, une jointure des VMs à Azure Active Directory suffira. N’oubliez pas de joindre également vos VMs à Intune pour terminer cet exercice, puis cliquez sur Suivant :

Renseignez les champs pour créer un espace de travail AVD, puis lancez la validation Azure :

Une fois la validation Azure réussie, lancez la création des ressources puis attendez environ 10 minutes :

Une fois le déploiement terminé, cliquez-ici pour terminer la configuration de votre AVD :

Cochez l’option pour activer le SSO sur Azure Virtual Desktop. Cela évite de devoir s’authentifier deux fois pour arriver sur le bureau de la VM AVD :

Afin de pouvoir tester notre environnement AVD, il est nécessaire de rajouter des rôles à nos utilisateurs de test :

  • Desktop Virtualization User
  • Virtual Machine User Login

Enfin, mon environnement AVD de test nécessite d’assigner des utilisateurs aux VMs AVD. Pour cela, rendez-vous sur cet écran pour les assigner manuellement :

Comme je dispose de 2 VMs dans mon environnement AVD, j’ai assigné à chacune d’entre-elles un utilisateur de test :

Vérifiez que les machines virtuelles sont bien présentes et disponibles :

Ouvrez le client Remote Desktop, ou installez-le depuis ce lien si cela n’est pas encore le cas :

Utilisez la fonction suivante pour faire apparaître les machines AVD :

Vous pouvez répéter cette opération avec votre second utilisateur de test :

Cliquez sur l’icône de bureau à distance :

Authentifiez-vous une seconde fois pour activer la fonction SSO :

Autorisez-les connections de bureau à distance à partir de l’identité Azure AD de votre utilisateur de test :

Attendez que le bureau à distance Windows 11 s’ouvre :

Une fois la session AVD ouverte, fermez cette dernière en utilisant la déconnexion habituelle de Windows :

Votre environnement AVD est prêt et fonctionnel. Notre objectif est maintenant d’ajouter la fonction d’allumage et d’extinction automatique des VMs.

Etape II – Configuration de l’allumage et de l’extinction automatique :

Pour cela, nous devons rajouter un nouveau rôle Azure RBAC pour permettre à Azure Virtual Desktop (ou anciennement Windows Virtual Desktop) de pouvoir allumer et éteindre les VMs AVD :

Ajoutez le rôle RBAC suivant au niveau du groupe de ressources Azure contenant votre environnement AVD :

Retournez dans le menu Azure Virtual Desktop afin d’ajouter le scaling plan qui pilotera les VMs individuelles selon les besoins de connexion, puis cliquez sur Créer :

Donnez-lui un nom, placez-le dans la même région Azure que votre pool d’hôtes AVD, puis cliquez sur Suivant :

Ajoutez un ou plusieurs plannings selon vos besoins, sachant qu’une journée de la semaine ne peut être présent que dans un seul planning :

Sélectionnez les jours de la semaine correspondant à vos besoins, puis cliquez sur Suivant :

L’onglet suivant reprend le fuseau horaire du premier onglet et vous demande de renseigner les champs ci-dessous, puis de cliquer sur Suivant :

  • Heure de début : heure correspondant au début de la phase.
  • Démarrage de la VM : permet à l’utilisateur de pouvoir démarrer une VM éteinte pendant la phase. Cette option prend le pas sur la configuration renseignée dans le pool d’hôtes.
  • VMs à démarrer : propose de démarrer automatiquement des VMs si nécessaire dès le début de la phase, ou pas.
  • Paramètres de déconnexion : permet d’effectuer ou non une action après un temps donné.
  • Paramètres de fermeture de session : permet d’effectuer ou non une action après un temps donné.

Renseignez les mêmes options que pour la phase précédente, puis cliquez sur Suivant :

Renseignez les mêmes options que pour la phase précédente, puis cliquez sur Suivant :

Renseignez les mêmes options que pour la phase précédente, puis cliquez sur Ajouter :

Cliquez sur Suivant pour continuer :

Rattachez votre pool d’hôtes à la configuration en n’oubliant pas de cocher la case pour l’activer, puis cliquez ici pour lancer la validation Azure :

Une fois la validation Azure réussie, cliquez sur Créer pour valider la configuration :

Attendez quelques minutes que la configuration soit déployée :

Votre environnement individuel AVD est enfin géré par un planning de démarrage et d’arrêt automatique.

Nous allons maintenant effectuer différents tests pour voir le comportement d’Azure Virtual Desktop d’un point de vue utilisateur.

Etape III – Test de l’allumage et de l’extinction automatique :

Dans mon environnement de démonstration AVD, les machines virtuelles individuelles sont bien arrêtées.

Test A – Fermeture de la session utilisateur en Phase 1 :

A 9h22, j’ouvre un navigateur web afin de me rendre sur la page de connexion AVD. Une fois authentifié avec un utilisateur de test, j’ouvre une session de bureau à distance :

Comme la machine virtuelle affectée à cet utilisateur est arrêtée, Azure Virtual Desktop la démarre et ce message s’affiche :

Le statut de la machine virtuelle change bien dans Azure :

Une fois la machine démarrée, le message d’attente change également :

Peu après, le bureau virtuel Windows apparaît bien. Je décide donc d’effectuer une fermeture de session Windows par le menu Démarrer :

Environ 15 minutes plus tard, la machine virtuelle retrouve bien son précédent état :

Le premier test est concluant. Effectuons maintenant un second test en ne fermant pas la session AVD, mais en utilisant la croix pour simuler une déconnexion :

Test B – Déconnexion utilisateur en Phase 2 :

J’ouvre à nouveau une session de bureau à distance :

Comme la machine virtuelle affectée s’était précédemment arrêtée, Azure Virtual Desktop est obligé de la redémarrer à nouveau :

Le statut de la machine virtuelle rechange bien une nouvelle fois dans Azure :

Peu après, le bureau virtuel Windows apparaît bien. Je décide donc déconnexion de la session par la croix, en haut de la fenêtre AVD :

La session est bien marquée comme déconnectée dans l’écran de contrôle du pool d’hôtes AVD :

A 10h56, la VM est déjà éteinte depuis quelques temps :

Cette information est confirmée par le journal d’audit de la machine virtuelle :

Les fonctions de déconnexion de l’utilisateur et de fermeture de session sont bien prises en compte dans le processus d’arrêt des machines virtuelles par Azure Virtual Desktop.

Prenons maintenant le temps de vérifier le respect des paramétrages renseignés dans la configuration.

Test C – Fermeture de la session utilisateur en Phase 3 :

A 11h01, j’ouvre à nouvelle fois une session Windows :

Encore une fois, Azure Virtual Desktop est obligé de redémarrer la machine virtuelle de l’utilisateur :

Le statut de la machine virtuelle rechange bien une nouvelle fois dans Azure :

Je décide donc d’effectuer à nouveau une fermeture de session Windows par le menu Démarrer :

A 11h25, soit exactement 20 minutes après la fermeture de session, la machine virtuelle AVD change de statut pour s’éteindre :

Cela confirme bien le paramétrage de temps renseigné dans cette phase :

Je décide de continuer mon test en vérifiant mon raisonnement en phase 4, dans laquelle j’ai configuré un arrêt de la VM seulement 5 minutes après la fermeture ou déconnexion de la session.

Test D – Fermeture de la session utilisateur en Phase 4 :

A 12h01, j’ouvre à nouvelle fois une session Windows :

Encore une fois, Azure Virtual Desktop est obligé de redémarrer la machine virtuelle de l’utilisateur :

Le statut de la machine virtuelle rechange bien une nouvelle fois dans Azure :

Je décide donc d’effectuer à nouveau une fermeture de session Windows par le menu Démarrer :

A 12h08, soit exactement 5 minutes après la fermeture de session, la machine virtuelle AVD change de statut pour s’éteindre à nouveau :

Cela confirme bien le respect du paramétrage selon la phase dans laquelle l’utilisateur se trouve :

Le paramétrage de démarrage et d’arrêt des machines virtuelles individuelles AVD fonctionne bien.

Afin d’aller plus loin dans le test, je décide d’y intégrer une session de déconnexion des sessions inactives, passé un certain temps.

Pour cela, je vais utiliser Intune pour déployer une police de configuration Windows sur les sessions de bureau à distances inactives.

Etape IV – Configuration log off Windows via Intune :

Afin de déployer une configuration Intune, démarrez les machines virtuelles AVD via la fonction suivante :

Sur la page d’Azure AD, créez un nouveau groupe et ajoutez-y les machines virtuelles AVD :

Rendez-vous dans la console Intune afin de créer un nouveau profil de configuration Windows comme ceci :

Choisissez le type de profil suivant, puis cliquez sur Créer :

Nommez votre profil de configuration, puis cliquez sur Suivant :

A droite, recherchez l’option suivante afin de l’ajouter et de la configurer sur la partie gauche de l’écran, puis cliquez sur Suivant :

Les Tags ne sont pas utilisés dans notre test, cliquez sur Suivant :

Ajoutez le groupe précédemment créé et contenant les machines virtuelles AVD, puis cliquez sur Suivant :

Vérifiez une dernière fois les options de votre profil de configuration, puis cliquez sur Créer :

Attendez environ 15-30 minutes que le profil de configuration soit bien déployée sur vos VMs AVD :

Ma configuration Intune et maintenant en place. Maintenant, nous allons pouvoir tester la combinaison des deux configurations.

Test E – Combinaison AVD + Intune :

Rouvrez une nouvelle fois une session AVD :

Comme la machine virtuelle AVD est déjà démarrée, la session s’ouvre bien plus rapidement :

Environ 15 minutes plus tard et sans avoir rien fait, un premier message d’avertissement apparaît sur la session AVD m’indiquant que la session sera déconnecté dans environ 2 minutes :

Environ 2 minutes plus tard et n’ayant toujours rien touché, le message suivant apparaît :

Là encore, la session est bien marquée comme déconnectée dans l’écran de contrôle du pool d’hôtes AVD :

Environ 5 minutes après la déconnexion de la session, la machine virtuelle AVD change encore de statut pour s’éteindre une nouvelle fois :

Cette dernière démonstration montre bien la combinaison habille entre la nouvelle fonctionnalité AVD et la configuration Windows installée via une police de configuration Intune.

Conclusion :

Comme toujours, les nouveautés sur Azure Virtual Desktop font plaisir. Elles sont pratiques et vous ferons gagner du temps dans la configuration et dans la mise en place.

Voici d’ailleurs quelques une des dernières nouveautés AVD que j’ai pu tester récemment :

Bonne lecture 😎

Azure Update Management Center

Dans la même veine que la gestion des mots de passe, les cycles de mises à jour Cloud ou sur site incombent aux équipes IT de façon régulière. Azure continue d’automatiser les choses depuis de nombreuses années, et les mises à jour des VMs en fait également partie. Avec Azure Update Management Center v2, Microsoft pourrait bien y parvenir.

Comme beaucoup de services prénommés Center et récemment créés par Microsoft, ces derniers apportent de l’unification, de la simplification et de l’automatisation de traitements impactant une ou plusieurs ressources Azure.

Le centre de gestion des mises à jour (préversion) est un service unifié qui permet de gérer et de régir les mises à jour pour toutes vos machines. Vous pouvez surveiller la conformité des mises à jour Windows et Linux sur vos déploiements dans Azure, localement et sur les autres plateformes cloud à partir d’un seul tableau de bord. De plus, vous pouvez utiliser le centre de gestion des mises à jour (préversion) pour effectuer des mises à jour en temps réel ou les planifier dans une fenêtre de maintenance définie.

Microsoft Learn

En deux mots, les principales caractéristiques d’Azure Update Management Center sont :

  • Qu’il ne nécessite pas de déploiements annexes (Compte Automation, Log Analytics workspace, …)
  • Qu’il est disponible gratuitement
  • Qu’il apporte une vue synthétique sur le périmètre des mises à jour OS (VM Azure, VMSS, Azure Arc, …)

D’un seul coup d’œil, vous serez capables de visualiser les points suivants :

  • Les machines virtuelles présentes et leur statut
  • Les mises à jour à venir via des assessments automatiques
  • L’historique des mises jour installées ou échouées
  • Les paramètres des fenêtres de mises à jour

Voici une copie d’écran de la vue d‘Azure Update Management Center :

L’outil est encore en préversion à l’heure où ces lignes sont écrites. Mais cela ne vous empêchera pas de commencer à l’utiliser sur ou une plusieurs de vos VMs Azure.

Cette vidéo en français est très intéressante afin de vous faire une première idée :

Comment fonctionne Azure Update Management Center ?

Cette fois, Microsoft a conçu les choses au plus simple, le système repose uniquement sur deux étapes :

  • L’assessment qui scan et détermine les mises à jour disponibles. Il est configurable via un Police Azure ou via une configuration VM par VM
  • La méthode d’orchestration qui appliquera les mises à jour selon une méthode précise et convenu VM par VM ou globalement

Quelles sont les méthodes d’orchestration disponibles ?

Microsoft les détaille juste ici, dont voici l’extrait :

  • Planifications gérées par le client (préversion) : permet de planifier la mise à jour corrective sur vos machines virtuelles existantes. La nouvelle option d’orchestration des correctifs active les deux propriétés de machine virtuelle : Mode patch = orchestré par Azure et BypassPlatformSafetyChecksOnUserSchedule = TRUE en votre nom après avoir reçu votre consentement.
  • Déploiement sécurisé géré par Azure : pour un groupe de machines virtuelles faisant l’objet d’une mise à jour, la plateforme Azure orchestre les mises à jour. La machine virtuelle est définie sur la mise à jour corrective automatique de l’invité de machine virtuelle. (c’est-à-dire), le mode correctif est AutomaticByPlatform.
  • Automatique par le système d’exploitation : la machine est automatiquement mise à jour par le système d’exploitation.
  • Image par défaut : pour les machines Linux, la configuration de mise à jour corrective par défaut est utilisée.
  • Manuel : vous contrôlez l’application de correctifs sur une machine en appliquant manuellement des correctifs au sein de la machine. Dans ce mode, les mises à jour automatiques sont désactivées pour le système d’exploitation Windows.

Afin de vous faire une meilleure idée de la solution, je vous propose un petit exercice sur plusieurs machines virtuelles Azure :

Quels sont les prérequis pour tester Azure Update Management Center ?

Pour réaliser cet exercice sur Azure Update Management Center, il vous faudra disposer d’une souscription Azure valide.

Dans notre exercice, nous allons créer plusieurs machines virtuelles, utilisant différents OS, versions et méthodes d’orchestration des mises à jour. Ces essais vont nous permettre d’en savoir un peu plus sur la gestion des mises à jour via Azure Update Management Center.

Commençons par créer nos machines virtuelles de test sure Azure.

Etape I – Création des machines virtuelles Azure :

Pour cela, rendez-vous dans le portail d’Azure et utilisez la barre de recherche :

Cliquez-ici pour créer la première machine virtuelle :

Sur ce premier onglet, renseignez toutes les informations de base, puis choisissez l’image OS suivante – Windows Server 2022 Datacenter: Azure Edition x64 Gen2 :

Renseignez la taille et les identifiants du compte administrateur, puis cliquez sur Suivant :

Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :

Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :

Retirez la fonction d’arrêt automatique de la VM :

Modifiez la configuration d’orchestration comme ceci, puis lancez la validation Azure :

Une fois la validation réussie, lancez la création des ressources Azure :

Attendez environ deux minutes, puis cliquez-ici pour créer une seconde machine virtuelle :

Conservez les mêmes options à l’exception de l’OS – Ubuntu Server 20.04 LTS – x64 Gen2 :

Gardez les options de sécurité SSH de base, puis cliquez sur Suivant :

Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :

Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :

Retirez la fonction d’arrêt automatique, modifiez la configuration d’orchestration comme ceci, puis lancez la validation Azure :

Une fois la validation réussie, lancez la création des ressources Azure :

Validez le téléchargement de la paire de clefs SSH :

Attendez environ deux minutes, puis cliquez-ici pour créer une troisième machine virtuelle :

Conservez les mêmes options à l’exception de l’OS – Windows Server 2022 Datacenter: Azure Edition Hotpach -x64 Gen2 :

Renseignez la taille et les identifiants du compet administrateur, puis cliquez sur Suivant :

Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :

Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :

Retirez la fonction d’arrêt automatique, modifiez la configuration d’orchestration comme ceci, puis lancez la validation Azure :

Une fois la validation réussie, lancez la création des ressources Azure :

Attendez que le déploiement de la 3ème machine virtuelle se termine :

Nos machines virtuelles de test sont maintenant en place. Nous allons pouvoir tester différentes fonctions d’Azure Update Management Center. La première tâche va consister à mettre en place l’assessment périodique.

Etape II – Configuration de l’assessment périodique :

Pour cela, utilisez la barre de recherche, puis sélectionnez Azure Update Management Center :

Vérifiez la présence des 3 machines virtuelles créées précédemment ainsi que l’absence de données sur les mises à jour disponibles :

Afin de récolter ces données, nous allons mettre en place l’assessment périodique via une police d’Azure. Pour cela cliquez sur le lien ci-dessous :

Choisissez Azure Policy, puis cliquez sur OK :

Sélectionnez cette définition de police dans la liste ci-dessous :

Cliquez-ici afin d’assigner la définition à votre souscription Azure :

Choisissez votre souscription Azure, et si besoin le groupe de ressources, puis lancez la validation Azure :

Lancez l’assignation de la police Azure :

Vérifiez la bonne assignation à votre souscription Azure dans le menu suivant :

Malgré que l’assessment dû à la police Azure n’ait pas encore remonté d’informations, des mises à jour sont déjà marquées comme disponibles sur la machine virtuelle sous orchestration Azure Managed – Safe Deployment :

Quelques minutes et un rafraichissement plus tard, l’assessment périodique commence à remonter des mises à jour dans le tableau ci-dessous :

Encore un rafraichissement plus tard, celui-ci continu son chemin et remonte les mises à jour disponibles sur nos différentes VMs :

La gestion des mises à jour de la VM Linux a été configurée comme étant en Image par défaut (il s’agit donc de la méthode standard pour l’OS Linux). Vous retrouvez d’ailleurs la méthode d’orchtestration choisie directement dans le template de la VM :

Avant de nous focaliser sur la partie mise à jour, nous allons nous intéresser à la partie assessment.

Nous pouvons aussi configurer l’assessment périodique des mises à jour depuis Azure Update Management Center sans passer par une police Azure :

Activez l’assessment périodique sur votre VM Linux, puis sauvegardez :

Cette information modifie la variable suivante dans le template de votre VM :

La valeur change alors à Yes comme ceci :

Pour accélérer les choses, il est aussi possible de lancer une vérification des mises à jour :

Cliquez-ici pour démarrer le traitement :

Une notification apparaît alors :

Et le statut de la VM change également :

Eventuellement, des mises à jour apparaissent :

La gestion de la vérification des mises à jour Windows ou Linux est maintenant plus clair. Nous allons maintenant prendre le temps de mieux comprendre et gérer les méthodes pour orchestrer l’installation des mises à jour.

Etape III – Configuration de la méthode de mise à jour :

Comme annoncé plus haut, plusieurs gestions de l’orchestration des mises à jour sont possibles. La méthode retenue est présente dans le template de la machine virtuelle.

Celle-ci néanmoins modifiable, en modifiant le template ou via Azure Update Management Center.

Pour cela, sélectionnez les deux VMs ci-dessous, puis cliquez sur Mise à jour des paramètres :

Confirmez votre choix en cliquant ici :

Pour les deux VMs, choisissez la méthode d’orchestration des mises à jour suivante : Planifications gérées par le client (préversion), puis cliquer sur Sauvegarder :

Cliquez-ici pour mettre en place de votre fenêtre des mises à jour :

Définissez toute la configuration de base :

Choisissez la fréquence de la fenêtre selon vos propres règles :

Une fois la validation réussie, lancez la création de votre configuration de maintenance :

Attendez environ une minute :

Il ne reste qu’à attendre la prochaine fenêtre pour constater l’installation des mises à jour :

L’installation des mises à jour est programmée pour deux VMs sur trois. Nous allons maintenant voir les différentes possibilités d’orchestration.

Etape IV – Méthodes d’installation des mises à jour :

En attendant que la fenêtre des mises à jour arrive, une autre méthode consiste à installer manuellement les mises à jour sur la VM.

Pour cela, sélectionnez la troisième VM puis cliquez sur Mise à jour ponctuelle :

Confirmez votre choix en cliquant ici :

Cliquez sur Suivant :

Choisissez la ou les mises à jour installer, puis cliquez sur Suivant :

Définissez la méthode de redémarrage souhaitée :

Lancez l’installation des mises à jour :

Une notification apparaît alors :

Et le statut de la VM change également :

La fenêtre d’historique montre le détail des mises à jour installées :

Repartons un moment sur les VMs configurées dans une fenêtre de mise à jour :

Quelques minutes après le début de la fenêtre, seule la VM Linux a installées toutes ses mises à jour.

Cliquez-ici pour savoir pourquoi la machine virtuelle Windows n’en a pas fait autant :

Observez la classification des mises à jour non installées :

Retournez sur la configuration de la fenêtre afin de voir si ces classifications en font partie :

Et non ^^.

Lancez également une mise à jour ponctuelle pour cette VM :

Confirmez votre choix en cliquant ici :

Cliquez sur Suivant :

Choisissez la ou les mises à jour installer, puis cliquez sur Suivant :

Définissez la méthode de redémarrage souhaitée :

Lancez l’installation des mises à jour :

Le statut de la VM change également :

Et voilà, toutes vos VMs sont maintenant à jour !

Enfin, la page de Vue d’ensemble permet d’avoir une vision assez rapide des VMs à jour de la répartition des méthodes de mise à jour :

Quelques anecdotes :

Afin d’en savoir un peu plus sur le fonctionnement Azure Update Management Center toujours en préversion, j’ai créé et laissé tourner plusieurs machines virtuelles :

  • La VM w-update-autop2 avec orchestration Azure Managed – Safe Deployment et hotpatch n’a toujours pas été mise à jour.

Je n’ai pas vu de mises à jour dans l’historique. Aussi je me demande à quel moment Azure décrète que l’installation est saine et qu’il peut procéder.

La VM l-updatep2 avec sous Azure Policy concernant l’assessment est toujours marquée à No concernant l’assessment périodique :

Conclusion :

En conclusion, la nouvelle version Azure Update Management Center me semble très prometteuse et permettra de visualiser d’un seul coup d’œil toutes les mises à jour OS disponibles pour les VMs Azure, mais aussi des machines virtuelles connectées via Azure Arc.

L’autre bonne nouvelle est la disponibilité générale d’Hotpatch, désormais disponible directement dans l’image Windows Server 2022 Datacenter Azure Edition 😎.

Checkez la disponibilité de vos VMs Azure

Beaucoup de projets d’infrastructure Cloud contiennent des services Cloud de type IaaS. Entièrement configurable, une machine virtuelle en est un bon exemple chez tous les principaux fournisseurs de Cloud. Le IaaS apporte des avantages par une grande flexibilité, mais aussi des inconvénients, comme par exemple sa gestion des mises à jour.

Dans le cadre d’un hébergement d’un service web, la machine virtuelle n’est d’ailleurs pas le premier choix proposé par les fournisseurs Cloud. Néanmoins, il arrive qu’une machine virtuelle soit le seul choix technique possible.

Dans cet article, nous n’allons pas nous intéresser au choix VM / App Service. Mais à la mise en place d’une alerte de disponibilité HTTP, dans le but vérifier le bon fonctionnement de l’accès externe.

Que sont les alertes d’Azure Monitor ?

Les alertes vous permettre de détecter et de résoudre des problèmes avant que les utilisateurs ne les remarquent en vous informant de manière proactive quand les données Azure Monitor indiquent qu’il peut y avoir un problème avec votre infrastructure ou votre application.

Vous pouvez définir une alerte sur n’importe quelle source de données de métrique ou de journal dans la plateforme de données Azure Monitor.

Microsoft Learn

Il est très facile de créer une alerte sur un Web App. Mais il est aussi possible d’en créer sur d’autres services, comme sur un service IIS hébergé sur une machine virtuelle.

Afin des tester ce scénario, nous allons créer une machine virtuelle avec un rôle IIS afin de créer une alerte HTTP pour vérifier sa bonne disponibilité à travers le globe :

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice sur les alertes d’Azure Monitor, il vous faudra disposer de :

  • Un tenant Microsoft
  • Une souscription Azure valide

Si vous ne disposez pas de machine virtuelle Azure sur votre environnement, commencez par l’étape I afin de préparer l’environnement nécessaire à la mise en place de l’alerte.

Etape I – Création de la machine virtuelle Azure :

Commencez par créer une Machine Virtuelle Azure en utilisant la barre de recherche en haut du portail :

Sélectionnez le premier choix pour créer votre machine virtuelle :

Sur le premier onglet, renseignez les champs relatifs aux principales caractéristiques de votre VM :

Définissez un compte d’administrateur local, ouvrez le port HTTP pour le traffic entrant, puis cliquez sur Suivant :

Cliquez sur Suivant pour continuer la configuration :

Vérifiez sur cet onglet que le port HTTP est toujours listé, puis cliquez-ici pour lancer la validation de la configuration :

Une fois la validation correctement terminée, cliquez sur Créer :

Environ 3 minutes plus tard, votre machine virtuelle est créée et est accessible.

Cliquez-ici pour rentrer dans la configuration de votre VM :

Copiez l’adresse IP publique de votre machine virtuelle :

Ouvrez un nouvel onglet dans votre navigateur, puis collez l’adresse IP publique précédemment copiée :

Le message d’erreur affiché s’explique par l’absence d’écoute sur le port 80 (HTTP) de votre machine virtuelle.

Pour y remédier, nous allons installer le rôle IIS (Internet Information Services) sur votre machine virtuelle.

Etape II – Installer un rôle IIS sur votre machine virtuelle :

Comme aucun port RDP n’est ouvert sur la machine virtuelle, utilisez le menu suivant pour lancer le script d’installation de IIS depuis le portail Azure :

Collez la commande ci-dessous :

Install-WindowsFeature -name Web-Server -IncludeManagementTools

Lancez le script, puis attendez que celui-ci se termine :

Environ 2 minutes plus tard, constatez la bonne exécution du script :

Dans l’onglet précédemment ouvert avec l’adresse IP publique de votre machine virtuelle, rafraichissez la page web, puis constatez l’apparition de la page d’accueil de IIS :

Notre environnement est maintenant en place, il ne nous reste qu’à installer le mécanisme d’alerte. Avant cela, il est nécessaire d’ajouter d’autres composants Azure.

Etape III – Configuration du test de disponibilité HTTP :

Sur votre portail Azure, commencez par rechercher le service Application Insights :

Créez votre premier application Insights :

Renseignez tous les champs, également ceux concernant la création d’un Log Analytics Workspace, puis lancez la validation :

Une fois validation terminée, lancez le processus de création des ressources :

Environ 3 minutes plus tard, cliquez-ici pour configurer votre Application insights :

Cliquez-ici pour ajouter votre test HTTP :

Renseignez les informations demandées, ainsi que l’adresse IP publique de votre VM au format HTTP://, puis choisissez la fréquence et les régions Azure dont le signal de test doit provenir :

Le test est maintenant en place

Etape IV – Vérification du test de disponibilité HTTP :

Attendez environ 2 minutes, puis cliquez sur Rafraichir :

Les premiers succès de réponse apparaissent :

  • A droite se trouvent des compteurs de succès et d’échecs
  • Le détail par région source est affiché en bas
  • Un graphique avec un taux de disponibilité est présent en haut à gauche

Un tour dans les logs de notre Application Insights affiche bien toutes les informations stockées par chaque test :

Toutes ces informations bien pratiques, mais les administrateurs IT doivent aussi être alertés quand le service HTTP est en panne. Il est donc nécessaire de mettre en place une règle d’alerte pour les avertir au plus tôt.

Un mail sur une messagerie surveillée est une bonne pratique.

Etape V – Configuration des alertes de disponibilité :

Toujours dans votre Application Insights, rendez-vous dans la section des alertes pour modifier la règle d’alerte déjà en place :

Cliquez sur la règle d’alerte portant le nom combo « alerte »-« Application Insight » :

Cliquez ensuite sur Editer :

Sous la section Actions, cliquez-ci dessous :

Cliquez-ici pour créer un groupe d’actions :

Nommez-le, puis passer sur l’onglet suivant :

Dans l’onglet Notifications, définissez un type de notification Email, puis nommez-le également :

Renseignez une adresse email à cibler :

Cliquez sur Créer votre groupe d’actions :

Sauvegardez votre règle d’alerte :

Attendez quelques secondes, puis constatez la bonne modification de celle-ci :

Quelques secondes après, le destinataire du groupe d’actions reçoit un email lui informant son intégration dans un système de règle d’alerte Azure :

Il ne nous reste plus qu’à tester la notification par email. Pour cela, rien de plus simple, un arrêt de la machine virtuelle Azure devrait suffire.

Etape VI – Test de la notification d’alerte :

Avant d’arrêter votre machine virtuelle, vérifier la bonne santé du test de disponibilité de votre HTTP :

Retournez sur la page des machines virtuelles, puis déclenchez un arrêt de celle-ci :

Confirmez la procédure d’arrêt :

Retournez sur l’onglet internet ouvert sur l’adresse IP publique de votre machine virtuelle, puis constatez l’apparition d’un message d’indisponibilité :

Retournez sur le test d’alerte de votre Application Insights, les premiers échecs devraient apparaître.

Notez que la notion de 5 minutes entre deux tests ne s’applique que pour chaque région Azure. C’est donc pour cela que les tests sont très fréquents, car le test de disponibilité repose ici sur 5 régions :

Une fois que 2 localisations sur 5 constatent des échecs, l’alerte est déclenchée et le mail est envoyé sur l’adresse de message renseignée sur le groupe d’actions :

Consultez le détail de cette alerte :

Retournez sur la page des machines virtuelles, puis redémarrez la VM précédemment éteinte :

Quelques minutes plus tard, un autre email arrive sur la boite de messagerie. Celui-ci indique une bonne reprise de la disponibilité sur les régions concernées :

De retour sur la page des alertes de notre Applications Insights, l’alerte n’y figure plus car elle a été automatiquement levée :

Il est malgré tout possible de retrouver l’historique de cette alerte en retirant un filtre :

Conclusion :

L’architecture Cloud n’est pas infaillible et la mise en place d’alerte permet de gérer au plus tôt un incident. Ce type de règle alerte ne coûte pas cher et permet de centraliser l’information sur un seul point. Un autre test intéressant serait de créer une alerte sur la charge d’une machine virtuelle ou d’un autre service de calcul.

Créez vos premières machines virtuelles

Cet article est dans la continuité de l’article dédié à Azure Migrate publié la semaine dernière. Dans celui-ci, je vous propose un second exercice, à pratiquer par vous-même, sur 2 services de calcul Azure : machines virtuelles indépendantes et groupes de machines virtuelles identiques.

Cet atelier va vous aider à comprendre la création de ces deux composants. Dans cet article, l’explicatif n’est pas très détaillé car plusieurs articles sur ce blog en parlent déjà :

Cet exercice est disponible sur la page GitHub de Microsoft juste ici. Voici la liste des tâches que nous allons réaliser :

  • Machine virtuelle :
    • Tâche 1 : Déployer des machines virtuelles (Portail / Template)
    • Tâche 2 : Configurez un rôle IIS (Portail / Script)
    • Tâche 3 : Modifiez la taille et le stockage d’une machine virtuelle
  • Groupe de machines virtuelles identiques :
    • Tâche 4 : Déployez un groupe de machines virtuelles identiques
    • Tâche 5 : Configurez un rôle IIS
    • Tâche 6 : Modifiez la taille de VMs du groupe
    • Tâche 7 : Mise en place d’un plan d’autoscalling

Le schéma ci-dessous correspond aux ressources Azure que nous allons déployer.

Bien souvent, une ressource déployée entraîne un début de tarification par Microsoft. Il est donc important de correctement dimensionner les ressources, et de les supprimer si ces dernières ne sont plus utilisées.

Rappel des prérequis :

Pour réaliser cet exercice Azure, il vous faudra disposer de :

  • Un tenant Microsoft
  • Une souscription Azure active
  • Compte de stockage pour les scripts

Des scripts en PowerShell seront exécutés durant cet atelier. Commencez par télécharger et extraire les fichiers scripts disponibles sur le GitHub de Microsoft juste ici.

Retournez sur votre portail Azure, puis recherchez le service Compte de stockage Azure :

Commencez la création en remplissant tous les champs nécessaires comme ceci.

Notez que le nom du compte de stockage est unique à travers tout Azure, choisissez un nom au hasard et encore disponible.

Cliquez sur Créer pour commencer le processus de création des ressources :

Attendez que la création du compte de stockage se termine, puis cliquez ici pour le consulter :

Cliquez ici pour ajouter un premier container blob dans votre compte de stockage, puis nommez le Script :

Cliquez sur Téléverser pour ajouter votre premier blob, qui sera un script PowerShell :

Choisissez le fichier script nommé az104-08-install_IIS.ps1, issue de l’archive téléchargée depuis GitHub :

Cliquez sur Téléverser pour lancer l’opération de transfert vers Azure :

La tâche de préparation est maintenant terminée, nous allons pouvoir commencer la création de notre première machine virtuelle Azure.

Tâche I – Déployer des machines virtuelles (Portail / Template) :

Les machines Virtuelles Azure constituent l’un des types de ressources informatiques scalables et à la demande proposées par Azure. En règle générale, une machine virtuelle convient bien si vous avez besoin de davantage de contrôle de votre environnement informatique

Microsoft Learn

Toujours sur votre portail Azure, recherchez le composant Machine Virtuelle :

Remplissez les champs suivants, puis passez sur l’onglet Disques :

Sur cet onglet, laissez les valeurs par défaut et passez directement à l’onglet Réseau :

Modifiez la configuration réseau proposée en cliquant ici :

Remplacez les valeurs par défaut avec les masques de réseau et sous-réseau suivants, puis cliquez sur OK :

Ouvrez le port 80 utilisé pour le protocole HTTP, puis cliquez sur Suivant :

Retirer la case cochée pour éteindre automatiquement la machine virtuelle, changez les mises à jour Windows sur Manuel, puis cliquez sur Suivant :

Choisissez le compte de stockage créé précédemment pour sauvegarder le diagnostic de démarrage de votre machine virtuelle :

Une fois la validation passée, cliquez sur Créer :

Environ 2 minutes plus tard, la première machine virtuelle est créée.

Cliquez sur Template pour comprendre un peu mieux la configuration établie par vous-même :

Cliquez sur Déployer pour réutiliser ce template sur une seconde machine virtuelle :

Changez certaines variables du template afin que la nouvelle machine virtuelle soit créée indépendamment de la première :

  • Nom de l’interface réseau
  • Nom de l’adresse IP publique
  • Nom de la machine virtuelle,
  • Nom de la machine virtuelle1
  • Nom de l’ordinateur de la machine virtuelle
  • Mot de passe administrateur
  • Zone de disponibilité

Attendez que la validation se termine, puis lancez la création de la seconde machine virtuelle en cliquant sur Créer :

Environ deux minutes plus tard, le déploiement est terminé lorsque le message suivant apparaît :

Vos deux machines virtuelles sont maintenant déployées, les tâches suivantes de modification de la configuration seront effectuées directement sur celles-ci.

Tâche II – Configurez un rôle IIS (Portail / Script) :

Toujours sur votre portail Azure, recherchez le composant Machine Virtuelle :

Sélectionner la première machine virtuelle appelée az104-08-vm0 :

Cliquez comme ceci pour ajouter une extension :

Choisissez le type d’extension Script personnalisé, puis cliquez sur Suivant :

Cliquez-ici pour parcourir les fichiers disponibles sur votre compte de stockage :

Choisissez le compte de stockage créé dans l’étape 0, puis reprenez le fichier de script PowerShell téléversé précédemment :

Cliquez-ici pour importer le script en tant qu’extension sur la machine virtuelle :

Validez la configuration de l’extension :

Cliquez ici pour mettre en place l’extension sur la machine virtuelle az104-08-vm0 :

Retournez sur la page principale de la machine virtuelle, puis copiez l’adresse IP publique de celle-ci :

Ouvrez un onglet de votre navigateur, collez l’adresse IP dans la barre d’adresse, puis constatez le court message généré par IIS :

Toujours sur votre portail Azure, retournez sur la liste des machines virtuelles, puis sélectionnez la seconde VM appelée az104-08-vm1.

Dans le menu Exporter le template, cliquez sur la fonction Déployer :

Cliquez ici pour modifier le template précédemment généré :

Recherchez la ligne de 20 du template, puis positionnez votre curseur avant la parenthèse ouvrante :

Collez les lignes de codes ci-dessous

     {
         "type": "Microsoft.Compute/virtualMachines/extensions",
         "name": "az104-08-vm1/customScriptExtension",
         "apiVersion": "2018-06-01",
         "location": "[resourceGroup().location]",
         "dependsOn": [
             "az104-08-vm1"
         ],
         "properties": {
             "publisher": "Microsoft.Compute",
             "type": "CustomScriptExtension",
             "typeHandlerVersion": "1.7",
             "autoUpgradeMinorVersion": true,
             "settings": {
                 "commandToExecute": "powershell.exe Install-WindowsFeature -name Web-Server -IncludeManagementTools && powershell.exe remove-item 'C:\\inetpub\\wwwroot\\iisstart.htm' && powershell.exe Add-Content -Path 'C:\\inetpub\\wwwroot\\iisstart.htm' -Value $('Hello World from ' + $env:computername)"
           }
         }
     },

Une fois les lignes ajoutées, constatez la mise en forme comme l’image ci-dessous, puis cliquez sur Sauvegarder :

Cliquez-ici pour lancer la validation de votre template modifié :

Une fois la validation passée, cliquez sur Créer pour lancer la création des ressources modifiées :

Assez rapidement, le déploiement se termine :

Note : un template peut contenir des ressources Azure déjà existantes. La mise à jour de celles-ci n’intervient que sur les parties modifiées.

Retournez sur la page principale de la machine virtuelle, puis copiez l’adresse IP publique de celle-ci :

Ouvrez un onglet de votre navigateur, collez l’adresse IP dans la barre d’adresse, puis constatez le court message généré par IIS :

Vos deux machines virtuelles sont maintenant en place.

Dans la tâche 3, nous allons voir que d’autres modification de la configuration sont possibles sur les objets rattachés à celles-ci, comme ses disques, ou encore la puissance de la VM.

Tâche III – Modifiez la taille et le stockage d’une machine virtuelle :

Commençons par modifier la taille de la machine virtuelle. Pour cela, retournez sur la machine virtuelle, puis modifiez le SKU comme ceci :

Le redimensionnement occasionne un redémarrage de la machine virtuelle, comptez une minute environ pour retrouver le service opérationnel.

Continuez les modifications en ajoutant deux disques de données de 1024 GiB avec les noms suivants :

  • az104-08-vm0-datadisk-0
  • az104-08-vm0-datadisk-1

L’ajout ou la suppression de disque de données n’occasionne pas de redémarrage de la machine virtuelle.

Terminez les modifications en exécutant un script PowerShell directement sur la machine virtuelle via le portail Azure comme ceci :


New-StoragePool -FriendlyName storagepool1 -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks (Get-PhysicalDisk -CanPool $true)

New-VirtualDisk -StoragePoolFriendlyName storagepool1 -FriendlyName virtualdisk1 -Size 2046GB -ResiliencySettingName Simple -ProvisioningType Fixed

Initialize-Disk -VirtualDisk (Get-VirtualDisk -FriendlyName virtualdisk1)

New-Partition -DiskNumber 4 -UseMaximumSize -DriveLetter Z

Cette commande créée un lecteur Z : composé des deux disques nouvellement attachés :

Le résultat du script correctement exécuté doit ressembler à cela :

Toujours sur votre portail Azure, retournez sur la liste des machines virtuelles, puis sélectionnez la seconde appelée az104-08-vm1.

Dans le menu Exporter le template, cliquez sur la fonction Déployer :

Cliquez ici pour modifier le template précédemment généré :

Recherchez la ligne de 30 du template, puis modifier la valeur correspondante à la taille de la machine virtuelle par celle-ci :

"vmSize": "Standard_DS1_v2"

Recherchez la ligne de 51 du template, puis sélectionnez celle-ci pour la remplacer :

                 "dataDisks": [
                   {
                     "lun": 0,
                     "name": "az104-08-vm1-datadisk0",
                     "diskSizeGB": "1024",
                     "caching": "ReadOnly",
                     "createOption": "Empty"
                   },
                   {
                     "lun": 1,
                     "name": "az104-08-vm1-datadisk1",
                     "diskSizeGB": "1024",
                     "caching": "ReadOnly",
                     "createOption": "Empty"
                   }
                 ]

Une fois les lignes ajoutées, constatez la mise en forme comme l’image ci-dessous, puis cliquez sur Sauvegarder :

Cliquez-ici pour lancer la validation de votre template modifié :

Une fois la validation passée, cliquez sur Créer pour lancer la création des ressources modifiées :

Assez rapidement, le déploiement se termine :

Terminez les modifications en exécutant un script PowerShell directement sur la machine virtuelle via le portail Azure comme ceci :

New-StoragePool -FriendlyName storagepool1 -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks (Get-PhysicalDisk -CanPool $true)

New-VirtualDisk -StoragePoolFriendlyName storagepool1 -FriendlyName virtualdisk1 -Size 2046GB -ResiliencySettingName Simple -ProvisioningType Fixed

Initialize-Disk -VirtualDisk (Get-VirtualDisk -FriendlyName virtualdisk1)

New-Partition -DiskNumber 4 -UseMaximumSize -DriveLetter Z

Cette commande créée un lecteur Z : composé des deux disques nouvellement attachés :

Le résultat du script correctement exécuté doit ressembler à cela :

La première partie de cet atelier nous a permis de tester le déploiement de machines virtuelles via l’interface graphique du portail Azure, mais aussi par l’utilisation de scripts et de templates.

Cette seconde approche est intéressante pour l’automatisation des déploiements et évite des erreurs humaines dans la configuration manuelle de chaque composant.

Tâche IV – Déployez un groupe de machines virtuelles identiques :

Les groupes de machines virtuelles identiques Azure (ou Virtual Machine Scale Sets) vous permettent de créer et de gérer un groupe de machines virtuelles à charge équilibrée. Le nombre d’instances de machine virtuelle peut augmenter ou diminuer automatiquement en fonction d’une demande ou d’un calendrier défini.

Microsoft Doc

Sur votre portail Azure, recherchez le composant Groupe de machines virtuelles identiques :

Cliquez sur Créer :

Utilisez le même groupe de ressources que pour les tâches précédentes, puis nommez le groupe de machines virtuelles identique az10408vmss0 :

Remplissez les champs suivants, puis passez sur l’onglet Disques :

Sur l’onglet Disques, laissez les valeurs par défaut et passez directement à l’onglet Réseau.

Modifiez la configuration réseau proposée par défaut en cliquant ici :

Remplacez les valeurs par défaut avec les masques de réseau et sous-réseau suivants, puis cliquez sur OK :

Cliquez ici pour créer et personnaliser le Groupe de sécurité réseau (NSG) :

Ajoutez une seconde règle de traffic entrant :

Choisissez le service HTTP et nommez là custom-allow-http, puis cliquez sur Ajouter :

Cliquez sur OK pour valider la configuration de votre futur NSG :

Activez la création d’une adresse IP publique :

Cochez la case pour mettre en place un équilibreur de charge, puis passer à l’onglet Mise à l’échelle :

Indiquez à 2 le nombre initial d’instances puis passer à l’onglet suivant :

Choisissez le compte de stockage créé précédemment pour sauvegarder le diagnostic de votre groupe de machines virtuelles identiques, puis passez à l’onglet suivant :

Sur cet onglet, laissez les valeurs par défaut, puis passez directement à l’onglet Avancé:

Modifiez l’algorithme de diffusion utilisé, puis lancez la validation :

Une fois la validation passée, cliquez sur Créer :

Environ 2 minutes plus tard, le groupe de machines virtuelles identiques est créé :

Tâche V – Configurez un rôle IIS :

Comme pour les machines virtuelles indépendantes, cliquez comme ceci pour ajouter une extension :

Choisissez le type d’extension Script personnalisé, puis cliquez sur Suivant :

Choisissez le compte de stockage créé, puis reprenez le fichier de script PowerShell téléversé précédemment :

Retournez sur la page principale du groupe de machines virtuelles identiques, puis copiez l’adresse IP publique de celui-ci :

Ouvrez un onglet de votre navigateur, collez l’adresse IP dans la barre d’adresse puis constater le message d’erreur :

Pour remédier à cela, il est nécessaire de mettre à jour les machines virtuelles en place :

Attendez quelques minutes, puis rafraichissez la page de votre navigateur internet :

Tâche VI : Modifiez la taille de VMs du groupe :

Toujours sur votre groupe de machines virtuelles identiques, modifiez le SKU comme ceci :

Là encore, il est nécessaire de mettre à jour les machines virtuelles déjà en place :

Un clic sur une machine affiche bien la nouvelle taille :

Tâche VII – Mise en place d’un plan d’autoscalling :

Dans cette tâche, vous allez configurer un plan de mise à l’échelle du groupe de machines virtuelles identiques.

Pour cela, rendez-vous dans le menu suivant pour le mettre en place selon vos propres règles, puis ajoutez une première règle de mise à l’échelle :

Dans celle-ci, définissez la métrique utilisée pour votre mise à l’échelle, indiquez la valeur limite, puis cliquez sur OK :

Ajoutez une seconde règle de mise à l’échelle avec la même métrique utilisée, indiquez la même valeur limite, puis cliquez sur OK :

Indiquez les limites basses et hautes du nombre d’instances, puis sauvegardez votre plan de mise à l’échelle :

Constatez la suppression de la seconde instance créée précédemment :

Sur votre poste local, copiez le script ci-dessous en adaptant l’adresse IP publique nom du groupe de machines virtuelles :

$url = "http://20.203.242.169"
while ($true) {
try {
[net.httpWebRequest]
$req = [net.webRequest]::create($url)
$req.method = "GET"
$req.ContentType = "application/x-www-form-urlencoded"
$req.TimeOut = 60000

$start = get-date
[net.httpWebResponse] $res = $req.getResponse()
$timetaken = ((get-date) - $start).TotalMilliseconds

Write-Output $res.Content
Write-Output ("{0} {1} {2}" -f (get-date), $res.StatusCode.value__, $timetaken)
$req = $null
$res.Close()
$res = $null
} catch [Exception] {
Write-Output ("{0} {1}" -f (get-date), $_.ToString())
}
$req = $null

# uncomment the line below and change the wait time to add a pause between requests
#Start-Sleep -Seconds 1
}

Lancez le script PowerShell (une bonne dizaine de fois) sur votre poste et laissez-les tourner :

Constatez la création d’une seconde instance, voire d’une troisième :

Conclusion :

Dans cet atelier, vous avez :

  • Déployé des machines virtuelles en zone en utilisant le portail Azure et un template ARM
  • Configuré des machines virtuelles Azure en utilisant des extensions de machine virtuelle
  • Modifié la taille et le stockage pour les machines virtuelles Azure
  • Déployé un groupe de machines virtuelles Azure
  • Configuré le groupe de machines virtuelles en utilisant des extensions
  • Testé le plan de mise à l’échelle

J’espère que toutes opérations vous auront montré la facilité de déploiement à travers Azure. Enfin, pensez à supprimer les ressources une fois cet atelier terminé afin d’éviter les surcoûts :

Suppression des ressources Azure :

Machine virtuelle : changez de taille !

Il arrive qu’une machine virtuelle ne corresponde plus aux besoins initialement définis avec sa taille. Pas de panique ! Un changement est toujours possible après coup. L’un des grands avantages d’Azure est la possibilité de modifier la taille des machines virtuelles, à la volée, des besoins en termes de performances du processeur, du réseau ou de disques.

Dans cet article, nous allons démontrer ensemble la simplicité de changer la taille d’une machine virtuelle, mais également les étapes additionnelles pour un changement particulier.

Dans quel cas redimensionner ?

Lorsque l’on examine le redimensionnement de machines virtuelles sous Azure, trois axes définissent ce processus de changement de taille :

  • Localisation : votre région Azure ne contient pas le matériel nécessaire pour prendre en charge la taille de machine virtuelle souhaitée.
  • Interruption : vous devrez dans certains cas désallouer la machine virtuelle. Cela peut se produire si la nouvelle taille n’est pas disponible sur le cluster matériel qui l’héberge actuellement.
  • Restriction : Si votre machine virtuelle utilise le stockage Premium, assurez-vous que vous choisissez une version s de la taille pour obtenir le support du stockage Premium.

Tailles des machines virtuelles dans Azure

Avant de basculer sur le portail Azure pour effectuer les étapes de modification de taille, voici un rappel de l’offre des machines virtuelles Azure. Afin d’y voir plus clair, Microsoft a segmenté son offre de machines virtuelles par famille, correspondant à des scénarios de besoin utilisateur :

En exemple, voici la définition donnée par Microsoft pour des besoins GPU :

Les tailles de machine virtuelle au GPU optimisé sont des machines virtuelles spécialisées disponibles avec des GPU uniques, multiples ou fractionnaires. Ces tailles sont conçues pour des charges de travail de visualisation, mais également de calcul et d’affichage graphique intensifs.

Microsoft Doc

Les familles sont généralement couvertes par plusieurs séries. Une série est une combinaison CPU + RAM + Autre critères. Les séries sont régulièrement mis à jour par Microsoft via des versions. Voici en exemple le détail de la composition pour la série NCv3 :

Les machines virtuelles de série NCv3 sont optimisées par les GPU NVIDIA Tesla V100. Ces GPU peuvent fournir des performances de calcul une fois et demie supérieure à celles de la série NCv2… les machines virtuelles de la série NCv3 sont également pilotées par des processeurs Intel Xeon E5-2690 v4 (Broadwell).

Microsoft Doc

Enfin, chaque série dispose plusieurs SKUs pour proposer différentes puissances. Toujours en exemple, la série graphique NCv3 :

La taille de la machine virtuelle influe également sur le prix de celle-ci. Toujours en exemple, la série graphique NCv3 :

Les instances réservées, d’un ou trois ans, diminuent fortement le prix des machines virtuelles.

Codification Azure

Cette large découpe propose aux utilisateurs un très grand nombre de machines virtuelles possibles. Dans cette jungle de SKUs, Microsoft a mis en place une codification précise dans la dénomination.

[Famille] + [Sous-famille]* + [nombre de processeurs virtuels] + [Processeurs virtuels avec contraintes]* + [Fonctionnalités supplémentaires] + [Type d’accélérateur]* + [Version]
ValeurExplication
FamilleIndique la série de la famille de machines virtuelles
*Sous-familleUtilisé uniquement pour différencier des machines virtuelles spécialisées
Nombre de processeurs virtuelsIndique le nombre de processeurs virtuels de la machine virtuelle
*Processeurs virtuels avec contraintesUtilisé pour certaines tailles de machine virtuelle uniquement. Indique le nombre de processeurs virtuels pour la taille des processeurs virtuels avec contraintes
Fonctionnalités supplémentairesUne ou plusieurs lettres minuscules indiquent des fonctionnalités supplémentaires, telles que :
a = processeur basé sur AMD
b = bloquer les performances de stockage
d = diskfull (c.-à-d., un disque temporaire local présent) ; ceci concerne les nouvelles machines virtuelles Azure, consultez Séries Ddv4 et Ddsv4
i = taille isolée
l = mémoire insuffisante ; une quantité de mémoire inférieure à la taille d’utilisation intensive de la mémoire
m = utilisation intensive de la mémoire ; la plus grande quantité de mémoire dans une taille particulière
t = très petite mémoire ; la plus petite quantité de mémoire dans une taille particulière
s = capacité de stockage Premium, y compris l’utilisation possible de SSD Ultra (Remarque : certaines tailles plus récentes sans l’attribut de s peuvent toujours prendre en charge le stockage Premium, par exemple M128, M64, etc.)
*Type d’accélérateurIndique le type d’accélérateur matériel dans les références (SKU) spécialisées/GPU. Seules les nouvelles références (SKU) spécialisées/GPU lancées à partir du troisième trimestre 2020 auront l’accélérateur matériel dans leur nom.
VersionIndique la version de la série de machines virtuelles

Voici un exemple de dénomination pour la machine virtuelle graphique NC4as_T4_v3 :

ValeurExplication
FamilleN
Sous-familleC
Nombre de processeurs virtuels4
Fonctionnalités supplémentairesa = processeur basé sur AMD
s = capacité de stockage Premium
Type d’accélérateurT4
Versionv3

Avec toutes ces informations, nous allons pouvoir nous intéresser au changement de SKU sur une machine virtuelle existante.

Etape 0 : Rappel des prérequis

Pour cela, nous allons créer différentes ressources sur Azure pour y parvenir. Comme toujours, des prérequis sont nécessaires pour réaliser cette démonstration :

  • Un tenant Microsoft
  • Une souscription Azure valide
  • Une machine virtuelle déployée et démarrée

Comme le montre la copie d’écran ci-dessous, ma machine virtuelle dispose actuellement de la taille D4ds v4

Afin de mesurer les impacts d’un changement de taille sur une machine virtuelle démarrée, j’ai également ouvert une connexion RDP à celle-ci

Test I : Changement d’une taille dans la même série

Le changement de taille de la machine virtuelle s’effectue depuis le portail Azure via la section Taille.

Azure y regroupe différentes tailles, accessibles ou non :

  • Tailles de machine virtuelle les plus populaires
  • Autres séries disponibles
  • Anciennes séries toujours disponibles
  • Tailles indisponibles car problème de quota
  • Tailles indisponibles car disque incompatible
  • Tailles indisponibles car image incompatible

Jouez avec les filtres suivants pour trouver la taille adaptée

Certaines tailles ne sont même pas visibles.

Sélectionnez la taille et cliquez sur redimensionner

Une fois déclenché, une notification de traitement apparait dans votre portail Azure

La session RDP est-elle aussi coupée

Après traitement (30 secondes environ), la machine virtuelle retrouve son status démarré. La nouvelle taille se retrouve alors sur la page principale de la machine virtuelle Azure

La réouverture manuelle de la session RDP montre bien la nouvelle puissance

Test II : Changement d’une taille dans une série disponible

Continuez vos tests en effectuant un changement de taille vers une autre famille de machine virtuelle

Là encore, la session RDP se ferme et la notification de changement apparaît sur le portail Azure. Moins d’une minute plus tard, la machine virtuelle repart avec sa dernière taille

Test III : Changement d’une taille dans une série disponible

Dans certains cas, il est nécessaire de partir sur une taille de machine virtuelle ayant des propriétés différentes. Ma machine virtuelle, actuellement en Standard F8s v2, dispose d’un stockage temporaire.

Le disque temporaire est très utile pour les données qui, vous l’aurez deviné, sont de nature temporaire. Un excellent exemple de ce type de données pour Windows est le pagefile. Lorsqu’une nouvelle machine virtuelle Windows est provisionnée à partir d’une image dans Azure, le pagefile est configuré si cela est possible pour qu’il soit situé sur ce disque temporaire.

Ce stockage temporaire se retrouve alors sur le disque D

Pour la plupart des machines virtuelles Windows, le volume sur le disque temporaire à la lettre de lecteur D:.
Il a également l’étiquette de lecteur « Temporary Storage ».

Les clients ne doivent pas utiliser le disque temporaire pour des données qui doivent être persistantes.

Un retour dans la liste des tailles disponibles pour ma machine virtuelle vm001 ne permet pas de choisir une machine virtuelle dépourvue de disque temporaire.

Dans ce cas, pas le choix, la recréation d’une nouvelle machine virtuelle est un passage obligatoire.

Etape I : Créer une sauvegarde du ou des disques présents

Allez sur la page des disques de la machine virtuelle et cliquez sur chacun d’eux

Créez une sauvegarde de chaque disque (OS et Data)

Vérifiez les champs et lancez la création

Une fois terminé, cliquez ici pour accéder au snapshot

Etape II : Créez un ou des disques depuis la ou les sauvegardes

Lancez la création du ou des nouveaux disques depuis le ou les snapshots créés

Une fois terminé, cliquez ici pour accéder au disque créé

Etape III : Création de la nouvelle machine virtuelle

Il ne reste plus qu’à rattacher ce ou ces disques à une nouvelle machine virtuelle

Renseignez tous les champs nécessaires et la nouvelle taille de machine désirée

Lancez la création de la machine virtuelle

Cliquez ici pour retrouver les propriétés de votre nouvelle machine virtuelle

Constatez la bonne taille de votre machine virtuelle Standard D4s v4

Rouvrez une session RDP sur cette nouvelle machine virtuelle pour finaliser les réglages de pagefile. Un message d’avertissement apparaît à l’ouverture de la session

Sélectionnez les paramétrages automatiques Windows

Redémarrez la machine virtuelle pour appliquer les modifications pagefile

Et vous voilà avec la nouvelle taille ????

Conclusion

Azure apporte beaucoup de flexibilité avec le changement de taille pour les machines virtuelles. Il est même possible de scripter le changement de taille selon les besoins ou les pics de charges.

Comme toujours John nous propose une vidéo pour aller plus loin sur ce sujet ????

Sauvegarde des disques de VM via Runbook/Snapshot

Sauvegarder ou ne pas sauvegarder ? Telle est la question ! Évidemment, la sauvegarde n’est pas un choix mais bien une nécessité ! Dans cet article, nous allons prendre le temps de nous intéresser aux sauvegardes de machines virtuelles dans un cas très particulier.

Cet article n’a pas pour but de vous parler de la sauvegarde native des machines virtuelles sous Azure, via le service Azure Recovery Service Vault. Cette fonctionnalité est à la portée de tous et fonctionne sans souci.

Mais il arrive dans certains cas que ce service ne fonctionne pas pour certaines machines virtuelles… Voici par exemple le déploiement d’un firewall Fortigate, disponible sur la marketplace d’Azure

Une fois cette machine virtuelle déployée, j’ai rajouté des disques de données supplémentaires à cette dernière

J’ai ensuite créé un Recovery Service Vault pour mettre en place une sauvegarde habituelle

J’ai continué avec la configuration de la police de sauvegarde avec ma machine virtuelle

Seulement l’activation de la sauvegarde Azure me pose quelques soucis

Voici le détail du message d’erreur

{
    "status": "Failed",
    "error": {
        "code": "UserErrorUnSupportedDistribution",
        "message": "Unsupported OS version for virtual machine backup."
    }
}

Ce problème est visiblement connu sur la toile depuis plusieurs années, mais pour l’instant aucune alternative n’a été proposée par Microsoft. Inutile de penser aux agents MARS ou MABS…

Que faire dans ce cas ?

Il est bien possible de faire des snapshots réguliers … à la main !

En quête d’automatisation, je suis tombé sur plusieurs articles intéressants, assez proche sur la solution apportée :

Qu’est-ce qu’Azure Automation ?

Azure Automation est un service d’automatisation et de configuration basé sur le cloud qui prend en charge la gestion cohérente de vos environnements Azure et non-Azure. Il comprend l’automatisation des processus, la gestion des configurations, la gestion des mises à jour, les capacités partagées et les fonctionnalités hétérogènes. L’automatisation vous donne un contrôle total pendant le déploiement, l’exploitation et la mise hors service des charges de travail et des ressources.

Yst@IT
Merci Travis !

Dans notre déploiement, nous allons utiliser un compte Azure Automation pour stocker et lancer notre script PowerShell. Ce script prend en compte les disques rattachés à la machine virtuelle afin d’en faire des snapshots pour chacun d’eux.

Etape 0 : Rappel des prérequis

Passé cette rapide explication, nous allons créer différentes ressources sur Azure pour y parvenir. Comme toujours, des prérequis sont nécessaires pour réaliser cette démonstration :

  • Un tenant Microsoft
  • Une souscription Azure valide
  • Une machine virtuelle déployée

Etape I : Affectation d’un tag sur la machine virtuelle

Le script va effectuer une recherche sur les machines virtuelles à sauvegarder. Il est nécessaire de marquer celles qui nous intéresse. Rendez-vous sur la machine virtuelle concernée et ajoutez-y le tag suivant :

  • Nom : Snapshot
  • Valeur : True

Etape II : Création du compte Azure Automation

Tout commence par la création d’un compte Azure Automation pour héberger notre script PowerShell. Utilisez la barre de recherche du portail Azure pour commencer éa création

Renseignez les éléments de base sur le premier onglet du compte puis lancez directement la création de celui-ci :

Cherchez la section Paramétrages du compte, puis cliquez sur Identité et enfin assignez les rôles Azure

Ajoutez le rôle de Contributeur sur le groupe de ressources contenant la machine virtuelle, puis sauvegardez

Quelques minutes plus tard, constatez la présence de ce dernier dans le tableau précédent

Etape III : Création du Runbook

Continuez avec la création de votre runbook

Renseignez les champs pour valider sa création

La création vous ouvre ensuite l’éditeur de code

Collez le script suivant dans l’éditeur, ou également disponible sur mon GitHub

# Use Managed Identity
Connect-AzAccount -Identity

# Get VMs with snapshot tag
$tagResList = Get-AzResource -TagName "Snapshot" -TagValue "True" | foreach {
Get-AzResource -ResourceId $_.resourceid
}

foreach($tagRes in $tagResList) {
if($tagRes.ResourceId -match "Microsoft.Compute")
{
$vm = Get-AzVM -ResourceGroupName $tagRes.ResourceId.Split("//")[4] -Name $tagRes.ResourceId.Split("//")[8]
#Set local variables
$location = $vm.Location
$resourceGroupName = $vm.ResourceGroupName
$vmname = $vm.Name

# Generate OS snapshot configuration
$snapshotName = $vm.StorageProfile.OsDisk.Name + $(get-date -Format 'yyyy-MM-dd-m')
$snapshot =  New-AzSnapshotConfig `
-SourceUri $vm.StorageProfile.OsDisk.ManagedDisk.Id `
-Location $location `
-CreateOption copy

# Create OS snapshot
New-AzSnapshot `
-Snapshot $snapshot `
-SnapshotName $snapshotName `
-ResourceGroupName $resourceGroupName

# Add SnapshotTags
$tags = (Get-AzResource -ResourceGroupName $resourceGroupName -Name $snapshotName).Tags
$tags += @{Location="$location"; Vm="$vmname"; SnapshotDate="$(get-date -Format 'yyyy-MM-dd-m')"; Script="JLOScript"}
Set-AzResource `
-ResourceGroupName $resourceGroupName `
-Name $snapshotName `
-ResourceType "Microsoft.Compute/snapshots" `
-Tag $tags `
-Force

# Generate DATA snapshot configuration
if($vm.StorageProfile.DataDisks.Count -ge 1){

#Condition with more than one data disks
for($i=0; $i -le $vm.StorageProfile.DataDisks.Count - 1; $i++){

# Generate snapshot configuration
$snapshotName = $vm.StorageProfile.DataDisks[$i].Name + $(get-date -Format 'yyyy-MM-dd-m')
$snapshot =  New-AzSnapshotConfig `
-SourceUri $vm.StorageProfile.DataDisks[$i].ManagedDisk.Id `
-Location $location `
-CreateOption copy

# Create snapshot
New-AzSnapshot `
-Snapshot $snapshot `
-SnapshotName $snapshotName `
-ResourceGroupName $resourceGroupName

# Add SnapshotTags
$tags = (Get-AzResource -ResourceGroupName $resourceGroupName -Name $snapshotName).Tags
$tags += @{Location="$location"; Vm="$vmname"; SnapshotDate="$(get-date -Format 'yyyy-MM-dd-m')"; Script="JLOScript"}
Set-AzResource `
-ResourceGroupName $resourceGroupName `
-Name $snapshotName `
-ResourceType "Microsoft.Compute/snapshots" `
-Tag $tags `
-Force
}
}

else{
Write-Host $vmInfo.Name + " doesn't have any additional data disk."
}
}

else{
$tagRes.ResourceId + " is not a compute instance"
}
}

Etape IV : Test du Runbook

Sauvegardez votre code et lancez un test

Cliquez sur le bouton ci-dessous pour démarrer le test

Attendez un peu

Constatez le succès ou l’échec de votre runbook

Retournez sur le groupe de ressources pour y voir apparaître les snapshots des disques

Cliquez sur l’un d’eux et constatez les tags

Etape V : Mise en place de l’automatisation

Une fois constaté le succès de votre script, il ne vous reste qu’à le publier et à le programmer périodiquement. Retournez sur votre runbook et cliquez sur Publier

Ajoutez une programmation périodique sur votre runbook

Cliquez sur le premier lien

Cliquez sur ajouter une programmation

Renseignez les champs selon votre besoin

Confirmez la bonne création de votre programmation

Contrôlez au prochain lancement de la programmation dans le groupe de ressources

Contrôlez également l’historique des lancements du runbook

Conclusion

Et voilà ! Une tâche manuelle de moins… Cette petite opération nous a permis de bien comprendre l’utilité et la puissance des automatismes possibles sur Azure. Celui-ci est bien évidemment très simple, d’autres sont sans doute très intéressants à mettre en oeuvre ????.

Changer la taille du disque OS sur une machine virtuelle via [smalldisk] / Resize

Azure VM | Microsoft Power Automate

Des machines virtuelles sont créées en permanence sur Azure, et très régulièrement sur Windows Serveur. Sans se poser de question, le choix de l’image présélectionne sans votre avis la taille du disque OS, sans aucun pouvoir de modification.

Mais comment faire si l’on souhaite autre chose que la taille par défaut de 128GB pour notre lecteur C ?

Nous allons voir ensemble dans cet article les différentes possibilités, avant et après la création d’une machine virtuelle, pour changer très facilement la taille du disque OS.

Cas classique : Image Windows Server

Commençons par le cas standard, la création d’une machine virtuelle avec Windows Serveur entraîne la création d’un disque OS.

Sélectionnons ici par exemple une image source Windows Server 2019.

Dans le second onglet de création de la machine virtuelle, je n’ai pas de choix concernant la taille de mon disque OS :

Cet onglet me propose de choisir les performances du disque OS, mais pas sa taille. La taille est par contre bien un choix disponible sur les disques de données ajoutés.

Rappel : les performances du disque vont influer sur la SLA de la machine virtuelle, que vous pouvez retrouver en pourcentages ici.

Une fois la machine virtuelle créée, je ne peux que constater la taille de mon disque OS, assez facilement depuis la section des disques :

Un clique sur le disque OS vous amène sur sa page dédiée.

Redimensionnement du disque OS sur une machine virtuelle existante

Une alerte est mentionnée en haut de page : la taille d’un disque ne peut se faire que si ce dernier est détaché de la machine virtuelle ou que si cette dernière est éteinte :

Cas A : Redimensionnement à la baisse

Une fois la machine virtuelle arrêtée, un redimensionnement à la baisse va obligatoirement échouer, dans le but de prévenir la perte de données :

Erreur remontée par Azure au moment du redimensionnement à la baisse.

Cas B : Redimensionnement à la hausse

Cela ne sera pas le cas dans le cas d’un redimensionnement à la hausse, comme vous pouvez le voir en dessous :

La taille du disque OS a bien été augmentée. Notez que le nombre max d’IOPS a aussi fait un bon.

Dernière chose à faire, agrandir la partition du lecteur C directement depuis la machine virtuelle :

Comment faire donc pour effectuer pour disposer d’un lecteur C plus petite taille ? Sachant que l’OS est loin de remplir le lecteur C, plusieurs options s’offrent à nous :

  • Création d’une machine virtuelle avec une image portant la mention [smalldisk]
  • Redimensionnement du disque OS, après déploiement de la machine virtuelle

Remarque importante : Prenez garde avec la taille des disques, un disque trop réduit vous apportera peu d’IOPS et donc des performances disques insuffisantes :

Néanmoins, cette démarche peut être utile dans certains cas et donc générer une économie de coûts.

1er cas : Image Windows Server 2019 [smalldisk]

Si, avant la création de la machine virtuelle, vous savez déjà que votre disque C peut être plus réduit, vous pouvez alors partir sur des images spécifiques. Voici par exemple la liste des [smalldisk] disponibles pour Windows Serveur :

Si vous avez des difficultés de visualisation du nom complet des images, un passage du curseur sur un choix vous donnera son nom complet.

Une fois la machine provisionnée sur votre souscription Azure, vous constaterez que la taille du disque OS est de 30GB. Cette taille est donc plus réduite que la précédente. Vous pourrez toujours changer celle-ci à la hausse simplement en éteignant votre machine virtuelle.

Notez qu’une taille custom du disque entraine toujours une facturation égale à la taille supérieure : ici 32GB.

2ème cas : Redimensionnement du lecteur C puis du disque OS

Il arrive dans certains cas que la machine virtuelle existe déjà. Il va donc falloir commencer le processus par redimensionner le lecteur C. Je suis donc tombé sur cet excellent article (en anglais) et écrit par Jack Rudlin. Les étapes nécessaires pour y parvenir sont :

  • Réduction de la partition de l’OS dans Windows
  • Redimensionnement du disque OS dans Azure
  • Lancement du script sous PowerShell
  • Extension de la partition du système d’exploitation

Je recréé donc une nouvelle machine virtuelle, afin de faire avec vous cette opération de réduction « à chaud » :

Comme indiqué ici, la taille custom de mon disque OS est de 127GB.

Important : comme indiqué dans l’article de Jack et dans la source Microsoft, il est fortement recommandé de faire un snapshot du disque avant toute opération pour sauvegarder les données.

Dans un premier temps, nous nous connectons en RDP sur la machine virtuelle. Cet accès nous permet de changer la taille du lecteur C via un une première requête PowerShell, disposants des droits d’administration :

Get-Partition -DiskNumber 0

Cette requête nous donne le numéro de partition, utilisé après pour le redimensionnement.
La requête ci-dessus prend en compte le numéro du disque pour nous présenter les partitions associées.

Get-Partition -DiskNumber 0 -PartitionNumber 2 | Resize-Partition -Size 31GB

Cette simple commande redimensionne la partition du lecteur C.
L’effet de la requête est immédiatement visible 🙂
Existing Volumes
Comme indiqué sur le blog de Jack, vous pouvez rencontrer une erreur si la taille visée est trop petite.

La suite va se faire en dehors de la machine virtuelle. Il faut commencer par éteindre la machine virtuelle pour effectuer la copie des données :

Machine virtuelle arrêtée et dont les ressources ne sont plus allouées. Rappel : une désallocation des ressources entraînent un forte disque de perte des données disque D : temporaire.

Il donc falloir ici utiliser le module AZ sur votre poste via PowerShell pour continuer la suite des opérations. Voici une vidéo qui explique bien comment y arriver facilement :

Merci à David Lamb 🙂

La suite se fait avec le lancement du script donné par Jack, disponible depuis son GitHub via ce lien.

Aussi je vous conseille de passer par PowerShell ISE pour modifier facilement le script, car plusieurs variables vont devoir être modifiées :

  • Ressource ID du disque OS à modifier, que vous pouvez retrouver dans les propriétés du disque OS
  • Nom de la VM, que vous pouvez retrouver sur la page de la machine virtuelle
  • Nom de la souscription Azure, que vous pouvez retrouver sur la page de la machine virtuelle
Ressource ID du disque OS que vous pouvez retrouver dans les propriétés du disque OS.
Nom de la VM que vous pouvez retrouver sur la page de la machine virtuelle.
Nom de la souscription Azure que vous pouvez retrouver sur la page de la machine virtuelle.

Avant de lancer le script :

  • Celui-ci demande de posséder un certains nombres de droits pour effectuer toutes les tâches
  • Dans mon exemple (généralement non recommandé), j’ai utilisé un utilisateur avec le profil d’administrateur global du tenant Azure
  • A minima, vous devez disposer au moins des rôles de contributeur VM et de contributeur de compte de stockage dans Azure

Dans le détail, le script de Jack effectue les actions suivantes :

  • Création d’un compte de stockage temporaire
  • Création d’un container temporaire dans le nouveau compte de stockage
  • Copie du disque OS dans le compte de stockage temporaire sous forme de page blob
  • Modification la taille du page blob pour que le disque d’OS soit réduit
  • Reconversion du disque non managé en disque managé
  • Remplacement du disque OS actuel de la VM par le nouveau disque OS plus petit
  • Redémarrage de la machine virtuelle
  • Nettoyage du compte de stockage temporaire et de l’ancien disque managé

Le processus peut également être suivi depuis le portail Azure en constatant l’évolution du compte de stockage créé par le script de Jack :

Compte de stockage temporaire créé par le script.
Copie du disque OS en disque non managé (page blob).
Copie du disque non managé sur un second avec une taille réduite.
Suppression du page blob ayant la taille originale.
Un nouveau disque managé est créé à partir du dernier page blob et porte la mention « -new ».
Suppression du dernier page blob une fois la transformation faite en disque managé.
Comme on le constate sur la machine virtuelle utilisée dans mon exemple, le script détache l’ancien disque OS et rattache aussi le disque OS à taille réduite.
La machine virtuelle est redémarrée automatiquement par le script.
Suppression du compte de stockage temporaire en fin de script.

Il faut compter une bonne quinzaine de minutes pour que le script arrive à sa fin. Une connexion en RDP à cette dernière permet de réaliser la dernière étape du processus.

Compte tenu des volumes renseignés dans notre exemple, un reliquat d’espace est disponible sur le disque OS (522MB) :

Ce surplus peut être réintégré sur le lecteur C, comme indiqué sur cette image.
Fin de l’opération 🙂

Il faut donc compter au total une bonne vingtaine de minutes pour effectuer ce processus.

Conclusion

Il est donc bien possible de redimensionner un disque OS à plusieurs moments. Pensez toujours à faire des sauvegardes avant ce type d’opération ! Pensez à partager dans les commentaires vos autres sources d’apprentissage ????