Kurz: Vytvoření runbooku pracovního postupu PowerShellu ve službě Automation
V tomto kurzu se seznámíte s vytvořením runbooku pracovního postupu PowerShellu ve službě Azure Automation. Runbooky pracovního postupu PowerShellu jsou textové runbooky založené na pracovním postupu Windows PowerShellu. Kód runbooku můžete vytvořit a upravit pomocí textového editoru na webu Azure Portal.
Poznámka:
Tento článek platí jenom pro PowerShell 5.1. Verze PowerShellu 7 nebo novější nepodporují pracovní postupy a zastaralé runbooky nelze aktualizovat. Doporučujeme používat textové runbooky PowerShellu 7.2 pro pokročilé funkce, jako je paralelní spouštění úloh. Přečtěte si další informace o omezeních runbooků pracovních postupů PowerShellu.
V tomto kurzu se naučíte:
- Vytvoření runbooku pracovního postupu v PowerShellu
- Testování a publikování runbooku
- Spuštění a sledování stavu úlohy runbooku
- Přidání ověřování pro správu prostředků Azure
- Aktualizace parametrů runbooku pro spuštění virtuálního počítače Azure
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Požadavky
- Účet Azure Automation s alespoň jednou spravovanou identitou přiřazenou uživatelem. Další informace najdete v tématu Povolení spravované identity.
- Moduly Az:
Az.Accounts
aAz.Compute
importovány do účtu Automation. Další informace najdete v tématu Import modulů Az. - Dva nebo více virtuálních počítačů Azure Vzhledem k tomu, že tyto počítače zastavíte a spustíte, neměly by se jednat o produkční virtuální počítače.
- Modul Azure Az PowerShell nainstalovaný na vašem počítači. Pokud chcete nainstalovat nebo upgradovat, přečtěte si, jak nainstalovat modul Azure Az PowerShell.
Přiřazení oprávnění ke spravovaným identitám
Přiřaďte oprávnění příslušné spravované identitě , aby mohla zastavit virtuální počítač. Runbook může používat spravovanou identitu přiřazenou systémem účtu Automation nebo spravovanou identitu přiřazenou uživatelem. Kroky jsou k dispozici pro přiřazení oprávnění ke každé identitě. Následující postup se používá na webu Azure Portal. Pokud dáváte přednost používání PowerShellu, přečtěte si téma Přiřazení rolí Azure pomocí Azure PowerShellu.
Přihlaste se do portálu Azure a přejděte k účtu úložiště Automation.
V části Nastavení účtu vyberte Identita (Preview).
Na kartě Přiřazený systém v části Oprávnění vyberte přiřazení rolí Azure a otevřete stránku přiřazení rolí Azure.
Výběrem možnosti + Přidat přiřazení role (Preview) otevřete stránku Přidat přiřazení role (Preview).
Vyberte příslušné hodnoty.
Vlastnost Description Obor Obor je sada prostředků, na které se přiřazení role vztahuje. V rozevíracím seznamu vyberte skupinu prostředků. Předplatné Toto pole by mělo být automaticky vyplněno vaším předplatným. Skupina prostředků V rozevíracím seznamu vyberte skupinu prostředků a udělte oprávnění identitě. Role V rozevíracím seznamu vyberte uživatele DevTest Labs. Vyberte Uložit a potom zavřete stránku přiřazení rolí Azure, abyste se vrátili na kartu Přiřazený systém.
Vyberte kartu Přiřazené uživatelem.
Výběrem spravované identity přiřazené uživatelem ze seznamu otevřete stránku Spravovaná identita .
Poznamenejte si ID klienta pro pozdější použití.
V nabídce vlevo vyberte přiřazení rolí Azure a potom + Přidat přiřazení role (Preview) a otevřete stránku Přidat přiřazení role (Preview).
Vyberte příslušné hodnoty.
Vlastnost Description Obor V rozevíracím seznamu vyberte skupinu prostředků. Předplatné Toto pole by mělo být automaticky vyplněno vaším předplatným. Skupina prostředků V rozevíracím seznamu vyberte skupinu prostředků a udělte oprávnění identitě. Role V rozevíracím seznamu vyberte uživatele DevTest Labs. Vyberte Uložit a potom zavřete stránku přiřazení rolí Azure, abyste se vrátili na kartu Přiřazené uživatelem.
Vytvoření nového runbooku
Začněte vytvořením jednoduchého runbooku pracovního postupu PowerShellu. Jednou z výhod pracovních postupů Windows PowerShellu je možnost provádět sadu příkazů paralelně, nikoli postupně jako u typického skriptu.
Poznámka:
Při vytváření runbooků vydaných verzí je na webu Azure Portal nové prostředí. Když vyberete okno> Runbooky Vytvořit runbook, otevře se nová stránka Vytvořit runbook s příslušnými možnostmi.
Na otevřené stránce účtu Automation v části Automatizace procesů vyberte Runbooky.
Vyberte + Vytvořit runbook.
- Pojmenujte runbook. Například otestujte.
- V rozevírací nabídce typu runbooku vyberte Pracovní postup PowerShellu.
- V rozevíracím seznamu verze modulu runtime vyberte 5.1.
- Zadejte příslušný popis.
- Vyberte Vytvořit.
Přidání kódu do runbooku
Kód můžete buď zadat přímo do runbooku, nebo můžete vybrat rutiny, runbooky a prostředky z ovládacího prvku Knihovna a přidat je do runbooku s libovolnými souvisejícími parametry. V tomto kurzu zadáte kód přímo do runbooku.
Runbook je aktuálně prázdný jenom s požadovaným workflow
klíčovým slovem, názvem runbooku a složenými závorkami, které zapisují celý pracovní postup.
workflow MyFirstRunbook-Workflow
{
}
Pomocí klíčového
Parallel
slova můžete vytvořit blok skriptu s více příkazy, které se budou spouštět souběžně. Mezi složenými závorkami zadejte následující kód:parallel { Write-Output "Parallel" Get-Date Start-Sleep -Seconds 3 Get-Date } Write-Output " `r`n" Write-Output "Non-Parallel" Get-Date Start-Sleep -Seconds 3 Get-Date
Runbook uložte výběrem možnosti Uložit.
Otestování runbooku
Než runbook publikujete, abyste ho zpřístupňovali v produkčním prostředí, měli byste ho otestovat, abyste měli jistotu, že funguje správně. Testování runbooku spustí jeho verzi Konceptu a umožňuje interaktivní zobrazení jeho výstupu.
Výběrem testovacího podokna otevřete stránku Test .
Výběrem možnosti Start spusťte test. Vytvoří se úloha runbooku a její stav se zobrazí v podokně.
Stav úlohy se spustí ve frontě, což znamená, že úloha čeká na zpřístupnění pracovního procesu runbooku v cloudu. Stav se změní na Začátek, když pracovní proces deklaruje úlohu. Nakonec se stav Spustí, když se runbook skutečně spustí.
Po dokončení úlohy runbooku se na stránce Test zobrazí výstup. Výstup by měl vypadat podobně jako na následujícím obrázku:
Zkontrolujte výstup. Vše v
Parallel
bloku, včetněStart-Sleep
příkazu, se spustí ve stejnou dobu. Stejné příkazy mimoParallel
blok běžely postupně, jak je znázorněno různými časovými razítky data.Zavřete stránku Test a vraťte se na plátno.
Publikování a spuštění runbooku
Vytvořený runbook je stále v režimu konceptů. Před spuštěním v produkčním prostředí musíte runbook publikovat. Když runbook publikujete, přepíšete vydanou verzi verzí v režimu konceptu. V tomto případě zatím ještě publikovanou verzi nemáte, protože jste runbook teprve vytvořili.
Po zobrazení výzvy vyberte Publikovat , abyste runbook publikovali, a pak po zobrazení výzvy ano .
Pole Stav teď zobrazuje publikováno. Projděte si možnosti v horní části, které vám umožní spustit runbook nyní, naplánovat budoucí čas spuštění nebo vytvořit webhook , aby runbook mohl být spuštěn prostřednictvím volání HTTP. Pokud chcete runbook spustit, vyberte Spustit a po zobrazení výzvy vyberte Ano.
Otevře se stránka Úloha pro úlohu runbooku, která byla vytvořena. V takovém případě ponechte stránku otevřenou, abyste mohli sledovat průběh úlohy. Pole Stav odpovídá stavům, které jste viděli při testování runbooku.
Jakmile se zobrazí stav runbooku Dokončeno, vyberte Výstup. Výstup by měl vypadat podobně jako výstup testu.
Zavřete stránku Úlohy a vraťte se na stránku Přehled runbooku.
V části Prostředky vyberte Úlohy. Tato stránka obsahuje seznam všech úloh vytvořených vaším runbookem. Měla by se zobrazit jenom jedna úloha, protože jste ji spustili jenom jednou.
Výběrem úlohy otevřete stejnou stránku úlohy , kterou jste zobrazili při spuštění runbooku. Na této stránce můžete zobrazit podrobnosti o libovolné úloze vytvořené pro runbook. Zavřete stránku Úlohy a vraťte se na stránku Přehled runbooku.
Přidání ověřování pro správu prostředků Azure
Runbook jste otestovali a publikovali, ale zatím nedělá nic užitečného. Chcete po něm, aby spravoval prostředky Azure. To nejde udělat, pokud se neověří pomocí přihlašovacích údajů pro předplatné. Runbook používá spravovanou identitu přiřazenou systémem účtu Automation k ověření v Azure k provedení akce správy na virtuálním počítači. Runbook je možné snadno upravit tak, aby používal spravovanou identitu přiřazenou uživatelem.
Vyberte Přehled a pak upravte textový editor.
Nahraďte stávající kód následujícím kódem:
workflow MyFirstRunbook-Workflow { $resourceGroup = "resourceGroupName" # Ensures you do not inherit an AzContext in your runbook Disable-AzContextAutosave -Scope Process # Connect to Azure with system-assigned managed identity Connect-AzAccount -Identity # set and store context $AzureContext = Set-AzContext -SubscriptionId "<SubscriptionID>" }
$resourceGroup
Upravte proměnnou platnou hodnotou představující vaši skupinu prostředků.Pokud chcete, aby runbook běžel se spravovanou identitou přiřazenou systémem, nechejte kód tak, jak je. Pokud chcete použít spravovanou identitu přiřazenou uživatelem, pak:
- Z řádku 9 odeberte
Connect-AzAccount -Identity
, - Nahraďte ho a
Connect-AzAccount -Identity -AccountId <ClientId>
- Zadejte ID klienta, které jste získali dříve.
- Z řádku 9 odeberte
Vyberte Uložit a potom podokno Test.
Výběrem možnosti Start spusťte test. Po dokončení by se měl zobrazit výstup podobný následujícímu, který zobrazuje základní informace z vašeho účtu. Tato akce potvrzuje platnost přihlašovacích údajů.
Zavřete stránku Test a vraťte se na plátno.
Přidání kódu pro spuštění virtuálního počítače
Teď, když se runbook ověřuje v předplatném Azure, můžete spravovat prostředky. Přidejte příkaz pro spuštění virtuálního počítače. Můžete vybrat libovolný virtuální počítač ve svém předplatném Azure a prozatím ho pevně zakódujete v runbooku.
Níže uvedený kód přidejte jako poslední řádek bezprostředně před pravou složenou závorku. Nahraďte
VMName
skutečným názvem virtuálního počítače.Start-AzVM -Name "VMName" -ResourceGroupName $resourceGroup -DefaultProfile $AzureContext
Otestujte runbook a ověřte, že se virtuální počítač spustil. Pak se vraťte na plátno.
Přidání vstupních parametrů do runbooku
Runbook aktuálně spouští virtuální počítač, který jste v runbooku pevně zakódovali. Bude užitečnější, pokud můžete určit virtuální počítač při spuštění runbooku. Přidejte do runbooku vstupní parametry pro zajištění této funkce.
Řádek 3
$resourceGroup = "resourceGroupName"
nahraďte následujícím kódem:Param( [string]$resourceGroup, [string]$VMName )
Start-AzVM
Předchozí příkaz nahraďte následujícím kódem:Start-AzVM -Name $VMName -ResourceGroupName $resourceGroup -DefaultProfile $AzureContext
Otestujte runbook a ověřte, že se virtuální počítač spustil. Pak se vraťte na plátno.
Správa více virtuálních počítačů současně
Konstruktor můžete použít ForEach -Parallel
ke zpracování příkazů pro každou položku v kolekci současně. Upravte kód tak, aby runbook teď fungoval:
- Přijměte kolekci názvů virtuálních počítačů.
- Přijměte parametr pro zastavení nebo spuštění virtuálních počítačů a
- Paralelní provádění akcí na všech virtuálních počítačích
Nahraďte veškerý existující kód následujícím kódem:
workflow MyFirstRunbook-Workflow { param ( [string]$resourceGroup, [string[]]$VMs, [string]$action ) # Ensures you do not inherit an AzContext in your runbook Disable-AzContextAutosave -Scope Process # Connect to Azure with system-assigned managed identity Connect-AzAccount -Identity # set and store context $AzureContext = Set-AzContext -SubscriptionId "<SubscriptionID>" # Start or stop VMs in parallel if ($action -eq "Start") { ForEach -Parallel ($vm in $VMs) { Start-AzVM -Name $vm -ResourceGroupName $resourceGroup -DefaultProfile $AzureContext } } elseif ($action -eq "Stop") { ForEach -Parallel ($vm in $VMs) { Stop-AzVM -Name $vm -ResourceGroupName $resourceGroup -DefaultProfile $AzureContext -Force } } else { Write-Output "`r`n Action not allowed. Please enter 'stop' or 'start'." } }
Pokud chcete, aby runbook běžel se spravovanou identitou přiřazenou systémem, nechejte kód tak, jak je. Pokud chcete použít spravovanou identitu přiřazenou uživatelem, pak:
- Z řádku 9 odeberte
Connect-AzAccount -Identity
, - Nahraďte ho a
Connect-AzAccount -Identity -AccountId <ClientId>
- Zadejte ID klienta, které jste získali dříve.
- Z řádku 9 odeberte
Po zobrazení výzvy vyberte Uložit, pak Publikovat a potom Ano .
Na stránce Přehled vyberte Start.
Vyplňte parametry a pak vyberte OK.
Parametr Popis RESOURCEGROUP Zadejte název skupiny prostředků virtuálních počítačů. Virtuální počítače Názvy virtuálních počítačů zadejte pomocí následující syntaxe: ["VM1","VM2","VM3"]
Akce Zadejte stop
nebostart
.Přejděte na seznam virtuálních počítačů a aktualizujte stránku každých několik sekund. Všimněte si, že akce pro každý virtuální počítač probíhá paralelně. Bez klíčového
-Parallel
slova by se akce prováděly postupně. I když se virtuální počítače spustí paralelně, každý virtuální počítač může dosáhnout fáze spuštění v mírně odlišných časech na základě charakteristik jednotlivých virtuálních počítačů.
Vyčištění prostředků
Pokud tento runbook nebudete dál používat, odstraňte ho pomocí následujících kroků:
- Přejděte ke svému účtu Automation.
- V části Automatizace procesů vyberte Runbooky.
- Vyberte runbook.
- Na stránce Přehled runbooku vyberte Odstranit.
Další kroky
V tomto kurzu jste vytvořili runbook pracovního postupu PowerShellu. Podívejte se na runbooky Pythonu 3: