Spuštění příkazu na serverech s podporou Azure Arc (Preview)

Příkaz Spustit na serverech s podporou Azure Arc (Preview) umožňuje vzdáleně a bezpečně spouštět skripty nebo příkazy na virtuálních počítačích připojených k Azure Arc, aniž by bylo nutné přímé připojení přes protokol Remote Desktop Protocol nebo SSH.

Vzhledem k tomu, že se nemusíte k jednotlivým virtuálním počítačům přihlašovat jednotlivě, příkaz Spustit snižuje režii a úsilí při provádění úloh správy, jako je instalace nebo aktualizace softwaru, konfigurace pravidel brány firewall, spouštění kontrol stavu nebo řešení potíží.

Jedním z klíčových případů použití je použití příkazu Spustit k vylepšení stavu zabezpečení. Pomocí příkazu Spustit můžete vzdáleně použít opravy zabezpečení, vynutit zásady dodržování předpisů nebo napravit ohrožení zabezpečení na serverech s podporou Azure Arc. Můžete také automatizovat běžné úlohy zabezpečení, jako jsou obměna hesel, šifrování dat nebo protokoly auditování. Prostřednictvím služby Azure Arc můžete tyto úlohy provádět konzistentně napříč hybridními, multicloudovými a hraničními prostředími a snížit provozní režii a dobu odezvy.

Poznámka:

Přestože existují určité rozdíly, příkaz Spustit na serverech s podporou Azure Arc se podobá funkci příkazu Spustit, kterou můžete použít na virtuálních počítačích Azure, včetně omezení uvedených. Příkladem rozdílů je, že příkaz Spustit na serverech s podporou Azure Arc momentálně není na webu Azure Portal dostupný.

Jak to funguje

Příkaz Spustit je integrovaný do agenta Connected Machine (počínaje verzí 1.33) a podporuje možnost spouštět skripty a centralizovat správu skriptů napříč vytvářením, aktualizací, odstraňováním, sekvencováním a výpisem operací.

Když pomocí příkazu Spustit spustíte skript nebo příkaz z Azure CLI, PowerShellu nebo rozhraní REST API, Azure přesměruje agenta připojeného počítače nainstalovaného na virtuálním počítači k dokončení zadané akce. Na virtuální počítač nemusíte instalovat žádná další rozšíření.

Zatímco je příkaz Spustit na serverech s podporou Azure Arc zdarma, za skripty uložené v Azure jsou účtovány poplatky.

Důležité

Spuštění příkazu na serverech s podporou Azure Arc v současné době nepodporuje ověřování objektů blob pomocí spravovaných identit.

Podporované konfigurace

Příkaz Spustit je k dispozici v mnoha konfiguracích:

  • Zkušenosti: Azure CLI, PowerShell a REST API
  • Operační systémy: Windows a Linux
  • Prostředí: Prostředí mimo Azure připojená k Azure Arc, včetně místních prostředí, VMware, SCVMM, AWS, GCP a OCI

Poznámka:

Příkaz Spustit v Linuxu nepřijímá názvy delší než 36 znaků.

Použití příkazu Spustit

Pokud chcete použít příkaz Spustit, vytvořte skript obsahující příkazy, které chcete na virtuálním počítači spustit. Pak skript spusťte pomocí Azure PowerShellu, Azure CLI nebo rozhraní REST API. Tato část obsahuje příklady použití příkazu Spustit s každým prostředím.

Následující příklady používají modul Az.ConnectedMachine pro Azure PowerShell ke spouštění skriptů nebo příkazů na serveru s podporou Arc.

Spuštění skriptu na počítači

Tento příkaz odešle skript do počítače, spustí ho a vrátí zachycený výstup.

New-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -Location "eastus" -RunCommandName "RunCommandName" –SourceScript "echo Hello World!"

Poznámka:

Do parametru -SourceScript můžete přidat více příkazů. Slouží ; k oddělení jednotlivých příkazů. Příklad: –SourceScript "id; echo Hello World!"

Spuštění skriptu na počítači pomocí souboru skriptu v úložišti

Tento příkaz přesměruje agenta připojeného počítače na identifikátor URI sdíleného přístupového podpisu (SAS) pro objekt blob úložiště, ve kterém byl nahraný skript. Potom nasměruje agenta, aby spustil skript a vrátil zachycený výstup.

New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScriptUri “< SAS URI of a storage blob with read access or public URI>”

Poznámka:

Jedná se scriptUri o identifikátor URI sdíleného přístupového podpisu (SAS) pro objekt blob úložiště a musí poskytovat přístup pro čtení k objektu blob. Pro identifikátor URI SAS se navrhuje doba vypršení platnosti 24 hodin. Identifikátor URI SAS můžete na webu Azure Portal vygenerovat pomocí možností objektů blob nebo vygenerovat token SAS pomocí New-AzStorageBlobSASToken. Pokud vygenerujete token SAS pomocí New-AzStorageBlobSASToken, formát identifikátoru URI SAS je: base blob URL + "?" + token SAS z New-AzStorageBlobSASToken.

Výpis všech nasazených prostředků příkazu Spustit na počítači

Tento příkaz vrátí úplný seznam dříve nasazených příkazů Spustit spolu s jejich vlastnostmi.

Get-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine"

Získání stavu spuštění a výsledků

Tento příkaz načte aktuální průběh provádění pro příkaz Spustit, včetně nejnovějšího výstupu, počátečního a koncového času, ukončovacího kódu a stavu terminálu spuštění.

Get-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -RunCommandName "RunCommandName"

Získání informací o stavu příkazu Spustit prostřednictvím zobrazení instance

Tento příkaz získá informace o stavu příkazu Spustit na počítači se zobrazením instance. Zobrazení instance obsahuje stav spuštění příkazu Spustit (úspěšné, neúspěšné atd.), ukončovací kód, standardní výstup a standardní chybu vygenerovanou spuštěním skriptu. Nenulový ukončovací kód indikuje neúspěšné spuštění.

Get-AzConnectedMachineRunCommand -ResourceGroupName "MyRG" -MachineName "MyMachine" -RunCommandName "MyRunCommand"

Spolu s dalšími informacemi vrátí odpověď tato pole:

  • InstanceViewExecutionState: Určuje, jestli byl váš skript úspěšný nebo ne.
  • ProvisioningState: Označuje, jestli platforma rozšíření mohla aktivovat skript příkazu Spustit, nebo ne.

Vytvoření nebo aktualizace příkazu Spustit na počítači

Tento příkaz vytvoří nebo aktualizuje příkaz Spustit na počítači a streamuje standardní výstup a standardní chybové zprávy do výstupních a chybových AppendBlobů.

New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand3" -Location "eastus" -SourceScript "id; echo HelloWorld" -OutputBlobUri <OutPutBlobUrI> -ErrorBlobUri <ErrorBlobUri>

Poznámka:

Výstupní a chybové objekty blob musí být typem AppendBlob a jejich identifikátory URI SAS musí poskytovat přístup ke čtení, připojení, vytvoření a zápisu k objektu blob. Pro identifikátor URI SAS se navrhuje doba vypršení platnosti 24 hodin. Pokud výstup nebo objekt blob chyby neexistuje, vytvoří se objekt blob typu AppendBlob. Identifikátory URI SAS na webu Azure Portal můžete vygenerovat pomocí možností objektu blob nebo vygenerovat token SAS pomocí New-AzStorageBlobSASToken.

Vytvoření nebo aktualizace příkazu Run na počítači jako jiný uživatel

Tento příkaz vytvoří nebo aktualizuje příkaz Run na počítači jako jiný uživatel pomocí parametrů RunAsUser a RunAsPassword.

Před použitím tohoto příkazu:

  • Obraťte se na správce počítače a ujistěte se, že má uživatel přístup k počítači.
  • Ujistěte se, že má uživatel přístup k prostředkům, ke které přistupuje příkaz Spustit, například k adresářům, souborům a síťovým prostředkům.
  • Na počítači s Windows se ujistěte, že je spuštěné sekundární přihlášení.
New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScript "id; echo HelloWorld" -RunAsUser myusername -RunAsPassword mypassword

Vytvoření nebo aktualizace příkazu Spustit na počítači pomocí místního souboru skriptu

Tento příkaz vytvoří nebo aktualizuje příkaz Spustit na počítači pomocí souboru místního skriptu na klientském počítači, kde cmdlet běží.

New-AzConnectedMachineRunCommand -ResourceGroupName "MyRG0" -MachineName "MyMachine" -RunCommandName "MyRunCommand" -Location "eastus" -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1"

Vytvoření nebo aktualizace příkazu Spustit na počítači při předávání citlivých vstupů do skriptu

Tento příkaz vytvoří nebo aktualizuje příkaz 'Run' včetně ProtectedParameter, aby se předaly citlivé vstupy do skriptu, jako jsou hesla nebo klíče.

$privateParametersArray = @{name='inputText';value='privateParam1value'}

New-AzConnectedMachineRunCommand -MachineName "MyMachine" -ResourceGroupName "MyRG0" -RunCommandName "MyRunCommand" -Location "eastus" -SourceScriptUri <SourceScriptUri> -ProtectedParameter $privateParametersArray 

Ukázkový skript pro zachycení vstupního textu:

param ([string]$inputText)
Write-Output $inputText

Veřejné parametry můžete předat také podobným způsobem pomocí Parameter.

  • Pro Windows: Parametr a ProtectedParameter se předávají skriptu podobnému následujícímu příkladu: myscript.ps1 -publicParam1 publicParam1value -publicParam2 publicParam2value -secret1 secret1value -secret2 secret2value

  • Pro Linux: Název Parameter a jeho hodnoty jsou nastaveny na konfiguraci prostředí, která by měla být přístupná v rámci skriptu PowerShellu. Pro argumenty bez názvů předejte prázdný řetězec do vstupu pro jméno. Argumenty bez názvů se předávají skriptu podobné následujícímu příkladu: myscript.sh publicParam1value publicParam2value secret1value secret2value

Odstranit prostředek příkazu Spustit z počítače

Tento příkaz odebere prostředek příkazu Spustit dříve nasazený na počítači. Pokud provádění skriptu stále probíhá, provádění se ukončí.

Remove-AzConnectedMachineRunCommand -ResourceGroupName "myRG" -MachineName "myMachine" -RunCommandName "RunCommandName"

Omezení přístupu k příkazu Spustit (Preview)

I když vzdálený přístup povolený příkazem Spustit snižuje režii při provádění určitých úloh na virtuálním počítači, můžete také omezit vzdálený přístup.

Správa přístupu k příkazu Spustit pomocí řízení přístupu na základě role v Azure (Azure RBAC)

Pomocí Azure RBAC můžete určit, kteří uživatelé můžou spouštět příkazy a skripty pomocí příkazu Spustit.

Následující tabulka popisuje akci příkazu Spustit, oprávnění potřebná k provedení akce a roli RBAC, která oprávnění uděluje.

Činnost Povolení RBAC s oprávněním
Výpis příkazů spuštění nebo zobrazení podrobností příkazu Microsoft.HybridCompute/machines/runCommands/read Předdefinovaná role čtenáře a vyšší
Spuštění příkazu Microsoft.HybridCompute/machines/runCommands/write Role správce prostředků připojeného zařízení Azure a vyšší

Pokud chcete řídit přístup k funkci příkazu Spustit, použijte některou z předdefinovaných rolí nebo vytvořte vlastní roli , která uděluje oprávnění k příkazu Spustit.

Blokování příkazů spuštění místně

Můžete určit, jestli agent Connected Machine umožňuje přístup k virtuálnímu počítači prostřednictvím Run příkazů přidáním rozšíření Run příkazů do povoleného seznamu nebo blokovaného seznamu.

Další informace najdete v tématu Seznamy povolených rozšíření a seznamy blokovaných položek.

Následující příklad přidá rozšíření příkazu Spustit do seznamu blokovaných na virtuálním počítači s Windows:

azcmagent config set extensions.blocklist "microsoft.cplat.core/runcommandhandlerwindows"

Tento příklad přidá rozšíření příkazů Spustit do seznamu povolených na virtuálním počítači s Linuxem:

azcmagent config set extensions.allowlist "microsoft.cplat.core/runcommandhandlerlinux"

Další kroky

Informace o použití příkazu Spustit najdete v následujících zdrojích informací: