Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️
Funkce Spustit příkaz používá agenta virtuálního počítače ke spouštění skriptů prostředí na virtuálním počítači Azure s Linuxem. Tyto skripty můžete použít pro obecnou správu počítačů nebo aplikací. Můžou vám pomoct rychle diagnostikovat a opravovat problémy s přístupem k virtuálním počítačům a sítí a získat virtuální počítač zpět do dobrého stavu.
Výhody
K virtuálním počítačům můžete přistupovat několika způsoby. Spuštěním příkazu můžete na virtuálních počítačích vzdáleně spouštět skripty pomocí agenta virtuálního počítače. Příkaz Spustit použijete prostřednictvím webu Azure Portal, rozhraní REST API nebo Azure CLI pro virtuální počítače s Linuxem.
Tato funkce je užitečná ve všech scénářích, ve kterých chcete spustit skript v rámci virtuálního počítače. Je to jeden z jediných způsobů řešení potíží a nápravy virtuálního počítače, který nemá otevřený port RDP nebo SSH kvůli konfiguraci sítě nebo správce uživatele.
Požadavky
Podporovaná distribuce Linuxu
| Vydavatel | Distribuce | x64 | ARM64 |
|---|---|---|---|
| Komunita Alma Linuxu | Alma Linux | 8.x+, 9.x+ | 8.x+, 9.x+ |
| Credativ | Debian | více než 10 | 11.x+ |
| Kinvolk | Flatcar Linux | 3374.2.x+ | 3374.2.x+ |
| Microsoft | Azure Linux | 2.x | 2.x |
| openSUSE Project | openSUSE | 12.3+ | Nepodporováno |
| Oracle | Oracle Linux | 6.4+, 7.x+, 8.x+ | Nepodporováno |
| Red Hat | Red Hat Enterprise Linux | 6.7+, 7.x+, 8.x+, 9.x+, 10.x+ | 8.6+, 9.0+, 10.x+ |
| CIQ | Rocky Linux | 9.x+ | 9.x+ |
| SUSE | SLES | 12.x+, 15.x+ | 15.x SP4+ |
| Canonical | Ubuntu (verze LTS) | 18.04+, 20.04+, 22.04+, 24.04+ | 20.04+, 22.04+, 24.04+ |
Restrictions
Pokud používáte příkaz Spustit, platí následující omezení:
- Výstup je omezen na posledních 4 096 bajtů.
- Minimální doba spuštění skriptu je přibližně 20 sekund.
- Skripty se ve výchozím nastavení spouští jako uživatel se zvýšenými oprávněními v Linuxu.
- Můžete spustit jeden skript najednou.
- Skripty s výzvou k zadání informací (interaktivní režim) se nepodporují.
- Spuštěný skript nelze zrušit.
- Maximální doba, po které může skript běžet, je 90 minut. Potom vyprší časový limit skriptu.
- K vrácení výsledků skriptu se vyžaduje odchozí připojení z virtuálního počítače.
Poznámka:
Ke správnému fungování vyžaduje spuštění příkazu připojení (port 443) k veřejným IP adresům Azure. Pokud rozšíření nemá přístup k těmto koncovým bodům, skripty se můžou úspěšně spustit, ale nevrací výsledky. Pokud blokujete provoz na virtuálním počítači, můžete pomocí značek služeb povolit provoz do veřejných IP adres Azure pomocí značky AzureCloud .
Dostupné příkazy
Tato tabulka obsahuje seznam příkazů dostupných pro virtuální počítače s Linuxem. Ke spuštění libovolného vlastního skriptu můžete použít příkaz RunShellScript . Pokud ke spuštění příkazu používáte Azure CLI nebo PowerShell, hodnota, kterou zadáte pro --command-id daný parametr -CommandId , musí být jedna z následujících uvedených hodnot. Když zadáte hodnotu, která není dostupným příkazem, zobrazí se tato chyba:
The entity was not found in this Azure location
| název | Description | Další informace |
|---|---|---|
| RunShellScript | Spustí skript linuxového prostředí. | |
| ifconfig | Získá konfiguraci všech síťových rozhraní. | readme |
Azure CLI (příkazový řádek nástroje Azure)
Následující příklad používá příkaz az vm run-command ke spuštění skriptu prostředí na virtuálním počítači Azure s Linuxem.
az vm run-command invoke -g myResourceGroup -n myVm --command-id RunShellScript --scripts "apt-get update && apt-get install -y nginx"
Poznámka:
Pokud chcete spouštět příkazy jako jiný uživatel, zadejte sudo -u uživatelský účet.
Azure Portal
Přejděte na virtuální počítač na webu Azure Portal a v nabídce vlevo v části Operace vyberte Příkaz Spustit. Zobrazí se seznam dostupných příkazů pro spuštění na virtuálním počítači.
Zvolte příkaz, který chcete spustit. Některé příkazy můžou mít volitelné nebo povinné vstupní parametry. Pro tyto příkazy se parametry zobrazí jako textová pole, abyste mohli zadat vstupní hodnoty. Pro každý příkaz můžete zobrazit skript, který se spouští, rozbalením zobrazení skriptu. RunShellScript se liší od ostatních příkazů, protože umožňuje zadat vlastní skript.
Poznámka:
Předdefinované příkazy nelze upravovat.
Po výběru příkazu vyberte Spustit a spusťte skript. Po dokončení skriptu vrátí výstup a případné chyby v okně výstupu. Následující snímek obrazovky ukazuje příklad výstupu spuštění příkazu ifconfig .
PowerShell
Následující příklad používá rutinu Invoke-AzVMRunCommand ke spuštění skriptu PowerShellu na virtuálním počítači Azure. Rutina očekává, že skript odkazovaný v parametru -ScriptPath bude místní pro umístění, kde se rutina spouští.
Invoke-AzVMRunCommand -ResourceGroupName '<myResourceGroup>' -Name '<myVMName>' -CommandId 'RunShellScript' -ScriptPath '<pathToScript>' -Parameter @{"arg1" = "var1";"arg2" = "var2"}
Omezení přístupu ke spuštění příkazu
Výpis příkazů spuštění nebo zobrazení podrobností příkazu vyžaduje Microsoft.Compute/locations/runCommands/read oprávnění na úrovni předplatného. Tato oprávnění mají předdefinovaná role Čtenář a vyšší úrovně.
Spuštění příkazu vyžaduje Microsoft.Compute/virtualMachines/runCommands/write oprávnění. Role Přispěvatel virtuálních počítačů a vyšší úrovně mají toto oprávnění.
Můžete použít některou z předdefinovaných rolí nebo vytvořit vlastní roli pro použití příkazu Spustit.
Řešení potíží s příkazem Pro spuštění akce v Linuxu
Při řešení potíží s příkazem spuštění akce pro linuxová prostředí se podívejte na soubor protokolu obslužné rutiny , který se obvykle nachází v následujícím adresáři: /var/log/azure/run-command/handler.log další podrobnosti.
Známé problémy
Protokoly příkazů pro spuštění akcí v Linuxu mají v porovnání s protokoly windows příkazu pro spuštění akce několik zajímavých rozdílů:
- Pořadové číslo je hlášeno s každým řádkem protokolu jako seq=#.
- Nebude k dispozici řádek, který bude obsahovat
Awaiting completion..., protože to bude pouze v příkazu pro spuštění akce windows. - Řádek
Command existed with code: #je také k dispozici pouze v protokolování příkazu pro spuštění akce systému Windows.
Odebrání příkazu spustit akci
Pokud potřebujete odebrat rozšíření linuxového příkazu pro spuštění akce, projděte si následující kroky pro Azure PowerShell a rozhraní příkazového řádku:
V následujících příkladech odebrání nahraďte název skupinyprostředků a název příslušné skupiny prostředků a název virtuálního počítače.
Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RemoveRunCommandLinuxExtension'
az vm run-command invoke --command-id RemoveRunCommandLinuxExtension --name vmname -g rgname
Poznámka:
Když znovu použijete příkaz Spustit, rozšíření se nainstaluje automaticky. K řešení jakýchkoli problémů souvisejících s rozšířením můžete použít příkaz pro odebrání rozšíření.
Další kroky
Další informace o dalších způsobech vzdáleného spouštění skriptů a příkazů na virtuálním počítači najdete v tématu Spouštění skriptů na virtuálním počítači s Linuxem.