Distribuera anpassat skripttillägg på virtuella datorer som körs på din Azure Stack Edge Pro-enhet
GÄLLER FÖR: Azure Stack Edge Pro – GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
Tillägget för anpassat skript laddar ned och kör skript eller kommandon på virtuella datorer som körs på dina Azure Stack Edge Pro-enheter. Den här artikeln beskriver hur du installerar och kör tillägget för anpassat skript med hjälp av en Azure Resource Manager-mall.
Om tillägg för anpassat skript
Tillägget för anpassat skript är användbart för konfiguration efter distribution, programvaruinstallation eller någon annan konfigurations-/hanteringsuppgift. Du kan ladda ned skript från Azure Storage eller någon annan tillgänglig Internetplats, eller så kan du ange skript eller kommandon till tilläggskörningen.
Tillägget för anpassade skript integreras med Azure Resource Manager-mallar. Du kan också köra den med hjälp av Azure CLI, PowerShell eller REST-API:et för Virtuella Azure-datorer.
OS för anpassat skripttillägg
Operativsystem som stöds för anpassat skripttillägg i Windows
Det anpassade skripttillägget för Windows körs på följande operativsystem. Andra versioner kan fungera men har inte testats internt på virtuella datorer som körs på Azure Stack Edge Pro-enheter.
Distribution | Version |
---|---|
Windows Server 2019 | Kärna |
Windows Server 2016 | Kärna |
Operativsystem som stöds för anpassat skripttillägg i Linux
Tillägget för anpassat skript för Linux körs på följande operativsystem. Andra versioner kan fungera men har inte testats internt på virtuella datorer som körs på Azure Stack Edge Pro-enheter.
Distribution | Version |
---|---|
Linux Ubuntu: | 18.04 LTS |
Linux: Red Hat Enterprise Linux | 7.4, 7.5, 7.7 |
Förutsättningar
Ladda ned de virtuella datormallarna och parametrarna till klientdatorn. Packa upp nedladdningen till en katalog som du använder som arbetskatalog.
Du bör ha en virtuell dator skapad och distribuerad på enheten. Om du vill skapa virtuella datorer följer du alla steg i Distribuera virtuell dator på din Azure Stack Edge Pro med hjälp av mallar.
Om du behöver ladda ned ett skript, till exempel från GitHub eller Azure Storage externt, aktiverar du den port som är ansluten till Internet för beräkning när du konfigurerar beräkningsnätverket. På så sätt kan du ladda ned skriptet.
I följande exempel var port 2 ansluten till Internet och användes för att aktivera beräkningsnätverket. Om du har upptäckt att Kubernetes inte behövs i det tidigare steget kan du hoppa över Kubernetes-nodens IP-adress och externa tjänst-IP-tilldelning.
Installera tillägg för anpassat skript
Beroende på operativsystemet för den virtuella datorn kan du installera tillägget för anpassat skript för Windows eller Linux.
Anpassat skripttillägg för Windows
Om du vill distribuera anpassat skripttillägg för Windows för en virtuell dator som körs på enheten redigerar addCSExtWindowsVM.parameters.json
du parameterfilen och distribuerar sedan mallen addCSextensiontoVM.json
.
Redigera parameterfil
Filen addCSExtWindowsVM.parameters.json
tar följande parametrar:
{
"$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>"
}
}
}
}
Ange namnet på den virtuella datorn, namnet på tillägget och kommandot som du vill köra.
Här är exempelparameterfilen som användes i den här artikeln.
{
"$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"
}
}
}
}
Distribuera mallen
Distribuera mallen addCSextensiontoVM.json
. Den här mallen distribuerar tillägget till en befintlig virtuell dator. Kör följande kommando:
$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>"
Kommentar
Tilläggsdistributionen är ett tidskrävande jobb och tar cirka 10 minuter att slutföra.
Här är ett exempel på utdata:
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>
Spåra distribution
Kör följande kommando för att kontrollera distributionstillståndet för tillägg för en viss virtuell dator:
Get-AzureRmVMExtension -ResourceGroupName <Name of resource group> -VMName <Name of VM> -Name <Name of the extension>
Här är ett exempel på utdata:
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>
Kommentar
När distributionen är klar ProvisioningState
ändras till Succeeded
.
Tilläggsutdata loggas till filer som finns under följande mapp på den virtuella måldatorn.
C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension
De angivna filerna laddas ned till följande mapp på den virtuella måldatorn.
C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.*\Downloads\<n>
där n är ett decimaltal som kan ändras mellan körningar av tillägget. Värdet 1.* matchar det faktiska aktuella typeHandlerVersion
värdet för tillägget. Den faktiska katalogen i den här instansen var C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.9\Downloads\0
till exempel .
I det här fallet var kommandot som ska köras för det anpassade tillägget: md C:\\Users\\Public\\Documents\\test
. När tillägget har installerats kan du kontrollera att katalogen skapades på den virtuella datorn på den angivna sökvägen i kommandot.
Anpassat skripttillägg för Linux
Om du vill distribuera anpassat skripttillägg för Windows för en virtuell dator som körs på enheten redigerar addCSExtLinuxVM.parameters.json
du parameterfilen och distribuerar sedan mallen addCSExtensiontoVM.json
.
Redigera parameterfil
Filen addCSExtLinuxVM.parameters.json
tar följande parametrar:
{
"$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>"
}
}
}
}
Ange namnet på den virtuella datorn, namnet på tillägget och kommandot som du vill köra.
Här är en exempelparameterfil som användes i den här artikeln:
$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>"
Kommentar
Tilläggsdistributionen är ett tidskrävande jobb och tar cirka 10 minuter att slutföra.
Här är ett exempel på utdata:
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>
Har commandToExecute
angetts för att skapa en fil file2.txt
i /home/Administrator
katalogen och innehållet i filen är some text
. I det här fallet kan du kontrollera att filen skapades i den angivna sökvägen.
Administrator@VM6:~$ dir
file2.txt
Administrator@VM6:~$ cat file2.txt
some text
Administrator@VM6:
Spåra distributionsstatus
Malldistribution är ett tidskrävande jobb. Om du vill kontrollera distributionstillståndet för tillägg för en viss virtuell dator öppnar du en annan PowerShell-session (körs som administratör). Kör följande kommando:
Get-AzureRmVMExtension -ResourceGroupName myResourceGroup -VMName <VM Name> -Name <Extension Name>
Här är ett exempel på utdata:
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>
Kommentar
När distributionen är klar ProvisioningState
ändras till Succeeded
.
Utdata för tilläggskörning loggas till följande fil: /var/lib/waagent/custom-script/download/0/
.
Ta bort anpassat skripttillägg
Om du vill ta bort tillägget för anpassat skript använder du följande kommando:
Remove-AzureRmVMExtension -ResourceGroupName <Resource group name> -VMName <VM name> -Name <Extension name>
Här är ett exempel på utdata:
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