Visualiser, démarrer et éteindre des machines virtuelles sur Windows Azure

Windows-Azure

Avant toute chose, vous devez disposer du SDK PowerShell pour Windows Azure. Ce dernier peut être téléchargé en vous rendant à l’adresse ci-dessous :

Tout en bas, recherchez Windows PowerShell et cliquez sur Installer.

Téléchargez et installez l’exécutable.

Une fois l’installation réalisée, démarrez une invite de commandes PowerShell.

Vous pouvez maintenant importer un nouveau module :

Import-Module "C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\Azure\Azure.psd1"

Vous devrez également disposer d’un fichier qui correspond à vos PublishSettings.

Il s’agit d’un petit fichier qui vous permet de vous identifier avec votre compte Outlook après de Windows Azure.

Pour télécharger ce fichier, connectez-vous à votre portail Windows Azure en vous rendant à cette adresse et téléchargez une copie du fichier sur votre poste de travail :

Nous pouvons maintenant importer ce fichier dans notre invite PowerShell avec la commande suivante pour nous identifier :


Import-AzurePublishSettingsFile "C:\tgi.publishsettings"

Important : Pour que les commandes ci-dessous fonctionnent, vous devez toujours saisir les deux commandes précédentes dans votre invite de commandes PowerShell. L’import des CmdLet propres à Windows Azure et vous identifier

Vous pouvez bien sûr renommer et positionner ce fichier dans un endroit plus accessible si vous devez être amené à l’utiliser régulièrement.

Pour avoir la liste des autres CmdLet disponibles, vous pouvez bien entendu exécuter la commande suivante :


Get-Command -Module Azure | ? Name -like "*AzureVM"

Vous pouvez maintenant afficher la liste des machines virtuelles actuellement sur votre espace Windows Azure avec la commande suivante :


Get-AzureVM

Vous obtiendrez alors le nom de la machine virtuelle ainsi que son état de fonctionnement.

Dans mon cas, la machine est actuellement démarrée et en cours de fonctionnement ReadyRole.

Il est également possible de réaliser simplement des actions basiques sur vos différentes machines virtuelles comme les démarrer, les éteindre ou bien encore les redémarrer.

Pour redémarrer une machine virtuelle Windows Azure en PowerShell, exécutez la commande suivante :


Restart-AzureVM –ServiceName "MyVM" -Name "MyVM"

Pour démarrer ou éteindre une machine virtuelle, le principe est le même que précédemment :


Start-AzureVM -ServiceName "MyVM" -Name "MyVM"

 


Stop-AzureVM -ServiceName "MyVM" -Name "MyVM"

Il est important de noter une petite spécificité en revanche sur l’arrêt d’une machine virtuelle. Si vous arrêtez votre VM avec la commande ci-dessus, votre machine virtuelle sera dé-provisionnée. Les données seront toujours là mais l’adresse IP sera désengagée de votre VM et pourra être utilisée ailleurs. Pour éviter de perdre l’adresse IP de votre VM, vous devez ajouter l’argument StayProvisionned dans votre commande :


Stop-AzureVM -ServiceName "MyVM" -Name "MyVM" –StayProvisionned

De cette manière, les ressources attribuées à votre VM restent à sa disposition. Lors du prochain démarrage de la VM elle retrouvera bien son IP d’origine.

Pourquoi ces quelques commandes sont intéressantes ? 🙂

La raison est simple, vous n’utilisez probablement pas vos machines virtuelles Windows Azure en permanence (en tout cas c’est mon cas). Et comme la facturation se trouve être effectuée à l’utilisation, il est très intéressant financièrement de pouvoir automatiser le démarrage et/ou l’arrêt de certaines machines virtuelles en fonction de vos besoins. 😉

Par exemple, si je dispose d’une machine virtuelle qui me sert uniquement de VPN, je ne l’utilise vraisemblablement qu’en journée voir même uniquement dans des cas spécifiques. Je dispose donc de tâches planifiées qui arrêtent ou démarrent certaines de mes machines virtuelles uniquement lorsque j’en ai besoin. Cela me permet d’optimiser l’utilisation que j’effectue de mon crédit Windows Azure. 🙂