Självstudie: Distribuera tillägg för virtuella datorer med ARM-mallar

Lär dig hur du använder Azure-tillägg för virtuell dator för att utföra konfigurations- och automatiseringsuppgifter efter distribution på virtuella Azure-datorer. Det finns många olika VM-tillägg för användning med virtuella Azure-datorer. I den här självstudien distribuerar du ett tillägg för anpassat skript från en Azure Resource Manager-mall (ARM-mall) för att köra ett PowerShell-skript på en virtuell Windows-dator. Skriptet installerar webbserver på den virtuella datorn.

Den här självstudien omfattar följande uppgifter:

  • Förbereda ett PowerShell-skript
  • Öppna en snabbstartsmall
  • Redigera mallen
  • Distribuera mallen

Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Förutsättningar

För att kunna följa stegen i den här artikeln behöver du:

  • Visual Studio Code med tillägget Resource Manager Tools. Se Snabbstart: Skapa ARM-mallar med Visual Studio Code.

  • För att förbättra säkerheten bör du använda ett genererat lösenord för den virtuella datorns administratörskonto. Du kan använda Azure Cloud Shell för att köra följande kommando i PowerShell eller Bash:

    openssl rand -base64 32
    

    Om du vill veta mer kör man openssl rand du för att öppna den manuella sidan.

    Azure Key Vault är utformat för att skydda kryptografiska nycklar och andra hemligheter. Mer information finns i Självstudie: Integrera Azure Key Vault i arm-malldistributionen. Vi rekommenderar även att du uppdaterar ditt lösenord var tredje månad.

Förbereda ett PowerShell-skript

Du kan använda ett infogat PowerShell-skript eller en skriptfil. Den här självstudien visar hur du använder en skriptfil. Ett PowerShell-skript med följande innehåll delas från GitHub:

Install-WindowsFeature -Name Web-Server -IncludeManagementTools

Om du väljer att publicera filen på din egen plats uppdaterar du elementet fileUri i mallen senare i självstudien.

Öppna en snabbstartsmall

Azure Snabbstartsmallar är en lagringsplats för ARM-mallar. I stället för att skapa en mall från början får du en exempelmall som du anpassar. Den mall som används i den här självstudien heter Deploy a simple Windows VM (Distribuera en enkel virtuell Windows-dator).

  1. I Visual Studio Code väljer du Arkiv>Öppna fil.

  2. I rutan Filnamn klistrar du in följande webbadress:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Välj Öppna för att öppna filen. Mallen definierar fem resurser:

  4. Spara en kopia av filen lokalt med namnet azuredeploy.json genom att välja Arkiv>Spara som.

Redigera mallen

Lägg till en resurs för tillägg för virtuell dator i den befintliga mallen med följande innehåll:

{
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "apiVersion": "2021-04-01",
  "name": "[format('{0}/{1}', variables('vmName'), 'InstallWebServer')]",
  "location": "[parameters('location')]",
  "dependsOn": [
    "[format('Microsoft.Compute/virtualMachines/{0}',variables('vmName'))]"
  ],
  "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.7",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "fileUris": [
        "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/tutorial-vm-extension/installWebServer.ps1"
      ],
      "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File installWebServer.ps1"
    }
  }
}

Mer information om den här resursdefinitionen finns i tilläggsreferensen. Här följer några viktiga element:

  • name: Eftersom tilläggsresursen är en underordnad resurs för det virtuella datorobjektet måste namnet ha prefixet för den virtuella datorns namn. Se Ange namn och typ för underordnade resurser.
  • dependsOn: Skapa tilläggsresursen när du har skapat den virtuella datorn.
  • fileUris: De platser där skriptfilerna lagras. Om du väljer att inte använda den angivna platsen måste du uppdatera värdena.
  • commandToExecute: Det här kommandot anropar skriptet.

Om du vill använda ett infogat skript tar du bort fileUrisoch uppdaterar commandToExecute till:

powershell.exe Install-WindowsFeature -name Web-Server -IncludeManagementTools && powershell.exe remove-item 'C:\\inetpub\\wwwroot\\iisstart.htm' && powershell.exe Add-Content -Path 'C:\\inetpub\\wwwroot\\iisstart.htm' -Value $('Hello World from ' + $env:computername)

Det här infogade skriptet uppdaterar även iisstart.html innehåll.

Du måste också öppna HTTP-porten så att du kan komma åt webbservern.

  1. Sök securityRules i mallen.

  2. Lägg till följande regel bredvid default-allow-3389.

    {
      "name": "AllowHTTPInBound",
      "properties": {
        "priority": 1010,
        "access": "Allow",
        "direction": "Inbound",
        "destinationPortRange": "80",
        "protocol": "Tcp",
        "sourcePortRange": "*",
        "sourceAddressPrefix": "*",
        "destinationAddressPrefix": "*"
      }
    }
    

Distribuera mallen

Distributionsproceduren finns i avsnittet Distribuera mallen iSjälvstudie: Skapa ARM-mallar med beroende resurser. Du bör använda ett genererat lösenord för den virtuella datorns administratörskonto. Läs mer i avsnittet om förutsättningar i den här artikeln.

Från Cloud Shell kör du följande kommando för att hämta den virtuella datorns offentliga IP-adress:

(Get-AzPublicIpAddress -ResourceGroupName $resourceGroupName).IpAddress

Klistra in IP-adressen i en webbläsare. Välkomstsidan för Internet Information Services (IIS) öppnas:

Skärmbild av välkomstsidan för Internet Information Services.

Rensa resurser

När du inte längre behöver Azure-resurserna du har distribuerat rensar du bort dem genom att ta bort resursgruppen.

  1. Välj Resursgrupp i den vänstra rutan i Azure Portal.
  2. Ange resursgruppens namn i fältet Filtrera efter namn.
  3. Välj resursgruppens namn. Sex resurser visas i resursgruppen.
  4. Välj Ta bort resursgrupp på menyn längst upp.

Nästa steg

I den här självstudien distribuerade du en virtuell dator och ett tillägg för virtuell dator. Tillägget installerade IIS-webbservern på den virtuella datorn. Du kan läsa om hur du använder Azure SQL Database-tillägget till att importera en BACPAC-fil här: