Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az oktatóanyag végigvezeti egy Python 3.8-os runbook Azure Automationben való létrehozásán. A Python-runbookok a Python 2.7 és 3.8 alatt fordulnak le. Az Azure-portál szövegszerkesztőjével közvetlenül szerkesztheti a runbook kódját.
- Egyszerű Python-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
- Runbook frissítése az Azure virtuális gép indításához, runbookparaméterekkel
Előfeltételek
Az oktatóanyag elvégzéséhez a következőkre van szüksége:
Egy Azure-előfizetés. Ha még nem rendelkezik ilyennel, aktiválhatja az MSDN-előfizetői előnyöket , vagy regisztrálhat egy ingyenes fiókra.
Egy Automation-fiók a runbook tárolásához és az Azure-erőforrásokhoz való hitelesítéshez felügyelt identitások használatával. Az Automation-fiók létrehozásakor a rendszer automatikusan létrehoz egy felügyelt identitást.
Egy Azure-beli virtuális gép. A tutorial során Ön el fogja indítani és leállítani ezt a gépet, ezért nem ajánlott éles virtuális gépként használni.
Új runbook létrehozása
Először hozzon létre egy egyszerű runbookot, amely a Hello World szöveget adja ki.
Nyissa meg Automation-fiókját az Azure Portalon.
Az Automation-fiók oldala gyors áttekintést nyújt a fiók erőforrásairól. Már rendelkeznie kellene néhány eszközzel. Ezen eszközök többsége olyan modul, amely automatikusan bekerül egy új Automation-fiókba.
Olyan felügyelt identitást is engedélyeznie kell, amely az előfeltételekben szerepel. Ezt az Identitás erőforrás fiókbeállítások területen való megtekintésével ellenőrizheti.
Válassza a Runbookok lehetőséget a Folyamatautomatizálás területen a runbookok listájának megnyitásához.
Új runbook létrehozásához válassza a Runbook létrehozása lehetőséget.
Adja meg a runbooknak a MyFirstRunbook-Python nevet.
A Runbook típusához válassza a Pythont.
Válassza a Python 3.8-at a futtatókörnyezet verziójához.
A Runbook létrehozásához és a szövegszerkesztő megnyitásához válassza a Létrehozás lehetőséget.
Kód hozzáadása az operatív útmutatóhoz
Most hozzáad egy egyszerű parancsot a szöveg Hello Worldnyomtatásához.
print("Hello World!")
A runbook mentéséhez válassza a Mentés lehetőséget.
A runbook tesztelése
Mielőtt közzétennénk a runbookot, hogy éles környezetben elérhetővé tegyük, tesztelni kell, hogy megfelelően működik-e. Runbook tesztelésekor futtatja annak vázlatverzióját, és interaktívan tekinti meg a kimenetét.
A Teszt panel megnyitásához válassza a Teszt panelt.
A teszt elindításához válassza a Start elemet. Ez a beállítás legyen az egyetlen engedélyezett beállítás.
Létrejön egy runbook-feladat , és megjelenik annak állapota. A feladat állapota Várakozó listára állítva-ként kezdődik, ami azt jelzi, hogy a felhőben egy runbook-munkásra vár. Amikor egy munkavégző átvált a "Kezdés" állapotra, amikor a feladatot átvállalja, majd "Futás" állapotra, amikor a runbook valóban futni kezd.
Amikor a runbook-feladat befejeződik, megjelenik a kimenete. Ebben az esetben látnia
Hello Worldkell .Zárja be a Teszt panelt a vászonra való visszatéréshez.
A runbook közzététele és indítása
A létrehozott runbook még piszkozatban van. Mielőtt éles környezetben futtathatná, közzé kell tennie azt. Amikor közzétesz egy runbookot, felülírja a meglévő közzétett verziót a vázlatverzióval. Ebben az esetben még nem rendelkezik közzétett verzióval, mert 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.
Ha bezárja a MyFirstRunbook_python panelt, a Runbookok lapon újra megjelenik a közzétetttartalom szerzői állapota.
Válassza ki a MyFirstRunbook-Python nevet a listában, majd visszalép a MyFirstRunbook-Python panelre.
A felül található lehetőségek lehetővé teszik a runbook elindítását, a runbook megtekintését, a runbook szerkesztését, a későbbi kezdés ütemezését és más műveleteket.
Kattintson a Start gombra, majd az OK gombra a Runbook indítása panel megnyitásakor.
Megnyílik egy Feladat ablaktábla a létrehozott runbook-feladathoz. Bezárhatja ezt a panelt, de tartsuk nyitva, hogy megnézhesse a feladat előrehaladását.
A feladat állapota az Alapállapotok területen az Állapot mezőben jelenik meg. A runbook tesztelése során az itt szereplő értékek megegyeznek az állapotértékekkel.
Miután a runbook állapota a Kész állapotot mutatja, válassza a Kimenet lapot. A Kimenet lapon látható
Hello World.Zárja be a Kimenet lapot.
A Runbook-feladat streamjeinek megtekintéséhez válassza az Összes napló fület. Csak a kimeneti adatfolyamban kell megjelennie
Hello World. Ez a fül azonban más streameket is megjeleníthet egy runbook-feladathoz, például Részletes és Hiba, ha a runbook hozzájuk ír.Zárja be a Feladatokpanelt a MyFirstRunbook-Python panelre való visszatéréshez.
Válassza a Feladatok erőforrást a runbook Feladatok erőforráslapjának megnyitásához. Ez a lap felsorolja a runbook által létrehozott összes feladatot. Csak egy feladat jelenik meg a listában, mivel csak egyszer futtatta a feladatot.
Ezt a feladatot kijelölve megnyithatja azt a Feladat panelt, amelyet a runbook indításakor megtekintett. Ez a panel lehetővé teszi, hogy visszatérjen az időben, és megtekintse az adott runbookhoz létrehozott feladatok részleteit.
Hitelesítés hozzáadása az Azure-erőforrások kezeléséhez
Tesztelte és közzétette a runbookot, de az egyelőre még mindig nem csinál semmi hasznosat. Azt szeretné, hogy az Azure-erőforrásokat kezelje. Az erőforrások kezeléséhez a szkriptnek hitelesítenie kell magát.
A hitelesítés ajánlott módja a felügyelt identitás. Azure Automation-fiók létrehozásakor a rendszer automatikusan létrehoz egy felügyelt identitást.
A minták használatához adja hozzá a következő csomagokat az Automation-fiók Python Packages-erőforrásához . Ezekhez a csomagokhoz az alábbi hivatkozásokkal adhat hozzá WHL-fájlokat.
A csomagok hozzáadásakor válassza ki a runbooknak megfelelő futtatókörnyezeti verziót.
Megjegyzés:
Az alábbi kódot a futtatókörnyezet 3.8-es verziójával teszteltük.
Felügyelt identitás
A felügyelt identitás használatához győződjön meg arról, hogy engedélyezve van:
- Annak ellenőrzéséhez, hogy a felügyelt identitás engedélyezve van-e az Automation-fiókhoz, nyissa meg az>>identitását, és állítsa be az állapotot.
- A felügyelt identitáshoz hozzá van rendelve egy szerepkör az erőforrás kezeléséhez. A virtuálisgép-erőforrás kezelésére szolgáló példában adja hozzá a "Virtuálisgép-közreműködő" szerepkört a virtuális gépet tartalmazó erőforráscsoporthoz. További információ: Azure-szerepkörök hozzárendelése az Azure Portal használatával
Az identitáskezelési szerepkör konfigurálása után megkezdheti a kód hozzáadását.
A Szövegszerkesztő megnyitásához válassza a Szerkesztés lehetőséget a MyFirstRunbook-Python panelen.
Adja hozzá a következő kódot a hitelesítéshez az Azure-ban:
#!/usr/bin/env python3
from azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClient
SUBSCRIPTION_ID="YOUR_SUBSCRIPTION_ID"
azure_credential = DefaultAzureCredential()
import os
import requests
# printing environment variables
endpoint = os.getenv('IDENTITY_ENDPOINT')+"?resource=https://management.azure.com/"
identityHeader = os.getenv('IDENTITY_HEADER')
payload={}
headers = {
'X-IDENTITY-HEADER' : identityHeader,
'Metadata' : True
}
response = requests.get(endpoint, headers)
print(response.text)
Kód hozzáadása Python Compute-ügyfél létrehozásához és a virtuális gép elindításához
Az Azure-beli virtuális gépek használatához hozzon létre egy példányt a Pythonhoz készült Azure Compute-ügyfélből.
# Initialize client with the credential and subscription.
compute_client = ComputeManagementClient(
azure_credential,
SUBSCRIPTION_ID
)
print('\nStart VM')
async_vm_start = compute_client.virtual_machines.begin_start(
"MyResourceGroup", "TestVM")
async_vm_start.wait()
print('\nFinished start.')
Hol MyResourceGroup található a virtuális gépet tartalmazó erőforráscsoport neve, és TestVM a elindítani kívánt virtuális gép neve.
Tesztelje és futtassa újra a runbookot, és ellenőrizze, hogy elindítja-e a virtuális gépet.
Bemeneti paraméterek használata
A runbook jelenleg az erőforráscsoport és a virtuális gép neveihez használ rögzített értékeket. Most adjunk hozzá olyan kódot, amely lekéri ezeket az értékeket a bemeneti paraméterekből.
A változóval sys.argv lekérheti a paraméterértékeket. Adja hozzá a következő kódot a runbookhoz közvetlenül a többi import utasítás után:
import sys
resource_group_name = str(sys.argv[1])
vm_name = str(sys.argv[2])
Ez a kód importálja a modult sys , és két változót hoz létre az erőforráscsoport és a virtuálisgép-nevek tárolásához. Vegye észre, hogy az argumentumlista eleme, sys.argv[0], a szkript neve, amit nem a felhasználó ad meg.
Most módosíthatja a runbook utolsó két sorát úgy, hogy a bemeneti paraméter értékeit használja a nem rögzített értékek használata helyett:
async_vm_start = compute_client.virtual_machines.begin_start(
resource_group_name, vm_name)
async_vm_start.wait()
Amikor elindít egy Python-runbookot a Teszt panelen vagy közzétett runbookként, a paraméterek értékeit a Runbook indítása lapon, a Paraméterek területen adhatja meg.
Miután megkezdte az érték megadását az első mezőben, megjelenik egy második, és így tovább, hogy annyi paraméterértéket adjon meg, amennyi szükséges.
Az értékek a tömb szkriptjének sys.argv rendelkezésére állnak, ahogyan az imént hozzáadott kódban is.
Adja meg az erőforráscsoport nevét az első paraméter értékeként, a második paraméter értékeként pedig a kezdő virtuális gép nevét.
Válassza az OK gombot a runbook elindításához. A runbook futtatja és elindítja a megadott virtuális gépet.
Hibakezelés a Pythonban
Az alábbi konvenciók segítségével különböző streameket is lekérhet a Python-runbookokból, beleértve a WARNING, ERROR és DEBUG streameket.
print("Hello World output")
print("ERROR: - Hello world error")
print("WARNING: - Hello world warning")
print("DEBUG: - Hello world debug")
print("VERBOSE: - Hello world verbose")
Az alábbi példában látható ez a konvenció, amelyet a try...except blokkban használnak.
try:
raise Exception('one', 'two')
except Exception as detail:
print ('ERROR: Handling run-time error:', detail)
Következő lépések
A runbooktípusokról, azok előnyeiről és korlátairól az Azure Automation-runbook-típusok című témakörben olvashat bővebben.
Az Azure-nak a Pythonnal való fejlesztéséről a Python-fejlesztőknek készült Azure-ban olvashat.
A Python 3-minta runbookok megtekintéséhez tekintse meg az Azure Automation GitHub-adattárat .