Oktatóanyag: PowerShell-munkafolyamat-forgatókönyv létrehozása az Automationben
Egy Azure Automation PowerShell-alapú munkafolyamat-forgatókönyv létrehozását bemutató oktatóanyag. A PowerShell-munkafolyamat-runbookok a Windows PowerShell-munkafolyamaton alapuló forgatókönyvek. A runbook kódját az Azure Portal szövegszerkesztőjével hozhatja létre és szerkesztheti.
Megjegyzés:
Ez a cikk a PowerShell 5.1-hez használható; A PowerShell 7.1 (előzetes verzió) és a PowerShell 7.2 nem támogatja a munkafolyamatokat.
Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- PowerShell-alapú munkafolyamati runbook létrehozása
- A runbook tesztelése és közzététele
- A runbook-feladat állapotának futtatása és nyomon követése
- Hitelesítés hozzáadása az Azure-erőforrások kezeléséhez
- Runbook-paraméterek frissítése Azure-beli virtuális gép indításához
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Előfeltételek
- An Azure Automation account with at least one user-assigned managed identity. További információ: Felügyelt identitás engedélyezése.
- Az modules:
Az.Accounts
andAz.Compute
imported into the Automation account. For more information, see Import Az modules. - Két vagy több Azure-beli virtuális gép. Mivel leállítja és elindítja ezeket a gépeket, nem szabad éles virtuális gépeknek lenniük.
- A számítógépre telepített Azure Az PowerShell-modul . A telepítéssel vagy frissítéssel kapcsolatban tekintse meg az Azure Az PowerShell-modul telepítését ismertető témakört.
Engedélyek hozzárendelése felügyelt identitásokhoz
Rendeljen engedélyeket a megfelelő felügyelt identitáshoz , hogy lehetővé tegye a virtuális gép leállítását. A runbook használhatja az Automation-fiók rendszer által hozzárendelt felügyelt identitását vagy egy felhasználó által hozzárendelt felügyelt identitást. A lépések meg vannak adva az egyes identitásokhoz való engedélyek hozzárendeléséhez. Az alábbi lépések az Azure Portalt használják. Ha inkább a PowerShellt szeretné használni, olvassa el az Azure-szerepkörök hozzárendelése az Azure PowerShell használatával című témakört.
Jelentkezzen be az Azure Portalra , és lépjen az Automation-fiókjához.
A Fiók Gépház területen válassza az Identitás (előzetes verzió) lehetőséget.
A Rendszer hozzárendelt lap Engedélyek csoportjában válassza az Azure-szerepkör-hozzárendelések lehetőséget az Azure-szerepkör-hozzárendelések lap megnyitásához.
Válassza a + Szerepkör-hozzárendelés hozzáadása (előzetes verzió) lehetőséget a Szerepkör-hozzárendelés hozzáadása (előzetes verzió) lap megnyitásához.
Válassza ki a megfelelő értékeket.
Property Leírás Scope A hatókör olyan erőforrások készlete, amelyekre a szerepkör-hozzárendelés vonatkozik. A legördülő listában válassza az Erőforráscsoport lehetőséget. Előfizetés Ezt a mezőt automatikusan ki kell tölteni az előfizetésével. Erőforráscsoport A legördülő listában válassza ki az erőforráscsoportot az identitásengedélyek átadásához. Szerepkör A legördülő listában válassza a DevTest Labs-felhasználó lehetőséget. Válassza a Mentés lehetőséget, majd zárja be az Azure-szerepkör-hozzárendelések lapot a rendszer által hozzárendelt lapra való visszatéréshez.
Válassza a Felhasználó által hozzárendelt lapot.
Válassza ki a felhasználó által hozzárendelt felügyelt identitást a listából a Felügyelt identitás lap megnyitásához.
Jegyezze fel az ügyfél-azonosítót későbbi használatra.
A bal oldali menüben válassza az Azure-szerepkör-hozzárendelések, majd a + Szerepkör-hozzárendelés hozzáadása (előzetes verzió) lehetőséget a szerepkör-hozzárendelés hozzáadása (előzetes verzió) lap megnyitásához.
Válassza ki a megfelelő értékeket.
Property Leírás Scope A legördülő listában válassza az Erőforráscsoport lehetőséget. Előfizetés Ezt a mezőt automatikusan ki kell tölteni az előfizetésével. Erőforráscsoport A legördülő listában válassza ki az erőforráscsoportot az identitásengedélyek átadásához. Szerepkör A legördülő listában válassza a DevTest Labs-felhasználó lehetőséget. Válassza a Mentés lehetőséget, majd zárja be az Azure-szerepkör-hozzárendelések lapot a Felhasználó által hozzárendelt lapra való visszatéréshez.
Új runbook létrehozása
Először hozzon létre egy egyszerű PowerShell-munkafolyamat-forgatókönyvet. A Windows PowerShell-munkafolyamatok egyik előnye, hogy egy parancskészletet párhuzamosan hajthat végre, nem pedig egymás után, mint egy tipikus szkript esetén.
Megjegyzés:
A kiadási runbook létrehozása új felhasználói élményt nyújt az Azure Portalon. Amikor a Runbookok panelt >választja: Runbook létrehozása, megnyílik egy új lap: Runbook létrehozása a megfelelő beállításokkal.
A megnyitott Automation-fióklap Folyamatautomatizálás területén válassza a Runbookok lehetőséget
Válassza a + Runbook létrehozása lehetőséget.
- Nevezze el a runbookot. Például tesztelje.
- A Runbook típusa legördülő menüben válassza a PowerShell-munkafolyamat lehetőséget.
- A Futtatókörnyezet verzió legördülő menüjében válassza az 5.1-es elemet.
- Adja meg a vonatkozó leírást.
- Válassza a Létrehozás lehetőséget.
Kód hozzáadása a runbookhoz
Beírhatja a kódot közvetlenül a runbookba, vagy kiválaszthatja a parancsmagokat, runbookokat és objektumokat a Könyvtár vezérlőelemből, és hozzáadhatja őket a runbookhoz bármilyen kapcsolódó paraméterrel. Ebben az oktatóanyagban közvetlenül a runbookba írja be a kódot.
A runbook jelenleg üres, csak a szükséges Workflow
kulcsszóval, a runbook nevével és a teljes munkafolyamatot tartalmazó zárójelekkel.
Workflow MyFirstRunbook-Workflow
{
}
A kulcsszóval
Parallel
több parancsot tartalmazó szkriptblokkot hozhat létre, amelyek egyidejűleg futnak. Adja meg a következő kódot a zárójelek között :Parallel { Write-Output "Parallel" Get-Date Start-Sleep -s 3 Get-Date } Write-Output " `r`n" Write-Output "Non-Parallel" Get-Date Start-Sleep -s 3 Get-Date
Mentse a runbookot a Mentés gombra kattintva.
A runbook tesztelése
Mielőtt közzétennénk a runbookot, hogy éles környezetben elérhetővé tegyük, tesztelje, hogy megfelelően működik-e. A runbook tesztelése futtatja a Piszkozat verzióját, és lehetővé teszi a kimenet interaktív megtekintését.
Válassza a Teszt panelt a Teszt lap megnyitásához.
A teszt elindításához válassza a Start elemet. Létrejön egy runbook-feladat , amelynek állapota megjelenik a panelen.
A feladat állapota üzenetsorként kezdődik, ami azt jelzi, hogy a feladat arra vár, hogy a felhőben egy runbook-feldolgozó elérhetővé váljon. Az állapot akkor változik, amikor egy feldolgozó a feladatot jogcímként állítja be. Végül az állapot akkor lesz futtatva, amikor a runbook ténylegesen elindul.
Amikor a runbook-feladat befejeződik, a Teszt lap megjeleníti a kimenetét. A kimenetnek a következő képhez hasonlóan kell kinéznie:
Tekintse át a kimenetet. A blokk minden elemét
Parallel
, beleértve aStart-Sleep
parancsot is, egyszerre hajtja végre. A blokkon kívüliParallel
parancsok egymás után futottak, ahogy a különböző dátumidőbélyegek is mutatják.Zárja be a Teszt lapot a vászonra való visszatéréshez.
A runbook közzététele és indítása
A létrehozott runbook még Piszkozat módban van. Mielőtt az éles környezetben futtathatná, közzé kell tennie. Amikor elérhetővé tesz egy forgatókönyvet, felülírja a Közzétett verziót a Piszkozattal. Ebben az esetben még nincs Közzétett verzió, mivel még csak most hozta létre a runbookot.
Válassza a Közzététel lehetőséget a runbook közzétételéhez, majd a rendszer kéri az Igen lehetőséget.
Az Állapot mezőben megjelenik a Közzétett mező. Tekintse át a felül látható beállításokat, amelyekkel elindíthatja a runbookot, ütemezhet egy későbbi kezdési időpontot, vagy létrehozhat egy webhookot , hogy a runbook http-hívással indítható legyen. A runbook elindításához kattintson az Indítás, majd az Igen gombra, amikor a rendszer rákérdez.
Megnyílik egy feladatlap a létrehozott runbook-feladathoz. Ebben az esetben hagyja nyitva az oldalt, hogy megnézhesse a feladat előrehaladását. Az Állapot mező megegyezik a runbook tesztelése során látott állapotokkal.
Miután a runbook állapota befejeződött, válassza a Kimenet lehetőséget. A kimenetnek a tesztkimenethez hasonlóan kell kinéznie.
Zárja be a Feladat lapot a runbook áttekintési lapjára való visszatéréshez.
Az Erőforrások területen válassza a Feladatok lehetőséget. Ez a lap felsorolja a runbook által létrehozott összes feladatot. Csak egy feladatot kell látnia a listában, mivel a feladatot csak egyszer futtatta.
Válassza ki a feladatot a runbook indításakor megtekintett feladatlap megnyitásához. Ezen a lapon megtekintheti a runbookhoz létrehozott feladatok részleteit. Zárja be a Feladat lapot a runbook áttekintési lapjára való visszatéréshez.
Hitelesítés hozzáadása az Azure-erőforrások kezeléséhez
Most már befejeződött a runbook tesztelése és közzététele, de még nem csinál semmi hasznosat. Azt szeretnénk, hogy Azure-erőforrásokat kezeljen. Ezt csak akkor teheti meg, ha az előfizetés hitelesítő adataival hitelesít. A runbook az Automation-fiók rendszer által hozzárendelt felügyelt identitásával hitelesíti az Azure-t a virtuális gép felügyeleti műveletének végrehajtásához. A runbook könnyen módosítható úgy, hogy felhasználó által hozzárendelt felügyelt identitást használjon.
Válassza az Áttekintés , majd a Szerkesztés lehetőséget a szöveges szerkesztő megnyitásához.
Cserélje le a meglévő kódot a következőre:
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>" }
Szerkessze a változót
$resourceGroup
az erőforráscsoportot képviselő érvényes értékkel.Ha azt szeretné, hogy a runbook a rendszer által hozzárendelt felügyelt identitással fusson, hagyja meg a kódot. Ha inkább felhasználó által hozzárendelt felügyelt identitást szeretne használni, akkor:
- A 9. sorból távolítsa el
Connect-AzAccount -Identity
a - Cserélje le a
Connect-AzAccount -Identity -AccountId <ClientId>
- Adja meg a korábban beszerzett ügyfél-azonosítót.
- A 9. sorból távolítsa el
Válassza a Mentés , majd a Tesztelés panelt.
A teszt elindításához válassza a Start elemet. A befejezés után az alábbihoz hasonló kimenetnek kell megjelennie, amely alapvető információkat jelenít meg a fiókjából. Ez a művelet megerősíti, hogy a hitelesítő adatok érvényesek.
Zárja be a Teszt lapot a vászonra való visszatéréshez.
Kód hozzáadása virtuális gép indításához
Most, hogy a runbook hitelesíti az Azure-előfizetést, kezelheti az erőforrásokat. Adjon hozzá egy parancsot egy virtuális gép indításához. Az Azure-előfizetésben bármelyik virtuális gépet kiválaszthatja, és egyelőre ezt a nevet is meg kell adnia a runbookban.
Adja hozzá az alábbi kódot az utolsó sorként közvetlenül a záró zárójel előtt. Cserélje le
VMName
a virtuális gép tényleges nevére.Start-AzVM -Name "VMName" -ResourceGroupName $resourceGroup -DefaultProfile $AzureContext
Tesztelje a runbookot, és győződjön meg arról, hogy a virtuális gép elindult. Ezután térjen vissza a vászonra.
Bemeneti paraméterek hozzáadása a runbookhoz
A runbook jelenleg elindítja a runbookban rögzített virtuális gépet. Hasznosabb lesz, ha megadhatja a virtuális gépet a runbook indításakor. Adjon hozzá bemeneti paramétereket a runbookhoz a funkció biztosításához.
Cserélje le a 3
$resourceGroup = "resourceGroupName"
. sort a következőre:Param( [string]$resourceGroup, [string]$VMName )
Cserélje le az előző
Start-AzVM
parancsot a következőre:Start-AzVM -Name $VMName -ResourceGroupName $resourceGroup -DefaultProfile $AzureContext
Tesztelje a runbookot, és győződjön meg arról, hogy a virtuális gép elindult. Ezután térjen vissza a vászonra.
Egyszerre több virtuális gép kezelése
A ForEach -Parallel
szerkezettel egyszerre dolgozhatja fel a gyűjtemény egyes elemeihez tartozó parancsokat. Módosítsa a kódot úgy, hogy a runbook most a következő legyen:
- Virtuálisgép-nevek gyűjteményének elfogadása,
- Adjon meg egy paramétert a virtuális gépek leállításához vagy elindításához, és
- A műveletek végrehajtása párhuzamosan az összes virtuális gépen
Cserélje le az összes meglévő kódot a következőre:
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'." } }
Ha azt szeretné, hogy a runbook a rendszer által hozzárendelt felügyelt identitással fusson, hagyja meg a kódot. Ha inkább felhasználó által hozzárendelt felügyelt identitást szeretne használni, akkor:
- A 9. sorból távolítsa el
Connect-AzAccount -Identity
a - Cserélje le a
Connect-AzAccount -Identity -AccountId <ClientId>
- Adja meg a korábban beszerzett ügyfél-azonosítót.
- A 9. sorból távolítsa el
Válassza a Mentés, majd a Közzététel, majd az Igen lehetőséget, amikor a rendszer kéri.
Az Áttekintés lapon válassza a Start lehetőséget.
Töltse ki a paramétereket, majd kattintson az OK gombra.
Paraméter Leírás RESOURCEGROUP Adja meg a virtuális gépek erőforráscsoportjának nevét. Virtuális gépek Adja meg a virtuális gépek nevét a következő szintaxissal: ["VM1","VM2","VM3"]
Művelet Adja meg stop
vagystart
.Lépjen a virtuális gépek listájára, és frissítse a lapot néhány másodpercenként. Figyelje meg, hogy az egyes virtuális gépek műveletet párhuzamosan hajtják végre. A
-Parallel
kulcsszó nélkül a műveletek egymás után lettek volna végrehajtva. Bár a virtuális gépek egymás után indulnak el, minden virtuális gép az egyes virtuális gépek jellemzői alapján kissé eltérő időpontokban érheti el a futó fázist.
Clean up resources
Ha nem folytatja a runbook használatát, törölje a következő lépésekkel:
- Lépjen az Automation-fiókjához.
- A Folyamatautomatizálás területen válassza a Runbookok lehetőséget.
- Válassza ki a runbookot.
- A runbook áttekintési lapján válassza a Törlés lehetőséget.
További lépések
Ebben az oktatóanyagban létrehozott egy PowerShell-munkafolyamat-runbookot. A Python 3 runbookok megtekintéséhez lásd: