Azure Automation je cloudová služba společnosti Microsoft, která umožňuje automatizovat opakující se úkoly v prostředí Azure i mimo něj. Používá se především ke správě a koordinaci úkolů pomocí skriptů v jazyce PowerShell, skriptů v jazyce Python nebo grafických pracovních postupů (runbooků).
Azure Automation – Co to je a k čemu slouží? Klíčové funkce Azure Automation:
- Runbooky – Umožňují automatizovat úlohy v Azure i mimo něj.
- Scheduled Jobs – Plánování úloh pro automatické spuštění v konkrétních časech.
- Hybrid Runbook Worker – Spouštění skriptů na lokálních serverech.
- Správa aktualizací – Automatizace aktualizací virtuálních strojů Windows/Linux.
- Change Tracking – Sledování změn konfigurací v systémech.
- State Configuration (DSC) – Automatizace konfigurace infrastruktury pomocí PowerShell DSC.
Jak automatizovat skripty v Azure Automation?
Azure Automation umožňuje spouštět skripty pomocí runbooků, které mohou být:
- PowerShell (
.ps1) - Python (
.py) - grafické pracovní postupy (drag & drop)
1. Vytvoření runbooku v PowerShellu na portálu Azure
1.1 Vytvoření účtu Automation
- V portálu Azure → Automation Accounts → Create.
- Zadejte název a skupinu prostředků.
- Klikněte na Create.
1.2 Vytvoření přihlašovacích údajů
Aby bylo možné v runbooku používat službu Service Principal nebo jiné přihlašovací údaje, je nutné je uložit jako Credential Asset v Azure Automation.
Postup:
- V portálu Azure → Otevřete Automation Account.
- V levém menu vyberte položku „Credentials“.
- Klikněte na Add a credential.
- Vyplňte:
- Název:
ServicePrincipal - User Name:
client_id(z App Registration v Azure AD) - Heslo:
client_secret
- Název:
- Klikněte na Create.
.png)
1.3 Vytvoření runbooku
- V účtu Automation přejděte na Runbooks → Create a Runbook.
- Jako typ vyberte PowerShell a zadejte název, např.
Refresh-Model.ps1. - Vložte kód, např.:
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. Klikněte na Publish.
.png)
.png)
.png)
2. Naplánování automatického spuštění
Po vytvoření runbooku můžeš nastavit jeho automatické spuštění.
- V runbooku → „Schedules“ → „Add a Schedule“.
- Nastavíš každý den v 3:00 ráno.
- Připojte parametry (např. název databáze).
.png)
.png)
.png)
.png)
.png)
Další odborné články, návody a zajímavosti z oblasti IT najdete na webu: www.virtualall.sk