Runbook execution in Azure Automation

Az Azure Automation folyamatautomatizálásával PowerShellt, PowerShell-munkafolyamatokat és grafikus runbookokat hozhat létre és kezelhet. További részletekért tekintse meg az Azure Automation-runbookokat.

Az Automation a runbookokat a bennük definiált logika alapján hajtja végre. Ha egy runbook megszakad, az elején újraindul. Ehhez a viselkedéshez olyan runbookokat kell írnia, amelyek támogatják az újraindítást átmeneti problémák esetén.

Runbook indítása az Azure Automationben létrehoz egy feladatot, amely a runbook egyetlen végrehajtási példánya. Minden feladat az Azure-előfizetéshez való csatlakozással fér hozzá az Azure-erőforrásokhoz. A feladat csak akkor fér hozzá az adatközpont erőforrásaihoz, ha ezek az erőforrások a nyilvános felhőből érhetők el.

Az Azure Automation hozzárendel egy feldolgozót az egyes feladatok futtatásához a runbook végrehajtása során. Míg a dolgozókat számos Automation-fiók osztja meg, a különböző Automation-fiókokból származó feladatok el vannak különítve egymástól. Nem szabályozhatja, hogy melyik feldolgozó szolgáltatásokat nyújtja a feladatkérelmeknek.

Amikor megtekinti a runbookok listáját az Azure Portalon, az megjeleníti az egyes runbookokhoz elindított feladatok állapotát. Az Azure Automation legfeljebb 30 napig tárolja a feladatnaplókat.

Az alábbi ábra egy Runbook-feladat életciklusát mutatja be PowerShell-runbookok, PowerShell-munkafolyamat-runbookok és grafikus runbookok esetében.

Job Statuses - PowerShell Workflow

Megjegyzés:

További információ a személyes adatok megtekintésével vagy törlésével kapcsolatban: Azure érintettek kérelmei a GDPR-rel kapcsolatban. A GDPR-ról további információt a Microsoft Adatvédelmi központ GDPR-szakaszában és a Szolgáltatásmegbízhatósági portál GDPR szakaszában talál.

Runbook végrehajtási környezet

Az Azure Automation runbookjai azure-tesztkörnyezetben vagy hibrid runbook-feldolgozóban futtathatók.

Ha a runbookok az Azure-beli erőforrások hitelesítésére és futtatására vannak tervezve, egy Azure-tesztkörnyezetben futnak. Az Azure Automation egy feldolgozót rendel hozzá az egyes feladatok futtatásához a forgatókönyv végrehajtása során a tesztkörnyezetben. Míg a dolgozókat számos Automation-fiók osztja meg, a különböző Automation-fiókokból származó feladatok el vannak különítve egymástól. Az azonos tesztkörnyezetet használó feladatokat a tesztkörnyezet erőforrás-korlátozásai kötik. Az Azure tesztkörnyezet nem támogatja az interaktív műveleteket. Megakadályozza a folyamaton kívüli COM-kiszolgálók elérését, és nem támogatja a WMI-hívások indítását a Runbook Win32-szolgáltatójához.  Ezeket a forgatókönyveket csak a runbook windowsos hibrid runbook-feldolgozón való futtatásával lehet támogatni.

Hibrid runbook-feldolgozóval futtathat runbookokat közvetlenül a szerepkört üzemeltető számítógépen, valamint a környezet helyi erőforrásain. Az Azure Automation tárolja és kezeli a runbookokat, majd egy vagy több hozzárendelt számítógéphez továbbítja őket.

Ha engedélyezi az Azure Firewallt az Azure Storage-on, az Azure Key Vaulton vagy az Azure SQL-en, letiltja az Azure Automation-runbookok hozzáférését ezekhez a szolgáltatásokhoz. A hozzáférés akkor is le lesz tiltva, ha engedélyezve van a megbízható Microsoft-szolgáltatások engedélyezésére vonatkozó tűzfalkivétel, mivel az Automation nem része a megbízható szolgáltatások listájának. Engedélyezett tűzfal esetén a hozzáférés csak hibrid Runbook-feldolgozóval és virtuális hálózati szolgáltatásvégponttal érhető el.

Megjegyzés:

  • Linux hibrid runbook-feldolgozón való futtatáshoz a szkripteket alá kell írni, és ennek megfelelően kell konfigurálni a feldolgozót. Másik lehetőségként ki kell kapcsolni az aláírás-ellenőrzést.
  • A runbook végrehajtása nem függhet a tesztkörnyezet időzónájától.

Az alábbi táblázat felsorol néhány runbook-végrehajtási feladatot, amelyekhez az ajánlott végrehajtási környezet szerepel.

Feladatok Recommendation Jegyzetek
Integrálás Azure-erőforrásokkal Azure Sandbox Az Azure-ban üzemeltetett hitelesítés egyszerűbb. Ha hibrid runbook-feldolgozót használ egy Azure-beli virtuális gépen, runbook-hitelesítést használhat felügyelt identitásokkal.
Optimális teljesítmény elérése az Azure-erőforrások kezeléséhez Azure Sandbox A szkriptek ugyanabban a környezetben futnak, amely kisebb késéssel rendelkezik.
A működési költségek minimalizálása Azure Sandbox Nincs számítási többletterhelés, és nincs szükség virtuális gépre.
Hosszú ideig futó szkript végrehajtása Hybrid Runbook Worker Az Azure-tesztkörnyezetek erőforráskorlátokkal rendelkeznek.
Helyi szolgáltatások használata Hybrid Runbook Worker Közvetlenül elérheti a gazdagépet vagy más felhőkörnyezetekben vagy a helyszíni környezetben lévő erőforrásokat.
Külső szoftverek és végrehajtható fájlok megkövetelése Hybrid Runbook Worker Kezelheti az operációs rendszert, és szoftvereket telepíthet.
Fájl vagy mappa figyelése runbook használatával Hybrid Runbook Worker Figyelőfeladat használata hibrid runbook-feldolgozón.
Erőforrás-igényes szkript futtatása Hybrid Runbook Worker Az Azure-tesztkörnyezetek erőforráskorlátokkal rendelkeznek.
Speciális követelményekkel rendelkező modulok használata Hybrid Runbook Worker Néhány példa:
WinSCP – függőség a winscp.exe
IIS-felügyelethez – az IIS engedélyezésével vagy kezelésével kapcsolatos függőség
Modul telepítése telepítővel Hybrid Runbook Worker A tesztkörnyezet moduljainak támogatniuk kell a másolást.
Olyan runbookok vagy modulok használata, amelyek .NET-keretrendszer 4.7.2-es verziótól eltérő verziót igényelnek Hybrid Runbook Worker Az Azure-tesztkörnyezetek támogatják a .NET-keretrendszer 4.7.2-es verziót, és egy másik verzióra való frissítés nem támogatott.
Jogosultságszint-emelést igénylő szkriptek futtatása Hybrid Runbook Worker A tesztkörnyezetek nem engedélyezik a szintemelést. Hibrid runbook-feldolgozóval kikapcsolhatja az UAC-t, és az Invoke-Command parancsot használhatja a jogosultságszint-emelést igénylő parancs futtatásakor.
Olyan szkriptek futtatása, amelyek hozzáférést igényelnek a Windows Management Instrumentationhez (WMI) Hybrid Runbook Worker A felhőben futó tesztkörnyezetekben futó feladatok nem férnek hozzá a WMI-szolgáltatóhoz.

Ideiglenes tárolás tesztkörnyezetben

Ha a runbooklogika részeként ideiglenes fájlokat kell létrehoznia, használhatja az Azure-tesztkörnyezet Temp mappáját (vagyis $env:TEMP) az Azure-ban futó runbookokhoz. Az egyetlen korlátozás az, hogy nem használhat több mint 1 GB lemezterületet, ami az egyes tesztkörnyezetek kvótája. A PowerShell-munkafolyamatok használatakor ez a forgatókönyv problémát okozhat, mivel a PowerShell-munkafolyamatok ellenőrzőpontokat használnak, és a szkript újrapróbálkozódhat egy másik tesztkörnyezetben.

A hibrid tesztkörnyezettel a hibrid runbook-feldolgozók tárhelyének rendelkezésre állása alapján használható C:\temp . Az Azure-beli virtuális gépekre vonatkozó javaslatok szerint azonban nem szabad az ideiglenes lemezt használni Windows vagy Linux rendszeren a megőrzendő adatokhoz.

Források

A runbookoknak tartalmazniuk kell az erőforrások, például a virtuális gépek, a hálózat és a hálózat erőforrásainak kezelésére szolgáló logikát. Az erőforrások egy Azure-előfizetéshez vannak kötve, és a runbookokhoz megfelelő hitelesítő adatok szükségesek az erőforrások eléréséhez. Egy runbook erőforrásainak kezelésére példa: Erőforrások kezelése.

Biztonság

Az Azure Automation a Felhőhöz készült Microsoft Defender használatával biztosítja az erőforrások biztonságát, és észleli a linuxos rendszerekben előforduló biztonsági réseket. A biztonságot a számítási feladatok biztosítják, függetlenül attól, hogy az erőforrások az Azure-ban vannak-e vagy sem. Lásd: Bevezetés a hitelesítésbe az Azure Automationben.

Felhőhöz készült Defender korlátozásokat helyez el azokra a felhasználókra, akik bármilyen szkriptet futtathatnak, akár aláírtak, akár nem aláírtak egy virtuális gépen. Ha Ön olyan felhasználó, aki gyökérszintű hozzáféréssel rendelkezik egy virtuális géphez, explicit módon konfigurálnia kell a gépet digitális aláírással, vagy ki kell kapcsolnia. Ellenkező esetben csak az Automation-fiók létrehozása és a megfelelő funkció engedélyezése után futtathat szkriptet az operációsrendszer-frissítések alkalmazásához.

Subscriptions

Az Azure-előfizetés a Microsofttal kötött szerződés egy vagy több felhőalapú szolgáltatás használatára, amelyekért díjat számítunk fel. Az Azure Automation esetében minden előfizetés egy Azure Automation-fiókhoz van csatolva, és több előfizetést is létrehozhat a fiókban.

Hitelesítő adatok

A runbookokhoz megfelelő hitelesítő adatokra van szükség az erőforrások eléréséhez, akár az Azure-beli, akár harmadik féltől származó rendszerekhez. Ezek a hitelesítő adatok az Azure Automationben, a Key Vaultban stb. vannak tárolva.

Azure Monitor

Az Azure Automation az Azure Monitort használja a gépi műveletek monitorozásához. A műveletekhez Log Analytics-munkaterületre és Log Analytics-ügynökre van szükség.

Log Analytics-ügynök Windowshoz

A Windows Log Analytics-ügynöke az Azure Monitorral együttműködve kezeli a Windows rendszerű virtuális gépeket és a fizikai számítógépeket. A gépek futhatnak az Azure-ban vagy nem Azure-beli környezetben, például egy helyi adatközpontban.

Megjegyzés:

A WindowsHoz készült Log Analytics-ügynököt korábban Microsoft Monitoring Agent (MMA) néven ismerték.

Log Analytics-ügynök Linuxhoz

A Linuxhoz készült Log Analytics-ügynök a Windows-ügynökhöz hasonlóan működik, de linuxos számítógépeket csatlakoztat az Azure Monitorhoz. Az ügynök bizonyos szolgáltatásfiókokkal van telepítve, amelyek gyökérengedélyeket igénylő parancsokat hajtanak végre. További információ: Szolgáltatásfiókok.

A Log Analytics-ügynök naplója a következő helyen /var/opt/microsoft/omsagent/log/omsagent.logtalálható: .

Runbook-engedélyek

A runbookoknak hitelesítő adatokon keresztüli hitelesítéshez engedélyre van szükségük az Azure-ba. Tekintse meg az Azure Automation-hitelesítés áttekintését.

Modulok

Azure Automation includes the following PowerShell modules:

  • Orchestrator.AssetManagement.Cmdlets – több belső parancsmagot tartalmaz, amelyek csak akkor érhetők el, ha runbookokat hajt végre az Azure-tesztkörnyezetben vagy egy Hibrid Windows runbook-feldolgozóban. These cmdlets are designed to be used instead of Azure PowerShell cmdlets to interact with your Automation account resources.
  • Az.Automation – az AzureRm Automation modult lecserélő Azure Automationnel való kommunikációhoz ajánlott PowerShell-modul. The Az.Automation module is not automatically included when you create an Automation account and you need to import them manually.
  • AzureRM.Automation – alapértelmezés szerint telepítve van egy Automation-fiók létrehozásakor.

A támogatottak a runbookok és a DSC-konfigurációk által igényelt parancsmagok alapján telepíthető modulok is. A runbookokhoz és DSC-konfigurációkhoz elérhető modulok részleteiért lásd: Modulok kezelése az Azure Automationben.

Certificates

Az Azure Automation tanúsítványokat használ az Azure-hoz való hitelesítéshez, vagy hozzáadja őket az Azure-hoz vagy külső erőforrásokhoz. A tanúsítványokat a runbookok és a DSC-konfigurációk biztonságosan tárolják a hozzáférés érdekében.

A runbookok használhatnak önaláírt tanúsítványokat, amelyeket nem egy hitelesítésszolgáltató (CA) ír alá. Lásd: Új tanúsítvány létrehozása.

Jobs

Az Azure Automation egy olyan környezetet támogat, amely ugyanabból az Automation-fiókból futtat feladatokat. Egy runbook egyszerre több feladatot is futtathat. Minél több feladatot futtat egyszerre, annál gyakrabban küldhetők ugyanarra a tesztkörnyezetre. Tesztkörnyezetben legfeljebb 10 feladat futtatható. A tesztkörnyezet akkor lesz eltávolítva, ha nem hajtanak végre feladatokat; ezért nem szabad a fájlok mentésére használni.

Az ugyanabban a tesztkörnyezeti folyamatban futó feladatok hatással lehetnek egymásra. Ilyen például a Disconnect-AzAccount parancsmag futtatása. A parancsmag végrehajtása leválasztja a megosztott tesztkörnyezeti folyamat minden runbook-feladatát. A forgatókönyv használatára példa: Az egyidejű feladatok megelőzése.

Megjegyzés:

Előfordulhat, hogy az Azure-tesztkörnyezetben futó runbookból indított PowerShell-feladatok nem teljes PowerShell-módban futnak.

Feladatállapotok

Az alábbi táblázat a feladatokhoz lehetséges állapotokat ismerteti. Megtekintheti az összes runbook-feladat állapotának összegzését, vagy részletezheti egy adott runbook-feladat részleteit az Azure Portalon. A Log Analytics-munkaterülettel való integrációt is konfigurálhatja a runbook-feladatok állapotának és feladatstreamjeinek továbbításához. További információ az Azure Monitor-naplókkal való integrációról: Feladatállapot és feladatstreamek továbbítása az Automationből az Azure Monitor-naplókba. Lásd még : Feladatállapotok lekérése egy runbook állapotainak használatára vonatkozó példaként.

Állapot Leírás
Aktiváló A feladat aktiválása folyamatban van.
Befejeződött A feladat sikeresen befejeződött.
Sikertelen Nem sikerült lefordítani egy grafikus vagy PowerShell-munkafolyamat-runbookot. A PowerShell-runbook indítása sikertelen volt, vagy a feladat kivételt okozott. Tekintse meg az Azure Automation runbooktípusokat.
Nem sikerült, erőforrásokra várva A feladat meghiúsult, mert háromszor elérte a méltányos megosztási korlátot, és minden alkalommal ugyanabból az ellenőrzőpontból vagy a runbook kezdetétől indult.
Feldolgozási sorban A feladat arra vár, hogy egy Automation-feldolgozó erőforrásai elérhetővé váljanak, hogy elindítható legyen.
Újrakezd A rendszer a felfüggesztés után újra elindítja a feladatot.
Futó A feladat fut.
Futtatás, erőforrásokra való várakozás A feladat ki lett ürítve, mert elérte a méltányos megosztási korlátot. Röviddel az utolsó ellenőrzőponttól folytatódik.
Starting A feladat egy feldolgozóhoz lett rendelve, és a rendszer elindítja.
Leállítva A feladatot a felhasználó leállította, mielőtt befejeződött volna.
Leállás A rendszer leállítja a feladatot.
Felfüggesztett Csak grafikus és PowerShell-munkafolyamat-runbookokra vonatkozik. A feladatot a felhasználó, a rendszer vagy a runbook egyik parancsa felfüggesztette. Ha egy runbook nem rendelkezik ellenőrzőponttal, az az elejétől kezdődik. Ha rendelkezik ellenőrzőponttal, újraindulhat, és folytathatja az utolsó ellenőrzőpontjával. A rendszer csak kivétel esetén függeszti fel a runbookot. Alapértelmezés szerint a ErrorActionPreference változó a Continue (Folytatás) értékre van állítva, ami azt jelzi, hogy a feladat továbbra is hiba miatt fut. Ha a beállítási változó Leállítás értékre van állítva, a feladat egy hibával függeszt fel.
Felfüggesztéséről Csak grafikus és PowerShell-munkafolyamat-runbookokra vonatkozik. A rendszer a felhasználó kérésére próbálja felfüggeszteni a feladatot. A runbooknak el kell érnie a következő ellenőrzőpontját, mielőtt fel lehetne függeszteni. Ha már teljesítette az utolsó ellenőrzőpontját, a felfüggesztés előtt befejeződik.

Tevékenységnaplózás

A runbookok az Azure Automationben történő végrehajtásakor a rendszer az Automation-fiók egy tevékenységnaplójába írja a részleteket. A napló használatának részleteiért lásd : Adatok lekérése a tevékenységnaplóból.

Kivételek

Ez a szakasz a runbookokban előforduló kivételek vagy időszakos problémák kezelésének néhány módját ismerteti. Ilyen például egy WebSocket-kivétel. A helyes kivételkezelés megakadályozza, hogy az átmeneti hálózati hibák a runbookok meghibásodását okozzák.

ErrorActionPreference

Az ErrorActionPreference változó határozza meg, hogy a PowerShell hogyan reagál egy nem végződő hibára. A megszüntetési hibák mindig leállnak, és nem érintik azokat ErrorActionPreference.

Amikor a runbookot használja ErrorActionPreference, egy általában nem végződő hiba, például PathNotFound a Get-ChildItem parancsmag leállítja a runbook befejezését. Az alábbi példa a következő parancs használatát ErrorActionPreferencemutatja be. A végső Write-Output parancs soha nem fut, ahogy a szkript leáll.

$ErrorActionPreference = 'Stop'
Get-ChildItem -path nofile.txt
Write-Output "This message will not show"

Próbálja ki végül a Catch(et) et

A Catch Finally kipróbálása a PowerShell-szkriptekben a megszüntetési hibák kezelésére szolgál. A szkript ezt a mechanizmust használhatja bizonyos kivételek vagy általános kivételek elfogására. Az catch utasítást a hibák nyomon követésére vagy kezelésére kell használni. Az alábbi példa egy nem létező fájlt próbál letölteni. Elkapja a kivételt System.Net.WebException , és az összes többi kivétel utolsó értékét adja vissza.

try
{
   $wc = new-object System.Net.WebClient
   $wc.DownloadFile("http://www.contoso.com/MyDoc.doc")
}
catch [System.Net.WebException]
{
    "Unable to download MyDoc.doc from http://www.contoso.com."
}
catch
{
    "An error occurred that could not be resolved."
}

Dobja

A dobással megszüntetési hiba hozható létre. Ez a mechanizmus akkor lehet hasznos, ha saját logikát határoz meg egy runbookban. Ha a szkript megfelel egy olyan feltételnek, amelyet le kell állítania, az throw utasítással leállíthatja azt. Az alábbi példa ezt az utasítást használja egy szükséges függvényparaméter megjelenítéséhez.

function Get-ContosoFiles
{
  param ($path = $(throw "The Path parameter is required."))
  Get-ChildItem -Path $path\*.txt -recurse
}

Hibák

A runbookoknak kezelnie kell a hibákat. Az Azure Automation kétféle PowerShell-hibát támogat, a megszakítást és a megszakítást nem.

A hibák megszüntetése leállítja a runbook végrehajtását, amikor azok előfordulnak. A runbook leáll, és a feladat állapota sikertelen.

A nem végződő hibák lehetővé teszik a szkriptek folytatását még azok bekövetkezése után is. Nem végződő hiba például akkor fordul elő, ha egy runbook a Get-ChildItem parancsmagot olyan elérési úton használja, amely nem létezik. A PowerShell azt látja, hogy az elérési út nem létezik, hibát jelez, és folytatja a következő mappát. Ebben az esetben a hiba nem állítja a runbook-feladat állapotát sikertelenre, és a feladat akár befejeződött is. Ha azt szeretné, hogy egy runbook ne szűnjön meg, használja ErrorAction Stop a parancsmagot.

Folyamatok meghívása

Az Azure-tesztkörnyezetekben futó runbookok nem támogatják a hívási folyamatokat, például végrehajtható fájlokat (.exe fájlokat) vagy alfolyamatokat. Ennek az az oka, hogy az Azure-tesztkörnyezet megosztott folyamat, amely olyan tárolóban fut, amely nem fér hozzá az összes mögöttes API-hoz. Külső szoftvereket vagy alfolyamatokra irányuló hívásokat igénylő forgatókönyvek esetén futtasson egy runbookot egy hibrid runbook-feldolgozón.

Eszköz- és alkalmazásjellemzők

Az Azure-tesztkörnyezetekben lévő runbook-feladatok nem férnek hozzá az eszköz vagy az alkalmazás jellemzőihez. A windowsos teljesítménymetrikák lekérdezésére leggyakrabban használt API a WMI, amelynek néhány gyakori metrikája a memória és a PROCESSZORhasználat. Nem számít azonban, hogy milyen API-t használnak, mivel a felhőben futó feladatok nem tudják elérni a Web-Based Enterprise Management (WBEM) Microsoft-implementációját. Ez a platform a Common Information Modelre (CIM) épül, amely az eszköz- és alkalmazásjellemzők meghatározására vonatkozó iparági szabványokat biztosítja.

Webhooks

A külső szolgáltatások, például az Azure DevOps Services és a GitHub elindíthatnak egy runbookot az Azure Automationben. Az ilyen típusú indításhoz a szolgáltatás egy webhookot használ egyetlen HTTP-kérésen keresztül. A webhook használata lehetővé teszi a runbookok elindítását egy teljes Azure Automation-funkció implementálása nélkül.

Megosztott erőforrások

Az erőforrások felhőbeli összes runbookban való megosztásához az Azure egy méltányos megosztás nevű koncepciót használ. A méltányos megosztás használatával az Azure ideiglenesen kiüríti vagy leállítja a három óránál hosszabb ideig futó feladatokat. A PowerShell-runbookok és a Python-runbookok feladatai leállnak, és nem indulnak újra, és a feladat állapota leáll.

A hosszú ideig futó Azure Automation-feladatokhoz ajánlott hibrid runbook-feldolgozót használni. A hibrid runbook-feldolgozókat nem korlátozza a méltányos megosztás, és nincs korlátozva, hogy mennyi ideig hajthatók végre a runbookok. A többi feladatkorlát az Azure-tesztkörnyezetekre és a hibrid runbook-feldolgozókra is vonatkozik. Bár a hibrid runbook-feldolgozókra nem vonatkozik a háromórás méltányos megosztási korlát, olyan runbookokat kell fejlesztenie, amelyek olyan feldolgozókon futnak, amelyek támogatják a váratlan helyi infrastruktúra-problémák miatti újraindításokat.

Egy másik lehetőség a runbookok optimalizálása gyermek runbookok használatával. Előfordulhat például, hogy a runbook ugyanazt a függvényt több erőforráson is végigfuttatja, például egy adatbázisművelettel több adatbázison. Ezt a függvényt áthelyezheti egy gyermek runbookba, és meghívhatja a runbookot a Start-AzAutomationRunbook használatával. A gyermek runbookok párhuzamosan, külön folyamatokban futnak.

A gyermek runbookok használata csökkenti a szülő runbook befejezésének teljes időtartamát. A runbook a Get-AzAutomationJob parancsmaggal ellenőrizheti egy gyermek runbook feladatállapotát, ha a gyermek befejezése után még több művelete van.

Következő lépések