Az Azure-beli Windows rendszerű virtuálisgép-bővítmény hibáinak elhárítása
Az Azure Resource Manager-sablonok áttekintése
Az Azure Resource Manager-sablonok segítségével deklaratívan megadhatja az Azure IaaS-infrastruktúrát JSON nyelven az erőforrások közötti függőségek meghatározásával.
A bővítménysablonok készítéséről további információt a Bővítménysablonok készítése című témakörben talál.
Ez a cikk a virtuálisgép-bővítmények gyakori hibáinak elhárítását ismerteti.
Bővítmény állapotának megtekintése
Az Azure Resource Manager-sablonok Azure PowerShell hajthatók végre. A sablon végrehajtása után a bővítmény állapota megtekinthető az Azure Resource Explorerből vagy a parancssori eszközökből.
Bemutatunk egy példát:
Azure PowerShell:
Get-AzVM -ResourceGroupName $RGName -Name $vmName -Status
A minta kimenete a következő:
Extensions: {
"ExtensionType": "Microsoft.Compute.CustomScriptExtension",
"Name": "myCustomScriptExtension",
"SubStatuses": [
{
"Code": "ComponentStatus/StdOut/succeeded",
"DisplayStatus": "Provisioning succeeded",
"Level": "Info",
"Message": " Directory: C:\\temp\\n\\n\\nMode LastWriteTime Length Name
\\n---- ------------- ------ ---- \\n-a--- 9/1/2015 2:03 AM 11
test.txt \\n\\n",
"Time": null
},
{
"Code": "ComponentStatus/StdErr/succeeded",
"DisplayStatus": "Provisioning succeeded",
"Level": "Info",
"Message": "",
"Time": null
}
]
}
Bővítményhibák elhárítása
Ellenőrizze, hogy fut-e a virtuálisgép-ügynök, és készen áll-e
A virtuálisgép-ügynök szükséges a bővítmények kezeléséhez, telepítéséhez és végrehajtásához. Ha a virtuálisgép-ügynök nem fut, vagy nem tud kész állapotot jelenteni az Azure platformnak, akkor a bővítmények nem fognak megfelelően működni.
A virtuálisgép-ügynök hibaelhárításához tekintse meg az alábbi oldalakat:
- Windows rendszerű virtuális gép Windows Azure-vendégügynökének hibaelhárítása
- Linux rendszerű virtuális gép Azure Linux-ügynökének hibaelhárítása
Az adott bővítmény hibaelhárítási útmutatójának keresése
Egyes bővítmények egy adott oldallal rendelkeznek, amely leírja, hogyan háríthatja el őket. A bővítmények listáját és lapjait a Bővítmények hibaelhárítása című témakörben találja.
A bővítmény állapotának megtekintése
A fentiekben leírtak szerint a bővítmény állapota a PowerShell-parancsmag futtatásával érhető el:
Get-AzVM -ResourceGroupName $RGName -Name $vmName -Status
vagy a CLI-parancsot:
az vm extension show -g <RG Name> --vm-name <VM Name> --name <Extension Name>
vagy a Azure Portal a virtuális gép paneljének / Beállításainak /Bővítményeinek tallózásával. Ezután kattintson a bővítményre, és ellenőrizze annak állapotát és üzenetét.
Futtassa újra a bővítményt a virtuális gépen
Ha egyéni szkriptbővítménnyel futtat szkripteket a virtuális gépen, előfordulhat, hogy olyan hibába ütközik, amely miatt a virtuális gép sikeresen létrejött, de a szkript sikertelen volt. Ilyen körülmények között a hiba elhárításának ajánlott módja a bővítmény eltávolítása és a sablon ismételt futtatása. Megjegyzés: A jövőben ez a funkció tovább fog bővülni, hogy ne kelljen eltávolítani a bővítményt.
A bővítmény eltávolítása a Azure PowerShell
Remove-AzVMExtension -ResourceGroupName $RGName -VMName $vmName -Name "myCustomScriptExtension"
A bővítmény eltávolítása után a sablon újra futtatható a szkriptek futtatásához a virtuális gépen.
Új GoalState aktiválása a virtuális gépen
Észreveheti, hogy egy bővítmény nem lett végrehajtva, vagy egy hiányzó "Windows Azure CRP-tanúsítványgenerátor" miatt nem hajtható végre (ez a tanúsítvány a bővítmény védett beállításainak átvitelének védelmére szolgál). A tanúsítvány automatikusan újra létrejön a Windows-vendégügynök virtuális gépről történő újraindításával:
- A Feladatkezelő megnyitása
- Lépjen a Részletek lapra
- A WindowsAzureGuestAgent.exe-folyamat megkeresése
- Kattintson a jobb gombbal, és válassza a "Feladat befejezése" lehetőséget. A folyamat automatikusan újraindul
Új GoalState-ot is aktiválhat a virtuális gépen egy "VM Reapply" végrehajtásával. A VM Reapply egy 2020-ban bevezetett API a virtuális gép állapotának újbóli alkalmazásához. Javasoljuk, hogy ezt olyan időpontban tegye meg, amikor el tudja viselni a virtuális gépek rövid állásidejét. Bár az újraalkalmazás önmagában nem okoz újraindítást a virtuális gépeken, és a Reapply meghívása legtöbbször nem indítja újra a virtuális gépet, nagyon kicsi a kockázata annak, hogy a virtuálisgép-modell egyéb függőben lévő frissítése is érvénybe lép, amikor az Újraalkalmazás új célállapotot aktivál, és hogy más módosítások újraindítást igényelhetnek.
Azure Portal:
A portálon válassza ki a virtuális gépet, majd a bal oldali panelEn a Támogatás + hibaelhárítás területen válassza az Ismételt üzembe helyezés + újraalkalmazás lehetőséget, majd az Újraalkalmazás lehetőséget.
Azure PowerShell (cserélje le az RG-nevet és a virtuális gép nevét az értékekre):
Set-AzVM -ResourceGroupName <RG Name> -Name <VM Name> -Reapply
Azure CLI (cserélje le az RG-nevet és a virtuális gép nevét az értékekre):
az vm reapply -g <RG Name> -n <VM Name>
Ha egy "Virtuális gép újraalkalmazása" nem működött, hozzáadhat egy új üres adatlemezt a virtuális géphez az Azure Felügyeleti portálon, majd később eltávolíthatja a tanúsítvány újbóli hozzáadása után.
Tekintse meg a virtuális gépen belüli bővítménynaplókat
Ha az előző lépések nem működtek, és a bővítmény továbbra is sikertelen állapotban van, a következő lépés a virtuális gépen belüli naplók megtekintése.
Windows rendszerű virtuális gépeken a bővítménynaplók általában a
C:\WindowsAzure\Logs\Plugins
A bővítménybeállítások és állapotfájlok pedig a következő helyen lesznek:
C:\Packages\Plugins
Linux rendszerű virtuális gépeken a bővítménynaplók általában a következő helyen találhatók:
/var/log/azure/
A bővítménybeállítások és állapotfájlok pedig a következő helyen lesznek:
/var/lib/waagent/
Minden bővítmény egyedi, de általában hasonló elvek szerint működnek:
A bővítménycsomagok és bináris fájlok a virtuális gépen töltődnek le (pl. "/var/lib/waagent/custom-script/download/1" Linux vagy "C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.12\Downloads\0" Windows rendszeren).
Konfigurációjukat és beállításaikat az Azure Platform átadja a bővítménykezelőnek a virtuálisgép-ügynökön keresztül (pl. "/var/lib/waagent/Microsoft.Azure.Extensions.CustomScript-2.1.3/config" Linux vagy "C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.12\RuntimeSettings" Windows rendszeren)
A virtuális gépen belüli bővítménykezelők egy állapotfájlba írnak (pl. "/var/lib/waagent/Microsoft.Azure.Extensions.CustomScript-2.1.3/status/1.status" Linux vagy "C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.12\Status" windowsos rendszeren, amelyet ezután jelenteni fog az Azure Platformnak. Ez az állapot a PowerShellen, a parancssori felületen vagy a virtuális gép bővítménypaneljén jelentett állapot a Azure Portal.
Részletes naplókat is írnak a végrehajtásukról (pl. "/var/log/azure/custom-script/handler.log" Linux vagy "C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.12\CustomScriptHandler.log" Windows rendszeren).
Ha a virtuális gép újra létrejön egy meglévő virtuális gépről
Előfordulhat, hogy egy másik Azure-beli virtuális gépről származó speciális lemez alapján hoz létre Azure-beli virtuális gépet. Ebben az esetben előfordulhat, hogy a régi virtuális gép bővítményeket tartalmazott, és így bináris fájlok, naplók és állapotfájlok maradnak meg. Az új virtuálisgép-modell nem fogja tudni a korábbi virtuális gép bővítményállapotait, és előfordulhat, hogy helytelen állapotot jelez ezekhez a bővítményekhez. Javasoljuk, hogy az új virtuális gép létrehozása előtt távolítsa el a bővítményeket a régi virtuális gépről, majd telepítse újra ezeket a bővítményeket az új virtuális gép létrehozása után. Ugyanez történhet, ha egy meglévő Azure-beli virtuális gépről hoz létre általános rendszerképet. Kérjük, távolítsa el a bővítményeket, hogy elkerülje a bővítmények inkonzisztens állapotát.
Ismert problémák
A PowerShell nem ismerhető fel belső vagy külső parancsként
A RunCommand bővítmény kimenetében a következő hibabejegyzések jelennek meg:
RunCommandExtension failed with "'powershell' isn't recognized as an internal or external command,"
Elemzés
A bővítmények helyi rendszerfiókban futnak, így nagyon lehetséges, hogy powershell.exe megfelelően működik, amikor RDP-t használ a virtuális gépre, de a RunCommand futtatásával meghiúsul.
Megoldás
- Ellenőrizze, hogy a PowerShell megfelelően szerepel-e a PATH környezeti változóban:
- Nyissa meg Vezérlőpultot
- Rendszer és biztonság
- Rendszer
- Speciális lap –> Környezeti változók
- A "Rendszerváltozók" területen kattintson a Szerkesztés elemre, és győződjön meg arról, hogy a PowerShell szerepel a PATH környezeti változóban (általában: "C:\Windows\System32\WindowsPowerShell\v1.0")
- Indítsa újra a virtuális gépet, vagy indítsa újra a WindowsAzureGuestAgent szolgáltatást, majd próbálkozzon újra a Parancs futtatása paranccsal.
A parancs nem ismerhető fel belső vagy külső parancsként
A következőt látja a C:\WindowsAzure\Logs\Plugins<ExtensionName><Version>\CommandExecution.log fájlban:
Execution Error: '<command>' isn't recognized as an internal or external command, operable program or batch file.
Elemzés
A bővítmények helyi rendszerfiókban futnak, így nagyon lehetséges, hogy powershell.exe megfelelően működik, amikor RDP-t használ a virtuális gépre, de a RunCommand futtatásával meghiúsul.
Megoldás
- Nyisson meg egy parancssort a virtuális gépen, és futtasson egy parancsot a hiba reprodukálásához. A virtuálisgép-ügynök a Rendszergazda cmd.exe használja, és előfordulhat, hogy rendelkezik néhány előre konfigurált paranccsal a parancs minden indításakor.
- Az is valószínű, hogy a PATH változó helytelenül van konfigurálva, de ez a problémát okozó parancstól függ.
A VMAccessAgent nem tudja frissíteni a rendszergazdai fiók távoli asztali kapcsolati beállításait. Hiba: System.Runtime.InteropServices.COMException (0x800706D9): Nincs több végpont a végpontleképezőből.
A bővítmény állapota a következő:
Type Microsoft.Compute.VMAccessAgent
Version 2.4.8
Status Provisioning failed
Status level Error
Status message Cannot update Remote Desktop Connection settings for Administrator account. Error: System.Runtime.InteropServices.COMException (0x800706D9): There are no more endpoints available from the endpoint mapper. (Exception from HRESULT: 0x800706D9) at NetFwTypeLib.INetFwRules.GetEnumerator() at
Microsoft.WindowsAzure.GuestAgent.Plugins.JsonExtensions.VMAccess.RemoteDesktopManager.EnableRemoteDesktopFirewallRules()
at Microsoft.WindowsAzure.GuestAgent.Plugins.JsonExtensions.VMAccess.RemoteDesktopManager.EnableRemoteDesktop() at
Elemzés
Ez a hiba akkor fordulhat elő, ha a Windows tűzfal szolgáltatás nem fut.
Megoldás
Ellenőrizze, hogy a Windows tűzfal szolgáltatás engedélyezve van-e és fut-e. Ha nem, engedélyezze és indítsa el , majd próbálkozzon újra a VMAccessAgent futtatásával.
A távoli tanúsítvány érvénytelen az érvényesítési eljárásnak megfelelően.
A waAppAgent.log fájlban a következőt látja:
System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.
Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
Elemzés
A virtuális gép valószínűleg nem rendelkezik a Baltimore CyberTrust főtanúsítványával a "Megbízható legfelső szintű hitelesítésszolgáltatók" mappában.
Megoldás
Nyissa meg a tanúsítványkonzolt a certmgr.msc fájllal, és ellenőrizze, hogy a tanúsítvány ott van-e.
Egy másik lehetséges probléma, hogy a tanúsítványláncot egy külső SSL-ellenőrző eszköz, például a ZScaler megszakítja. Ezt az eszközt úgy kell konfigurálni, hogy megkerülje az SSL-ellenőrzést.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: