Tutorial: Bereitstellen von VM-Erweiterungen mit ARM-Vorlagen

Hier erfahren Sie, wie Sie Azure-VM-Erweiterungen verwenden, um nach der Bereitstellung Konfigurations- und Automatisierungsaufgaben für virtuelle Azure-Computer auszuführen. Für die Verwendung mit virtuellen Azure-Computern stehen viele verschiedene VM-Erweiterungen zur Verfügung. In diesem Tutorial stellen Sie eine benutzerdefinierte Skripterweiterung über eine Azure Resource Manager-Vorlage (ARM-Vorlage) bereit, um ein PowerShell-Skript auf einem virtuellen Windows-Computer auszuführen. Das Skript installiert einen Webserver auf dem virtuellen Computer.

Dieses Tutorial enthält die folgenden Aufgaben:

  • Vorbereiten eines PowerShell-Skripts
  • Öffnen einer Schnellstartvorlage
  • Bearbeiten der Vorlage
  • Bereitstellen der Vorlage

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Voraussetzungen

Damit Sie die Anweisungen in diesem Artikel ausführen können, benötigen Sie Folgendes:

Vorbereiten eines PowerShell-Skripts

Sie können ein PowerShell-Inlineskript oder eine Skriptdatei verwenden. In diesem Tutorial wird die Verwendung einer Skriptdatei erläutert. Ein PowerShell-Skript mit folgendem Inhalt ist auf GitHub verfügbar:

Install-WindowsFeature -Name Web-Server -IncludeManagementTools

Wenn Sie die Datei an Ihrem eigenen Standort veröffentlichen möchten, aktualisieren Sie später in diesem Tutorial das Element fileUri in der Vorlage.

Öffnen einer Schnellstartvorlage

„Azure-Schnellstartvorlagen“ ist ein Repository für ARM-Vorlagen. Statt eine Vorlage von Grund auf neu zu erstellen, können Sie eine Beispielvorlage verwenden und diese anpassen. Die in diesem Tutorial verwendete Vorlage heißt Deploy a simple Windows VM (Bereitstellen eines einfachen virtuellen Windows-Computers).

  1. Wählen Sie in Visual Studio Code Datei>Datei öffnen aus.

  2. Fügen Sie im Feld Dateiname die folgende URL ein:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Wählen Sie Öffnen aus, um die Datei zu öffnen. Die Vorlage definiert fünf Ressourcen:

  4. Wählen Sie Datei>Speichern unter aus, um eine Kopie der Datei als azuredeploy.json auf dem lokalen Computer zu speichern.

Bearbeiten der Vorlage

Fügen Sie der vorhandenen Vorlage eine VM-Erweiterungsressource mit folgendem Inhalt hinzu:

{
  "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"
    }
  }
}

Weitere Informationen zu dieser Ressourcendefinition finden Sie in der Erweiterungsreferenz. Im Anschluss sind einige zentrale Elemente aufgeführt:

  • name Da es sich bei der Erweiterungsressource um eine untergeordnete Ressource des VM-Objekts handelt, muss der Name mit dem VM-Namenspräfix versehen werden. Weitere Informationen finden Sie unter Festlegen von Name und Typ für untergeordnete Ressourcen.
  • dependsOn Erstellen Sie die Erweiterungsressource nach der Erstellung des virtuellen Computers.
  • fileUris Die Speicherorte der Skriptdateien. Falls Sie sich gegen die Verwendung des angegebenen Speicherorts entscheiden, müssen Sie die Werte aktualisieren.
  • commandToExecute: Dieser Befehl ruft das Skript auf.

Wenn Sie ein Inlineskript verwenden, entfernen Sie fileUris, und aktualisieren Sie commandToExecute:

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)

Dieses Inlineskript aktualisiert auch den Inhalt der Datei iisstart.html.

Außerdem müssen Sie den HTTP-Port öffnen, um auf den Webserver zugreifen zu können.

  1. Suchen Sie in der Vorlage nach securityRules.

  2. Fügen Sie die folgende Regel neben default-allow-3389 hinzu.

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

Bereitstellen der Vorlage

Informationen zum Bereitstellungsverfahren finden Sie im Abschnitt Bereitstellen der Vorlage unter Tutorial: Erstellen von ARM-Vorlagen mit abhängigen Ressourcen. Es empfiehlt sich, ein generiertes Kennwort für das Administratorkonto des virtuellen Computers zu verwenden. Informationen finden Sie in diesem Artikel im Abschnitt Voraussetzungen.

Rufen Sie mithilfe des folgenden Befehls in Cloud Shell die öffentliche IP-Adresse des virtuellen Computers ab:

(Get-AzPublicIpAddress -ResourceGroupName $resourceGroupName).IpAddress

Fügen Sie die IP-Adresse in einen Webbrowser ein. Die Standardbegrüßungsseite für IIS (Internet Information Services, Internetinformationsdienste) wird geöffnet:

Screenshot der Willkommensseite der Internetinformationsdienste.

Bereinigen von Ressourcen

Wenn Sie die bereitgestellten Azure-Ressourcen nicht mehr benötigen, bereinigen Sie sie, indem Sie die Ressourcengruppe löschen.

  1. Klicken Sie im Azure-Portal im linken Bereich auf Ressourcengruppe.
  2. Geben Sie in das Feld Nach Name filtern den Namen der Ressourcengruppe ein.
  3. Klicken Sie auf den Namen der Ressourcengruppe. Sechs Ressourcen werden in der Ressourcengruppe angezeigt.
  4. Wählen Sie im oberen Menü Ressourcengruppe löschen aus.

Nächste Schritte

In diesem Tutorial haben Sie einen virtuellen Computer und eine VM-Erweiterung bereitgestellt. Die Erweiterung hat den IIS-Webserver auf dem virtuellen Computer installiert. Informationen zum Importieren einer BACPAC-Datei unter Verwendung der Azure SQL-Datenbank-Erweiterung finden Sie hier: