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:Yes for Pro GPU SKU Azure Stack Edge Pro – GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure 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

Předpoklady

  1. 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ář.

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

    Screenshot of the Compute pane for an Azure Stack Edge device. Compute settings for Port 2 are highlighted.

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.jsonnasaď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/947b3cfd-7a1b-4a90-7cc5-e52caf221332/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 ProvisioningStateSucceeded.

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.jsonnasaď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/947b3cfd-7a1b-4a90-7cc5-e52caf221332/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 ProvisioningStateSucceeded.

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

Další kroky

Rutiny Azure Resource Manageru