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


Szkriptek futtatása Linux rendszerű virtuális gépen a futtatási parancsok művelettel

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.

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ó.

Parancsszkript kimenetének futtatása

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.