Blog de Florent Appointaire

Blog sur les technologies Microsoft (Windows Server, System Center, Azure, Windows Azure Pack/Azure Stack, etc;)

[Azure] Créer votre premier Runbook PowerShell avec Azure Automation

AzureAutomation

Je vais aujourd’hui vous montrer comment créer un Runbook sur Azure Automation, avec PowerShell.

Pour démarrer, j’ai une suscription Azure avec un Azure Active Directory lié:

SNAGHTMLc2d20

La première étape va être de créer un compte dans cet Azure AD pour exécuter le Runbook PowerShell sur Azure Automation. Ce compte est un utilisateur standard, mais il a les droits administrateur sur la suscription Azure, où le Runbook est exécuté:

image60image61SNAGHTMLf7287image62

Maintenant, déconnecter vous et connectez vous à Azure avec le nouvel utilisateur pour changer son mot de passe. Une fois terminé, naviguez avec votre compte, sur https://portal.azure.com et sélectionnez Automation Accounts:

image63

Cliquez sur Add et remplissez chaque champ:

image64

Quand le compte est créé, déplacez vous à l’intérieur et cliquez sur Assets. Cliquez ensuite sur Credentials > Add a credential pour ajouter un compte qui exécutera le runbook. Utilisez le nom d’utilisateur et le mot de passe du compte Azure AD que vous avez créé auparavant:

image65

Ajoutez ensuite des variables qui seront utilisées dans votre script PowerShell, dans mon cas, le nom des VMs:

image66

Créez également des planifications si vous voulez lancer automatiquement des runbooks:

image67

Quand vous avez terminé, retournez à la page d’accueil du compte et sélectionnez Runbooks:

image68

Créez un nouveau Runbook, avec le nom Connect-AzureSubscription et comme Runbook type, PowerShell. Ce runbook récupèrera les informations de connexion que l’on a créé plus tôt:

image69

Utilisez le script suivant, en adaptant le nom de la commande Get-AutomationPSCredential:

$Cred = Get-AutomationPSCredential -Name ‘SCUGBECred’
Add-AzureAccount -Credential $Cred

Select-AzureSubscription -SubscriptionName “Free Trial”

Cliquez sur Save puis sur Publish:

image70

Créez un nouveau runbook, et commez le Get-AzureVM. Collez le script suivant, en l’adaptant avec votre nom de variable:

.\Connect-AzureSubscription.ps1
$VMNames = Get-AutomationVariable -Name ‘VMName’
$VMName = $VMNames.split(“,”);

foreach($VM in $VMName){

$serviceName = Get-AzureVM | Where {($_.Name -eq $VM)}
$service = $serviceName.ServiceName
$status = $serviceName.PowerState
Write-Output “The VM $VM with service name $service is $status”

}

Sauvegardez. Vous pouvez essayer le script, via le Test pane:

SNAGHTML6edc9d

Comme vous pouvez le voir, le test est effectué sur les 2 VM que j’avais renseigné dans ma varibale VMName. Cliquez sur Publish pour publier le runbook pour qu’il puisse être utilisé. Vous pouvez également lié la planification créée précédemment:

image71

Après que l’heure de la tâche soit passée, votre script a dû s’exécuter. Allez dans Jobs pour voir si le job est terminé et vous pouvez cliquez sur Output pour avoir le résultat (si vous avez mis des logs ou autre):

image72image73

Cette nouvelle fonctionnalité est très intéressante dans le cas de VM de dev. Vous pouvez toutes les arrêter la nuit pour économiser de l’argent.

Facebook Like
Anonymous