Nasazení rozšíření vlastních skriptů na virtuálních počítačích spuštěných na zařízení Azure Stack Edge Pro
PLATÍ PRO: Azure Stack Edge Pro – GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
Rozšíření vlastních skriptů stáhne a spustí skripty nebo příkazy na virtuálních počítačích spuštěných na zařízeních Azure Stack Edge Pro. Tento článek podrobně popisuje, jak nainstalovat a spustit rozšíření vlastních skriptů pomocí šablony Azure Resource Manageru.
Informace o rozšíření vlastních skriptů
Rozšíření vlastních skriptů je užitečné pro konfiguraci po nasazení, instalaci softwaru nebo jakoukoli jinou úlohu konfigurace/správy. Skripty si můžete stáhnout ze služby Azure Storage nebo z jiného přístupného internetového umístění nebo můžete poskytnout skripty nebo příkazy modulu runtime rozšíření.
Rozšíření vlastních skriptů se integruje se šablonami Azure Resource Manageru. Můžete ho také spustit pomocí Azure CLI, PowerShellu nebo rozhraní REST API služby Azure Virtual Machines.
Operační systém pro rozšíření vlastních skriptů
Podporovaný operační systém pro rozšíření vlastních skriptů ve Windows
Rozšíření vlastních skriptů pro Windows se spustí v následujících operačních systémech. Jiné verze můžou fungovat, ale nebyly testovány interně na virtuálních počítačích spuštěných na zařízeních Azure Stack Edge Pro.
Distribuce | Verze |
---|---|
Windows Server 2019 | Základ |
Windows Server 2016 | Základ |
Podporovaný operační systém pro rozšíření vlastních skriptů v Linuxu
Rozšíření vlastních skriptů pro Linux se spustí v následujících operačních systémech. Jiné verze můžou fungovat, ale nebyly testovány interně na virtuálních počítačích spuštěných na zařízeních Azure Stack Edge Pro.
Distribuce | Verze |
---|---|
Linux Ubuntu: | 18.04 LTS |
Linux: Red Hat Enterprise Linux | 7.4, 7.5, 7.7 |
Požadavky
Stáhněte si šablony virtuálních počítačů a soubory parametrů do klientského počítače. Rozbalte stažený soubor do adresáře, který použijete jako pracovní adresář.
Na zařízení byste měli mít vytvořený a nasazený virtuální počítač. Pokud chcete vytvořit virtuální počítače, postupujte podle všech kroků v tématu Nasazení virtuálního počítače ve službě Azure Stack Edge Pro pomocí šablon.
Pokud potřebujete stáhnout skript, jako je GitHub nebo Azure Storage externě, při konfiguraci výpočetní sítě povolte port připojený k internetu pro výpočetní prostředky. To vám umožní stáhnout skript.
V následujícím příkladu byl port 2 připojený k internetu a byl použit k povolení výpočetní sítě. Pokud jste v předchozím kroku zjistili, že Kubernetes není potřeba, můžete přeskočit IP adresu uzlu Kubernetes a přiřazení IP adresy externí služby.
Instalace rozšíření vlastních skriptů
V závislosti na operačním systému virtuálního počítače můžete nainstalovat rozšíření vlastních skriptů pro Windows nebo Linux.
Rozšíření vlastních skriptů pro virtuální počítače
Pokud chcete nasadit rozšíření vlastních skriptů pro Windows pro virtuální počítač spuštěný na vašem zařízení, upravte addCSExtWindowsVM.parameters.json
soubor parametrů a pak šablonu addCSextensiontoVM.json
nasaďte .
Úprava souboru parametrů
Soubor addCSExtWindowsVM.parameters.json
má následující parametry:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"value": "<Name of VM>"
},
"extensionName": {
"value": "<Name of extension>"
},
"publisher": {
"value": "Microsoft.Compute"
},
"type": {
"value": "CustomScriptExtension"
},
"typeHandlerVersion": {
"value": "1.10"
},
"settings": {
"value": {
"commandToExecute" : "<Command to execute>"
}
}
}
}
Zadejte název virtuálního počítače, název rozšíření a příkaz, který chcete spustit.
Tady je ukázkový soubor parametrů, který byl použit v tomto článku.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"value": "VM5"
},
"extensionName": {
"value": "CustomScriptExtension"
},
"publisher": {
"value": "Microsoft.Compute"
},
"type": {
"value": "CustomScriptExtension"
},
"typeHandlerVersion": {
"value": "1.10"
},
"settings": {
"value": {
"commandToExecute" : "md C:\\Users\\Public\\Documents\\test"
}
}
}
}
Nasazení šablony
Nasaďte šablonu addCSextensiontoVM.json
. Tato šablona nasadí rozšíření do existujícího virtuálního počítače. Spusťte následující příkaz:
$templateFile = "<Path to addCSExtensiontoVM.json file>"
$templateParameterFile = "<Path to addCSExtWindowsVM.parameters.json file>"
$RGName = "<Resource group name>"
New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "<Deployment name>"
Poznámka:
Nasazení rozšíření je dlouhotrvající úloha a dokončení trvá přibližně 10 minut.
Tady je ukázkový výstup:
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\ExtensionTemplates\addCSExtensiontoVM.json"
PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\ExtensionTemplates\addCSExtWindowsVM.parameters.json"
PS C:\WINDOWS\system32> $RGName = "myasegpuvm1"
PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "deployment7"
DeploymentName : deployment7
ResourceGroupName : myasegpuvm1
ProvisioningState : Succeeded
Timestamp : 12/17/2020 10:07:44 PM
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
vmName String VM5
extensionName String CustomScriptExtension
publisher String Microsoft.Compute
type String CustomScriptExtension
typeHandlerVersion String 1.10
settings Object {
"commandToExecute": "md C:\\Users\\Public\\Documents\\test"
}
Outputs :
DeploymentDebugLogLevel :
PS C:\WINDOWS\system32>
Sledování nasazení
Pokud chcete zkontrolovat stav nasazení rozšíření pro daný virtuální počítač, spusťte následující příkaz:
Get-AzureRmVMExtension -ResourceGroupName <Name of resource group> -VMName <Name of VM> -Name <Name of the extension>
Tady je ukázkový výstup:
PS C:\WINDOWS\system32> Get-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM5 -Name CustomScriptExtension
ResourceGroupName : myasegpuvm1
VMName : VM5
Name : CustomScriptExtension
Location : dbelocal
Etag : null
Publisher : Microsoft.Compute
ExtensionType : CustomScriptExtension
TypeHandlerVersion : 1.10
Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myasegpuvm1/providers/Microsoft.Compute/virtualMachines/VM5/extensions/CustomScriptExtension
PublicSettings : {
"commandToExecute": "md C:\\Users\\Public\\Documents\\test"
}
ProtectedSettings :
ProvisioningState : Creating
Statuses :
SubStatuses :
AutoUpgradeMinorVersion : True
ForceUpdateTag :
PS C:\WINDOWS\system32>
Poznámka:
Po dokončení nasazení se změní na ProvisioningState
Succeeded
.
Výstup rozšíření se protokoluje do souborů v následující složce na cílovém virtuálním počítači.
C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension
Zadané soubory se stáhnou do následující složky na cílovém virtuálním počítači.
C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.*\Downloads\<n>
kde n je desetinné celé číslo, které se může změnit mezi prováděními rozšíření. Hodnota 1.* odpovídá skutečné aktuální typeHandlerVersion
hodnotě rozšíření. Například skutečný adresář v této instanci byl C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.9\Downloads\0
.
V tomto případě byl příkaz ke spuštění pro vlastní rozšíření: md C:\\Users\\Public\\Documents\\test
. Po úspěšné instalaci rozšíření můžete ověřit, že byl adresář vytvořen ve virtuálním počítači v zadané cestě v příkazu.
Rozšíření vlastních skriptů pro Linux
Pokud chcete nasadit rozšíření vlastních skriptů pro Windows pro virtuální počítač spuštěný na vašem zařízení, upravte addCSExtLinuxVM.parameters.json
soubor parametrů a pak šablonu addCSExtensiontoVM.json
nasaďte .
Úprava souboru parametrů
Soubor addCSExtLinuxVM.parameters.json
má následující parametry:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"value": "<Name of your VM>"
},
"extensionName": {
"value": "<Name of your extension>"
},
"publisher": {
"value": "Microsoft.Azure.Extensions"
},
"type": {
"value": "CustomScript"
},
"typeHandlerVersion": {
"value": "2.0"
},
"settings": {
"value": {
"commandToExecute" : "<Command to execute>"
}
}
}
}
Zadejte název virtuálního počítače, název rozšíření a příkaz, který chcete spustit.
Tady je ukázkový soubor parametrů, který byl použit v tomto článku:
$templateFile = "<Path to addCSExtensionToVM.json file>"
$templateParameterFile = "<Path to addCSExtLinuxVM.parameters.json file>"
$RGName = "<Resource group name>"
New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "<Deployment name>"
Poznámka:
Nasazení rozšíření je dlouhotrvající úloha a dokončení trvá přibližně 10 minut.
Tady je ukázkový výstup:
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\ExtensionTemplates\addCSExtensionToVM.json"
PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\ExtensionTemplates\addCSExtLinuxVM.parameters.json"
PS C:\WINDOWS\system32> $RGName = "myasegpuvm1"
PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "deployment99"
DeploymentName : deployment99
ResourceGroupName : myasegpuvm1
ProvisioningState : Succeeded
Timestamp : 12/18/2020 1:55:23 AM
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
vmName String VM6
extensionName String LinuxCustomScriptExtension
publisher String Microsoft.Azure.Extensions
type String CustomScript
typeHandlerVersion String 2.0
settings Object {
"commandToExecute": "sudo echo 'some text' >> /home/Administrator/file2.txt"
}
Outputs :
DeploymentDebugLogLevel :
PS C:\WINDOWS\system32>
Byla commandToExecute
nastavena pro vytvoření souboru file2.txt
v /home/Administrator
adresáři a obsah souboru jsou some text
. V takovém případě můžete ověřit, že byl soubor vytvořen v zadané cestě.
Administrator@VM6:~$ dir
file2.txt
Administrator@VM6:~$ cat file2.txt
some text
Administrator@VM6:
Sledování stavu nasazení
Nasazení šablony je dlouhotrvající úloha. Pokud chcete zkontrolovat stav nasazení rozšíření pro daný virtuální počítač, otevřete jinou relaci PowerShellu (spusťte ji jako správce). Spusťte následující příkaz:
Get-AzureRmVMExtension -ResourceGroupName myResourceGroup -VMName <VM Name> -Name <Extension Name>
Tady je ukázkový výstup:
PS C:\WINDOWS\system32> Get-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM5 -Name CustomScriptExtension
ResourceGroupName : myasegpuvm1
VMName : VM5
Name : CustomScriptExtension
Location : dbelocal
Etag : null
Publisher : Microsoft.Compute
ExtensionType : CustomScriptExtension
TypeHandlerVersion : 1.10
Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myasegpuvm1/providers/Microsoft.Compute/virtualMachines/VM5/extensions/CustomScriptExtension
PublicSettings : {
"commandToExecute": "md C:\\Users\\Public\\Documents\\test"
}
ProtectedSettings :
ProvisioningState : Creating
Statuses :
SubStatuses :
AutoUpgradeMinorVersion : True
ForceUpdateTag :
PS C:\WINDOWS\system32>
Poznámka:
Po dokončení nasazení se změní na ProvisioningState
Succeeded
.
Výstup spuštění rozšíření je protokolován do následujícího souboru: /var/lib/waagent/custom-script/download/0/
.
Odebrání rozšíření vlastních skriptů
Rozšíření vlastních skriptů odeberete pomocí následujícího příkazu:
Remove-AzureRmVMExtension -ResourceGroupName <Resource group name> -VMName <VM name> -Name <Extension name>
Tady je ukázkový výstup:
PS C:\WINDOWS\system32> Remove-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM6 -Name LinuxCustomScriptExtension
Virtual machine extension removal operation
This cmdlet will remove the specified virtual machine extension. Do you want to continue?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Yes
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK OK