Inhalt

Azure Automation Runbook Activities

Inhalt

Wer bei der Ausführung eines Azure Automation Runbooks auf Daten (Assets) aus dem Azure Automation Account zugreifen möchte hat mehrere Möglichkeiten dies zu tun.

PowerShell cmdlets und Runbook Activities.

Die bekannteste Möglichkeit dürfte der Einsatz der AzureRM Cmdlets sein. Jedoch ist das Arbeiten mit diesen cmdlets “umständlich”, da immer noch eine Authentifizierung an Azure durchgeführt werden muss. Mittels RunAs Account und verteiltem Zertifikat ist eine Anmeldung auch ohne hinterlegtes Kennwort möglich, macht aber bei einem Tenant mit mehreren Subscriptions alles etwas komplizierter.

Eine zusätzliche Einschränkung ist außerdem, dass bei bestimmten Assets die hinterlegten Daten nicht ausgelesen werden können. Es werden bei z.B. Get-AzureRmAutomationCertificate nur die Metadaten zurückgeliefert.

Daher gibt es für die Verwendung in Runbooks und DSC Konfigurationen sogenannte Activities. In manchen Hilfeseiten von Microsoft auch Workflow Activities oder Runbook Activities genannt. Sie unterscheiden sich von den AzureRM Cmdlets darin, das es keine Cmdlets sind. Sie können nur im Kontext eines Runbooks oder einer DSC Konfig verwendet werden.

Der große Vorteil bei diesen Activities ist, man muss sich nicht um die Authentifizierung kümmern. Die Daten können, im Kontext des aktuellen Automation Accounts, ausgelesen und beschrieben werden.

Neue Objekte können jedoch nicht angelegt werden. Hierfür müssen wieder die AzureRM Cmdlets eingesetzt werden.

Im Online Runbok Editor können diese Activities direkt in ein Runbook hinzugefügt werden.

/azure-automation-runbook-activities/images/AzureAutomationAssetsAddToCanvas.png

Folgende Runbook Activities habe ich in der offiziellen Dokumentation von Microsoft gefunden.

Certificate assets

Get-AutomationCertificate -Name 'AzureRunAsCertificate'

Connection assets

Get-AutomationConnection -Name 'AzureRunAsConnection'

Credential assets

Get-AutomationPSCredential -Name 'CredentialAsset'

Variable assets

Get-AutomationVariable -Name 'VariableName'
Set-AutomationVariable -Name 'VariableName' -Value <System.Object>