Parmi les dernières nouveautés Microsoft Azure, côté IaaS, on peut citer l’arrivée de VM Agent et les VM Extensions dont le principal objectif est l’installation de composants permettant de configurer, gérer et accélérer les machines virtuelles Azure.

Avant l’arrivée des VM Extensions, les principales solutions pour installer et gérer des logiciels sur les VM étaient :

  1. Préinstaller sur un disque vhd avant de créer la VM,
  2. Se connecter sur la VM et installer le soft manuellement,
  3. Installer via remote PowerShell.

Les VMExtensions :

Les VM Extensions permettent donc de rajouter des fonctionnalités aux VM et de simplifier les opérations de management de ces dernières. Les VM Extensions peuvent être installées sur n’importe quelle VM, on peut en ajouter, les mettre à jour ou en supprimer indépendamment du cycle de vie des VMs. Ces extensions sont écrites, publiées et supportées par des éditeurs référencés chez Microsoft. A ce jour deux extensions sont disponibles et fournies par Microsoft : BGInfo et VMAccess.

BGInfo permet d’afficher des informations système du le fond d’écran de la VM comme le montre la capture d’écran suivante :

Pour activer cette extension :

Get-AzureVM –ServiceName <NomduService> –Name <NomdelaVM>| Set-AzureVMBGInfoExtension | Update-AzureVM

Pour la désactiver, il faut au préalable récupérer deux informations : le ReferenceName et la Version, grâce à la commande indiquée dans la capture d’écran :

Puis exécutez la commande suivante :

Get-AzureVM –ServiceName <NomduService> –Name <NomdelaVM>| Set-AzureVMBGInfoExtension –ReferenceName <ReferenceName> -Version <Version> | Update-AzureVM

Installer le VM Agent :

L’installation d’un VMAgent se fait lors de la création d’une VM comme indiqué sur la capture ci-dessous. La case est cochée par défaut.

Si vos VM ont été créées avant l’apparition de cette fonctionnalité, il est tout à fait possible de le rajouter à postériori. Tout d’abord, pour vérifier s’il est installé, vous pouvez exécuter la commande suivante :

$vm = Get-AzureVM –ServiceName &lt;ServiceName&gt;
$vm.VM.ProvisionGuestAgent

est égale à « true » si l’agent est déjà installé. Sinon, vous devez télécharger un MSI pour l’installer et l’exécuter. Le MSI est téléchargeable ici.

Une fois installé, vous devez indiquer à la plateforme Azure qu’il est bien installé. Des commandes PowerShell le permettent :

$vm = Get-AzureVM –ServiceName <ServiceName> -Name <Name>
$vm.VM.ProvisionGuestAgent = $TRUE
Update-AzureVM –Name <Name> -VM $vm.VM –ServiceName <ServiceName>

Votre VM est maintenant prête à exécuter les VM Extensions.

Conclusion :

Les VM Extensions sont très utiles car elles vont permettre d’automatiser l’installation de composants. L’extension, à mon sens, la plus intéressante est la « Custom Script Extension », elle permet d’exécuter notamment un script PowerShell sur les VM lors de leur création ou pendant le runtime. Cette extension combinée à PowerShell DSC (Desired State Configuration), fonctionnalité encore peu connue et donc peu utilisée de PowerShell) va rendre possible des scénarios de déploiement continu de VM ! Tout un programme, que je vous propose de suivre dans un prochain billet. Stay tuned !