Runbook indítása másik runbookból
Érvényes: Windows Azure Pack for Windows Server, System Center 2012 R2 Orchestrator
A Szolgáltatáskezelési automatizálás környezetben ajánlott eljárásnak számít az újrafelhasználható, moduláris runbookok írása, amelyek rendelkeznek egy más runbookok által használható önálló funkcióval. A szülőrunbookok gyakran hívnak meg egy vagy több gyermekrunbookot a kívánt funkció végrehajtásához. A gyermekrunbookok meghívása kétféleképpen történhet. Érdemes megismernie a kétféle módszer közötti különbségeket ahhoz, hogy eldönthesse, melyik felel meg jobban a különböző forgatókönyveihez.
Gyermekrunbook indítása beágyazott futtatás használatával
Gyermekrunbook indítása parancsmaggal
Gyermekrunbook indítása beágyazott futtatás használatával
Runbook másik runbookból történő beágyazott indításához használja a runbook nevét, és adja meg a paraméterek értékeit ugyanúgy, mintha egy tevékenységet vagy egy parancsmagot használna. Az azonos Szolgáltatáskezelési automatizálás környezetben található runbookok mindegyike használható ezen a módon bármely másik runbook által. Mielőtt a szülőrunbook a következő sorra lépne, megvárja, hogy a gyermekrunbook befejeződjön, és a rendszer minden kimenetet közvetlenül a szülőnek ad vissza.
A beágyazottan indított runbook ugyanazt a feladatot futtatja, mint a szülőrunbook. A gyermekrunbook futtatása nem jelenik meg annak feladatelőzményeiben. A rendszer a gyermekrunbooktól érkező kivételeket és adatfolyam-kimeneteket a szülőhöz társítja. Mindez kevesebb feladatot eredményez, és megkönnyíti a feladatok követését és az azokkal kapcsolatos hibaelhárítást, mivel a rendszer a szülőrunbook feladatához társítja a gyermekrunbook összes kivételét és adatfolyam-kimenetét.
Runbookok közzétételekor az általuk meghívott gyermekrunbookoknak már rendelkezniük kell közzétett verzióval. Ennek az az oka, hogy a runbookok összeállításakor a Automatizálás társítást hoz létre minden egyes gyermekrunbookkal. Ellenkező esetben a szülőrunbook közzététele sikeres lesz, azonban az indításakor kivétel történik. Ilyenkor újból közzéteheti a szülőrunbookot, biztosítva ezzel a megfelelő hivatkozást a gyermekrunbookokra. Gyermekrunbookok módosításakor nem kell újból közzétennie a szülőrunbookot, mivel a társítás már korábban létrejött.
A beágyazottan meghívott gyermekrunbookok paraméterei bármilyen adattípusúak lehetnek, többek között összetett objektumok is, és a runbook a kezelési portállal vagy a Start-SmaRunbook parancsmaggal történő indításával ellentétben nem történik JSON-szerializálás.
A következő példa egy teszt gyermekrunbook indítására szolgál, amely három paramétert fogad el: egy összetett objektumot, egy egész számot és egy logikai paramétert. A rendszer egy változóhoz társítja a gyermekrunbook kimenetét.
$vm = Get-VM –Name "MyVM" –ComputerName "MyServer"
$output = Test-ChildRunbook –VM $vm –RepeatCount 2 –Restart $true
Gyermekrunbook indítása parancsmaggal
A Start-SMARunbook parancsmaggal runbookokat indíthat a következő témakörben leírt módon: To start a runbook with Windows PowerShell. Ha parancsmaggal indít el egy gyermekrunbookot, a szülőrunbook a következő sorra lép, amint a gyermekrunbook feladata létrejött. Ha szükség van a runbook kimenetének lekérésére, a Get-SMAJobOutput parancsmagot kell használnia a feladat eléréséhez.
A parancsmaggal indított gyermekrunbook feladata a szülőrunbooktól külön feladatban fut. Mindez több feladatot eredményez, mint a munkafolyamat beágyazott indítása, ami növeli a Worker-kiszolgáló terhelését, és nehezíti a feladatok követését. Ugyanakkor a szülő több gyermekrunbookot is elindíthat anélkül, hogy mindegyik esetében megvárná a befejezést. Az ilyen típusú párhuzamos futtatáshoz, amely beágyazottan hívja meg a gyermekrunbookokat, a szülőrunbooknak használnia kell a Parallel kulcsszót.
A parancsmaggal indított gyermekrunbook paraméterei kivonattáblaként vannak megadva, a következő témakörben leírtak szerint: Runbook Parameters. Csak egyszerű adattípusok használhatók, azonban egy hitelesítőeszköz neve megadható a következő témakörben leírtak szerint: Hitelesítő adatok. Ha a runbook rendelkezik összetett adattípusú paraméterrel, beágyazottan kell meghívni.
A következő példában elindul a paraméterekkel rendelkező gyermekrunbook, majd a rendszer megvárja, amíg annak végrehajtása befejeződik. Ezt követően a szülőrunbook begyűjti a kimenetet a feladatból.
$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$params = @{"VMName"="MyVM";"RepeatCount"=2;"Restart"=$true}
$job = Start-SmaRunbook –WebServiceEndpoint $webServer –Port $port –Name $runbookName –Parameters $params
$doLoop = $true
While ($doLoop) {
$job = Get-SmaJob –WebServiceEndpoint $webServer –Port $port -Id $job.Id
$status = $job.Status
$doLoop = (($status -ne "Completed") -and ($status -ne "Failed") -and ($status -ne "Suspended") -and ($status -ne "Stopped")
}
Get-SmaJobOutput –WebServiceEndpoint $webServer –Port $port -Id $job.Id –Stream Output
A gyermekrunbookok meghívására szolgáló módszerek összehasonlítása
Az alábbi táblázat a runbookok másik runbookból történő meghívására szolgáló két módszer eltéréseit foglalja össze.
Beágyazott |
Parancsmag |
|
---|---|---|
Feladat |
A gyermekrunbookok a szülővel azonos feladatban futnak. |
A rendszer külön feladatot hoz létre a gyermekrunbookhoz. |
Futtatás |
A folytatás előtt a szülőrunbook megvárja, hogy a gyermekrunbook befejeződjön. |
A gyermekrunbook indítását követően a szülőrunbook azonnal folytatódik. |
Kimenet |
A szülőrunbook közvetlenül lekérheti a gyermekrunbook kimenetét. |
A szülőrunbooknak a gyermekrunbook feladatából kell lekérnie a kimenetet. |
Paramétereket |
A gyermekrunbook paramétereinek értékeit külön kell meghatározni, és bármilyen adattípus használható. |
A gyermekrunbook paramétereinek értékeit kombinálni kell egyetlen kivonattáblába, és csak az egyszerű, a tömb és az objektum adattípusok használhatók, amelyek alkalmazzák a JSON-szerializálást. |
Közzététel |
A gyermekrunbookot a szülőrunbook közzététele előtt kell közzétenni. |
A gyermekrunbook bármikor közzétehető a szülőrunbook indítása előtt. |
Lásd még
To start a runbook with Windows PowerShell
Runbook Authoring [SMA]
A Szolgáltatáskezelési automatizálás kiterjesztése Runbookokkal