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:
Visual Studio Code mit der Erweiterung „Azure Resource Manager-Tools“. Weitere Informationen finden Sie unter Schnellstart: Erstellen von ARM-Vorlagen mit Visual Studio Code.
Verwenden Sie aus Sicherheitsgründen ein generiertes Kennwort für das Administratorkonto des virtuellen Computers. Sie können die Azure Cloud Shell verwenden, um den folgenden Befehl in PowerShell oder der Bash auszuführen:
openssl rand -base64 32
Um mehr zu erfahren, führen Sie
man openssl rand
aus, um die Handbuchseite zu öffnen.Azure Key Vault dient zum Schützen von kryptografischen Schlüsseln und anderen Geheimnissen. Weitere Informationen finden Sie im Tutorial: Integrieren von Azure Key Vault in Ihre Bereitstellung einer ARM-Vorlage. Wir empfehlen Ihnen auch, Ihr Kennwort alle drei Monate zu aktualisieren.
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).
Wählen Sie in Visual Studio Code Datei>Datei öffnen aus.
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
Wählen Sie Öffnen aus, um die Datei zu öffnen. Die Vorlage definiert fünf Ressourcen:
Microsoft.Compute/virtualMachines.
Bevor Sie die Vorlage anpassen, sollten Sie sich zunächst grundlegend damit vertraut machen.
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.
Suchen Sie in der Vorlage nach
securityRules
.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:
Bereinigen von Ressourcen
Wenn Sie die bereitgestellten Azure-Ressourcen nicht mehr benötigen, bereinigen Sie sie, indem Sie die Ressourcengruppe löschen.
- Klicken Sie im Azure-Portal im linken Bereich auf Ressourcengruppe.
- Geben Sie in das Feld Nach Name filtern den Namen der Ressourcengruppe ein.
- Klicken Sie auf den Namen der Ressourcengruppe. Sechs Ressourcen werden in der Ressourcengruppe angezeigt.
- 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: