Megosztás a következőn keresztül:


Runbook végrehajtása az Azure Automationben

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.

Feladatállapotok – PowerShell-munkafolyamat

Feljegyzés

A személyes adatok megtekintésével vagy törlésével kapcsolatos információkért tekintse meg a GDPR általános adattulajdonosi kérelmeit, a GDPR-ra vonatkozó Azure-beli adattulajdonosi kérelmeket vagy a GDPR-ra vonatkozó Windows-adattulajdonosi kérelmeket az Adott területtől és igényektől függően. 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élyezi a megbízható Microsoft-szolgáltatásokat az arra vonatkozó tűzfalkivétellel, mivel az Automation nem szerepel a megbízható szolgáltatások listáján. 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.

Feljegyzé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.

Task Ajánlás Jegyzetek
Integrálás Azure-erőforrásokkal Azure-tesztkörnyezet Az Azure-ban üzemeltetve egyszerűbb a hitelesítés. 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-tesztkörnyezet A szkriptek ugyanabban a környezetben futnak, amely kisebb késést garantál.
Az üzemeltetési költségek csökkentése Azure-tesztkörnyezet Nincs számítási többletterhelés, és nincs szükség VM-re.
Hosszú ideig futó szkript végrehajtása Hibrid runbook-feldolgozó Az Azure-tesztkörnyezetek erőforráskorlátokkal rendelkeznek.
Interakció helyi szolgáltatásokkal Hibrid runbook-feldolgozó Közvetlenül elérheti a gazdagépet, illetve más felhőkörnyezetekben vagy a helyi környezetben lévő erőforrásokat.
Külső szoftverek és végrehajtható fájlok megkövetelése Hibrid runbook-feldolgozó Ön kezeli az operációs rendszert, és szoftvereket telepíthet.
Fájl vagy mappa figyelése runbook használatával Hibrid runbook-feldolgozó Figyelőfeladat használata hibrid runbook-feldolgozón.
Erőforrás-igényes szkript futtatása Hibrid runbook-feldolgozó Az Azure-tesztkörnyezetek erőforráskorlátokkal rendelkeznek.
Speciális követelményekkel rendelkező modulok használata Hibrid runbook-feldolgozó Néhány példa:
WinSCP – függőség 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 Hibrid runbook-feldolgozó A tesztkörnyezet moduljainak támogatniuk kell a másolást.
Olyan runbookok vagy modulok használata, amelyek a .NET-keretrendszer 4.7.2-es verziójától eltérő verziót igényelnek Hibrid runbook-feldolgozó Az Azure-tesztkörnyezetek támogatják a .NET-keretrendszer 4.7.2-es verzióját, és egy másik verzióra való frissítés nem támogatott.
Jogosultságszint-emelést igénylő szkriptek futtatása Hibrid runbook-feldolgozó A tesztkörnyezetek nem engedélyezik a jogosultságszint-emelé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 Instrumentation szolgáltatáshoz (WMI) Hibrid runbook-feldolgozó A felhőben lévő 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.

Előfizetések

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.

Igazolás

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.

Feljegyzé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

Az Azure Automation a következő PowerShell-modulokat tartalmazza:

  • 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. Ezek a parancsmagok az Azure PowerShell-parancsmagok helyett az Automation-fiók erőforrásaival való interakcióhoz használhatók.
  • Az.Automation – az AzureRm Automation modult lecserélő Azure Automationnel való kommunikációhoz ajánlott PowerShell-modul. Az Automation-fiók a létrehozása után nem fogja automatikusan tartalmazni az Az.Automation modult, és manuálisan kell importálnia.
  • 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.

Diplomák

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.

Feladatok

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.

Feljegyzé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 feladatok lehetséges állapotait ismerteti. Az Azure portálon megtekintheti az összes runbook feladat állapotának összefoglalóját, vagy részletesen megvizsgálhatja egy adott runbook feladat részleteit. 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ás 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ár 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, és így elindulhasson.
Folytatás A rendszer a felfüggesztés után folytatja a feladatot.
Futó A feladat fut.
Futás, várakozás erőforrásokra A feladat kiürítésre került, mert elérte a méltányos megosztási korlátot. Rövidesen folytatódik az utolsó ellenőrzőponttól.
Indítás A feladat egy feldolgozóhoz lett rendelve, és a rendszer most indítja el.
Leállítva A feladatot a felhasználó leállította, mielőtt befejeződött volna.
Leállás A rendszer most leállítja a feladatot.
Felfüggesztve Csak grafikus és PowerShell-munkafolyamat-runbookokra vonatkozik. A feladatot a felhasználó, a rendszer vagy egy parancs a runbookban felfüggesztette. Ha egy runbook nem rendelkezik ellenőrzőponttal, az elejéről indul. Ha rendelkezik ellenőrzőponttal, újraindulhat, és folytathatja az utolsó ellenőrzőponttól. A rendszer csak kivétel előfordulásakor 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ó Stop értékre van állítva, a feladat hiba esetén felfüggesztésre kerül.
Felfüggesztés 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 túljutott az utolsó ellenőrzési ponton, akkor a befejeződik, mielőtt felfüggeszthető lenne.
Új A feladat nemrég lett elküldve, de még nincs aktiválva.

Tevékenységnaplózás

A runbookok végrehajtása az Azure Automationben az Automation-fiók 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."
}

Vet

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
}

Errors

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 a végrehajtható fájlokat (.exe fájlokat) vagy az 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.

Webhookok

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