Je cherche le moyen de stopper et de relancer, d'éteindre ou d'allumer une machine virtuelle dans l'azure de façon automatique.
Dans mon portail Azure j'ai un truc qui s'appelle AzureAutomationTutorialScript (MonCompteAutomation/AzureAutomationTutorialScript) c'est un peu barbare mais ça pourrait bien être le moyen de faire ce que je souhaite faire, éteindre ma machine pendant que suis off car cela me coûte de l'argent.
Question plus simple, c'est quoi un Runbook, je connais le hook une sorte de hack pour venir exécuter du code dans un driver microsoft mais le Runbook c'est quoi ?
C'est le moyen d'exécuter un script écrit graphiquement avec du workflow ou du PowerShell ou du Python.
En suite, on exécute ce Runbook dans l'Azure Automation.
Voici un exemple de workflow :
Exécution d'un Runbook dans l'Azure Automation |
Cela me parait bien compliqué, je retourne dans mon Tableau de bord Azure pour cliquer sur MonCompteAutomation et je vois si je ne peux pas directement créer un Runbook avec PowerShell.
Azure créer un Runbook pour démarrer une machine virtuelle |
Je clique sur Runbooks.
Azure créer un Runbook pour démarrer une machine virtuelle |
Dans mon Runbook, je peux créer un Runbook, je choisie PowerShell
Azure créer un Runbook pour démarrer une machine virtuelle |
Tout en bas de la page je peux Créer mon Runbook. En revenant sur le tableau de bord il apparaît dans la liste avec la Nom que je lui ai donné.
Azure créer un Runbook pour démarrer une machine virtuelle |
Je peux voir la ligne de comamde PowerShell que j'ai insérer dans mon Runbook.
Azure créer un Runbook pour démarrer une machine virtuelle |
Ligne de commande PowerShell que j'ai trouvée sur le site :
Akril - Visualiser, démarrer et éteindre des machines virtuelles sur Windows Azure
C'est intéressant cette notion d'éteindre une machine pour faire des économies dans l'Azure car c'est comme cela que ça fonctionne et c'est pour cette raison que je cherche à le faire.
La commande à exécuter est :
>Start-AzureVM -ServiceName "SODEVLOG-003" -Name "SODEVLOG-003"
Que croyez-vous qu'il arriva ? Hé oui vous avez deviné, cela ne fonctionne pas dans un Runbook de l'Azure !
Ce qui est important à ce stade, c'est de pouvoir déboguer ce qui ne va pas, pourquoi ça plante. Pour ça je clique sur Volet de test.
Tester un Runbook dans l'Azure |
A priori c'est la syntaxe de la commande !? J'essaye alors :
>Start-VM -ServiceName "SODEVLOG-003" -Name "SODEVLOG-003"
Mais cette fois ce sera une autre erreur ...
Tester un Runbook dans l'Azure |
Il est question de : run 'Import-Module Hyper-V'. Je vous laisse corriger les Runbooks.
Démarrer et stopper automatiquement une VM dans l'Azure
N'hésitez pas à commenter et souvenez-vous, ce n'est que du soft !
Par la suite je vais trouvé la documentation MS suivante :
Microsoft - Vue d’ensemble de Start/Stop VMs during off-hours
On y parle bien de Runbook mais attention ça pique les yeux ...
En continuant de cherche je trouve :
Microsoft - Configurer Start/Stop VMs during off-hours
C'est peu-être plus vers cela qu'il faut s'orienter pour stopper et démarrer des machines dans l'Azure, je suis surpris par la complexité de tout ça.