Azure Automation je cloudová služba od Microsoftu, ktorá umožňuje automatizovať opakujúce sa úlohy v Azure aj mimo neho. Používa sa hlavne na správu a orchestráciu úloh pomocou PowerShell skriptov, Python skriptov alebo grafických workflowov (Runbookov).
Kľúčové funkcie Azure Automation:
- Runbooky – Umožňujú automatizovať úlohy v Azure a mimo neho.
- Scheduled Jobs – Plánovanie úloh na automatické spustenie v konkrétnych časoch.
- Hybrid Runbook Worker – Spustenie skriptov na on-premises serveroch.
- Update Management – Automatizácia aktualizácií Windows/Linux VM.
- Change Tracking – Monitorovanie zmien konfigurácií v systémoch.
- State Configuration (DSC) – Automatizácia konfigurácie infraštruktúry pomocou PowerShell DSC.
Ako automatizovať skripty v Azure Automation?
Azure Automation umožňuje spúšťanie skriptov pomocou Runbookov, ktoré môžu byť:
- PowerShell (
.ps1
) - Python (
.py
) - Grafické workflowy (drag & drop)
1. Vytvorenie PowerShell Runbooku na Azure Portal
1.1 Vytvorenie Automation Account
- V Azure Portal → Automation Accounts → Create.
- Vyplň názov a Resource Group.
- Klikni Create.
1.2 Vytvorenie Credential
Aby bolo možné používať Service Principal alebo iné prihlasovacie údaje v Runbooku, je potrebné ich uložiť ako Credential Asset v Azure Automation.
Postup:
- V Azure Portal → Otvor Automation Account.
- V ľavom menu vyber Credentials.
- Klikni na Add a credential.
- Vyplň:
- Name:
ServicePrincipal
- User Name:
client_id
(z App Registration v Azure AD) - Password:
client_secret
- Name:
- Klikni Create.
1.3 Vytvorenie Runbooku
- V Automation Account prejdeš na Runbooks → Create a Runbook.
- Vyber PowerShell ako typ a zadaj názov, napr.
Refresh-Model.ps1
. - Vložíš kód, napr.:
param
(
[Parameter (Mandatory = $false)]
[object] $WebhookData,
[Parameter (Mandatory = $false)]
[String] $DatabaseName,
[Parameter (Mandatory = $false)]
[String] $AnalysisServer,
[Parameter (Mandatory = $false)]
[String] $RefreshType
)
$_Credential = Get-AutomationPSCredential -Name "ServicePrincipal"
# If runbook was called from Webhook, WebhookData will not be null.
if ($WebhookData)
{
# Retrieve AAS details from Webhook request body
$atmParameters = (ConvertFrom-Json -InputObject $WebhookData.RequestBody)
Write-Output "CredentialName: $($atmParameters.CredentialName)"
Write-Output "AnalysisServicesDatabaseName: $($atmParameters.AnalysisServicesDatabaseName)"
Write-Output "AnalysisServicesServer: $($atmParameters.AnalysisServicesServer)"
Write-Output "DatabaseRefreshType: $($atmParameters.DatabaseRefreshType)"
$_databaseName = $atmParameters.AnalysisServicesDatabaseName
$_analysisServer = $atmParameters.AnalysisServicesServer
$_refreshType = $atmParameters.DatabaseRefreshType
Invoke-ProcessASDatabase -DatabaseName $_databaseName -RefreshType $_refreshType -Server $_analysisServer -ServicePrincipal -Credential $_credential
}
else
{
Invoke-ProcessASDatabase -DatabaseName $DatabaseName -RefreshType $RefreshType -Server $AnalysisServer -ServicePrincipal -Credential $_Credential
}
4. Klikni Publish.
2. Naplánovanie automatického spustenia
Po vytvorení Runbooku môžeš nastaviť jeho automatické spustenie.
- V Runbooku → Schedules → Add a Schedule.
- Nastavíš každý deň o 3:00 AM.
- Pripojíš parametre (napr. názov databázy).
Odborník na kybernetickú bezpečnosť, správu Azure Cloud a VMware onprem. Využíva technológie, ako Checkmk a MRTG, na monitorovanie siete a zvyšovanie efektívnosti a bezpečnosti IT infraštruktúry. Kontakt: hasin(at)mhite.sk