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.
A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek rugalmas méretezési ✔️ csoportjai
A Parancs futtatása funkció a virtuálisgép-ügynök használatával futtatja a rendszerhéjszkripteket egy Azure Linux rendszerű virtuális gépen. Ezeket a szkripteket általános gép- vagy alkalmazásfelügyelethez használhatja. Segíthetnek a virtuális gépek hozzáférésével és hálózatával kapcsolatos problémák gyors diagnosztizálásában és elhárításában, valamint a virtuális gép megfelelő állapotba helyezésében.
Előnyök
A virtuális gépek többféleképpen is elérhetők. A Run Command távolról is futtathat szkripteket a virtuális gépeken a virtuálisgép-ügynök használatával. A Futtatás parancsot az Azure Portalon, a REST API-on vagy az Azure CLI-on keresztül használhatja Linux rendszerű virtuális gépekhez.
Ez a funkció minden olyan forgatókönyvben hasznos, ahol szkriptet szeretne futtatni egy virtuális gépen. Ez az egyetlen módszer olyan virtuális gépek hibaelhárítására és szervizelésére, amelyeknél nincs megnyitva az RDP- vagy SSH-port a hálózati vagy rendszergazdai felhasználói konfiguráció miatt.
Előfeltételek
Linux disztribúció támogatott
| Kiadó | Disztribúció | x64 | ARM64 |
|---|---|---|---|
| Alma Linux-közösség | Alma Linux | 8.x+, 9.x+ | 8.x+, 9.x+ |
| Credativ | Debian | 10+ | 11.x+ |
| Kinvolk | Flatcar Linux | 3374.2.x+ | 3374.2.x+ |
| Microsoft | Azure Linux | 2.x | 2.x |
| openSUSE Project | openSUSE | 12.3+ | Nem támogatott |
| Oracle | Oracle Linux | 6.4+, 7.x+, 8.x+ | Nem támogatott |
| Piros kalap | Red Hat Enterprise Linux | 6.7+, 7.x+, 8.x+, 9.x+, 10.x+ | 8.6+, 9.0+, 10.x+ |
| CIQ | Sziklás Linux | 9.x+ | 9.x+ |
| SUSE | SLES | 12.x+, 15.x+ | 15.x SP4+ |
| Canonical | Ubuntu (LTS-kiadások) | 18.04+, 20.04+, 22.04+, 24.04+ | 20.04+, 22.04+, 24.04+ |
Restrictions
A futtatási parancs használatakor a következő korlátozások érvényesek:
- A kimenet az utolsó 4096 bájtra korlátozódik.
- A szkriptek futtatásának minimális ideje körülbelül 20 másodperc.
- A szkriptek alapértelmezés szerint rendszergazdai jogú felhasználóként futnak Linuxon.
- Egyszerre egy szkriptet is futtathat.
- Az információt kérő szkriptek (interaktív mód) nem támogatottak.
- Futó szkript nem szakítható meg.
- A szkriptek futtatásának maximális időtartama 90 perc. Ezután a szkript időtúllépést fog végrehajtani.
- A szkript eredményeinek visszaadásához kimenő kapcsolat szükséges a virtuális gépről.
Megjegyzés:
A helyes működéshez a parancs futtatásához csatlakoztatni kell a (443-as portot) az Azure nyilvános IP-címéhez. Ha a bővítmény nem rendelkezik hozzáféréssel ezekhez a végpontokhoz, előfordulhat, hogy a szkriptek sikeresen futnak, de nem adnak vissza eredményeket. Ha blokkolja a virtuális gép forgalmát, szolgáltatáscímkék használatával engedélyezheti az Azure nyilvános IP-címeinek forgalmát a AzureCloud címke használatával.
Elérhető parancsok
Ez a táblázat a Linux rendszerű virtuális gépekhez elérhető parancsok listáját tartalmazza. A RunShellScript paranccsal bármilyen egyéni szkriptet futtathat. Amikor az Azure CLI-t vagy a PowerShellt használja egy parancs futtatásához, a megadott --command-id értéknek vagy -CommandId paraméternek az alábbi értékek egyikének kell lennie. Ha olyan értéket ad meg, amely nem érhető el, a következő hibaüzenet jelenik meg:
The entity was not found in this Azure location
| Név | Leírás | További információ |
|---|---|---|
| RunShellScript | Linux rendszerhéjszkriptet futtat. | |
| ifconfig | Lekéri az összes hálózati adapter konfigurációját. | readme |
Azure CLI (Az Azure parancssori felülete)
Az alábbi példa az az vm run-command paranccsal futtat egy rendszerhéjszkriptet egy Azure Linux rendszerű virtuális gépen.
az vm run-command invoke -g myResourceGroup -n myVm --command-id RunShellScript --scripts "apt-get update && apt-get install -y nginx"
Megjegyzés:
Ha más felhasználóként szeretne parancsokat futtatni, adjon sudo -u meg egy felhasználói fiókot.
Azure Portal
Lépjen egy virtuális gépre az Azure Portalon , és válassza a Futtatás parancsot a bal oldali menü Műveletek területén. Megjelenik a virtuális gépen futtatandó elérhető parancsok listája.
Válasszon egy futtatandó parancsot. Egyes parancsok opcionális vagy kötelező bemeneti paraméterekkel rendelkezhetnek. Ezeknél a parancsoknál a paraméterek szövegmezőkként jelennek meg a bemeneti értékek megadásához. Minden parancshoz megtekintheti a futtatott szkriptet a View szkript kibontásával. A RunShellScript eltér a többi parancstól, mivel lehetővé teszi saját egyéni szkriptek megadását.
Megjegyzés:
A beépített parancsok nem szerkeszthetők.
Miután kiválasztotta a parancsot, válassza a Futtatás lehetőséget a szkript futtatásához. A szkript befejeződése után visszaadja a kimenetet és a kimeneti ablakban megjelenő hibákat. Az alábbi képernyőképen az ifconfig parancs futtatásából származó példakimenet látható.
PowerShell
Az alábbi példa az Invoke-AzVMRunCommand parancsmaggal futtat egy PowerShell-szkriptet egy Azure-beli virtuális gépen. A parancsmag elvárja, hogy a paraméterben -ScriptPath hivatkozott szkript helyi legyen a parancsmag futtatásának helyéhez.
Invoke-AzVMRunCommand -ResourceGroupName '<myResourceGroup>' -Name '<myVMName>' -CommandId 'RunShellScript' -ScriptPath '<pathToScript>' -Parameter @{"arg1" = "var1";"arg2" = "var2"}
A futtatási parancshoz való hozzáférés korlátozása
A futtatási parancsok felsorolásához vagy egy parancs részleteinek megjelenítéséhez előfizetési Microsoft.Compute/locations/runCommands/read szintű engedély szükséges. A beépített olvasói szerepkör és a magasabb szintek rendelkeznek ezzel az engedéllyel.
A parancs futtatásához engedély Microsoft.Compute/virtualMachines/runCommands/write szükséges. A virtuálisgép-közreműködői szerepkör és a magasabb szintek rendelkeznek ezzel az engedéllyel.
A parancs futtatásához használhatja az egyik beépített szerepkört , vagy létrehozhat egy egyéni szerepkört .
Műveletfuttatási parancs – Linux hibaelhárítás
A Linux-környezetek műveletfuttatási parancsának hibaelhárítása során további részletekért tekintse meg a jellemzően a következő könyvtárban található /var/log/azure/run-command/handler.log naplófájlt.
Ismert problémák
A Linux-műveletfuttatási parancsnaplók néhány jelentős különbséget mutatnak a windowsos műveletfuttatási parancsnaplókhoz képest:
- A rendszer a napló minden sorával "seq=#" néven jelenti a sorszámot.
- Nem lesz olyan sor, amely tartalmazna
Awaiting completion..., mivel ez csak a Windows parancs futtatásával működik. - A sor
Command existed with code: #is csak a műveletfuttatási parancs windowsos naplózásában jelenik meg.
Műveletfuttatási parancs eltávolítása
Ha el kell távolítania a műveletfuttatási parancs Linux-bővítményét, tekintse meg az Azure PowerShell és a parancssori felület alábbi lépéseit:
Az alábbi eltávolítási példákban cserélje le az rgname és a vmname nevet a megfelelő erőforráscsoport- és virtuálisgép-névre.
Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RemoveRunCommandLinuxExtension'
az vm run-command invoke --command-id RemoveRunCommandLinuxExtension --name vmname -g rgname
Megjegyzés:
Amikor ismét futtatási parancsot alkalmaz, a bővítmény automatikusan települ. A bővítményeltávolítási paranccsal elháríthatja a bővítménysel kapcsolatos problémákat.
Következő lépések
A szkriptek és parancsok távoli futtatásának egyéb módjairól a Linux rendszerű virtuális gépen futó szkriptek futtatása című témakörben olvashat.