Erstellen einer VM (klassisch) mit mehreren NICs mithilfe von PowerShell
Sie können virtuelle Computer (VMs) in Azure erstellen und mehrere Netzwerkschnittstellen (NICs) an jeden Ihrer virtuellen Computer anfügen. Mehrere NICs ermöglichen die Trennung von Datenverkehrstypen über NICs hinweg. Beispielsweise kann eine NIC mit dem Internet kommunizieren, während eine andere nur mit internen Ressourcen kommuniziert, die nicht mit dem Internet verbunden sind. Die Möglichkeit, den Netzwerkdatenverkehr über mehrere NICs hinweg zu trennen, ist für viele virtuelle Netzwerkgeräte erforderlich, z. B. Anwendungsbereitstellung und WAN-Optimierungslösungen.
Wichtig
Azure verfügt über zwei verschiedene Bereitstellungsmodelle für das Erstellen und Verwenden von Ressourcen: das Resource Manager-Modell und das klassische Bereitstellungsmodell. Dieser Artikel befasst sich mit der Verwendung des klassischen Bereitstellungsmodells. Microsoft empfiehlt für die meisten neuen Bereitstellungen die Verwendung des Ressourcen-Manager-Modells. Erfahren Sie, wie Sie diese Schritte mithilfe des Ressourcen-Manager-Bereitstellungsmodells ausführen.
Szenario
Dieses Dokument führt durch eine Bereitstellung, die mehrere NICs in VMs in einem bestimmten Szenario verwendet. In diesem Szenario haben Sie eine zweistufige IaaS-Workload, die in Azure gehostet wird. Jede Ebene wird in einem eigenen Subnetz in einem virtuellen Netzwerk (VNet) bereitgestellt. Die Frontend-Ebene besteht aus mehreren Webservern, die in einem Load-Balancer-Setup gruppiert sind, um eine hohe Verfügbarkeit zu gewährleisten. Die Back-End-Ebene besteht aus mehreren Datenbankservern. Die Datenbankserver werden mit zwei NICs bereitgestellt, eines für den Datenbankzugriff, die andere für die Verwaltung. Das Szenario umfasst auch Netzwerksicherheitsgruppen (Network Security Groups, NSGs), um zu steuern, welcher Datenverkehr für jedes Subnetz zulässig ist, und NIC in der Bereitstellung. Die folgende Abbildung zeigt die grundlegende Architektur dieses Szenarios:
In den folgenden Schritten wird eine Ressourcengruppe namens "IaaSStory " für die WEBSERVER und eine Ressourcengruppe namens "IaaSStory-BackEnd" für die DB-Server verwendet.
Voraussetzungen
Bevor Sie die DB-Server erstellen können, müssen Sie die IaaSStory-Ressourcengruppe mit allen erforderlichen Ressourcen für dieses Szenario erstellen. Führen Sie zum Erstellen dieser Ressourcen die folgenden Schritte aus. Erstellen Sie ein virtuelles Netzwerk, indem Sie die Schritte im Artikel " Erstellen eines virtuellen Netzwerks" ausführen.
Voraussetzung: Das Azure PowerShell-Modul muss installiert sein.
Um die Schritte in diesem Artikel ausführen zu können, müssen Sie das Azure PowerShell-Modul installieren und konfigurieren. Führen Sie unbedingt alle Anweisungen vollständig aus. Nach dem Abschluss der Installation melden Sie sich bei Azure an und wählen Ihr Abonnement aus.
Hinweis
Sie benötigen ein Azure-Konto, um diese Schritte durchführen zu können. Wenn Sie nicht über ein Azure-Konto verfügen, können Sie sich für eine kostenlose Testversionregistrieren.
Erstellen der Back-End-VMs
Die Back-End-VMs hängen von der Erstellung der folgenden Ressourcen ab:
- Back-End-Subnetz. Die Datenbankserver sind Teil eines separaten Subnetzes, um Datenverkehr zu trennen. Das folgende Skript erwartet, dass dieses Subnetz in einem vnet mit dem Namen WTestVnet vorhanden ist.
- Speicherkonto für Datenträger. Um eine bessere Leistung zu erzielen, verwenden die Datenträger auf den Datenbankservern die SSD-Technologie (Solid State Drive), die ein Premium-Speicherkonto erfordert. Stellen Sie sicher, dass der Azure-Standort, an dem Sie bereitstellen, Premiumspeicher unterstützt.
- Verfügbarkeits-Set. Alle Datenbankserver werden einem einzigen Verfügbarkeitssatz hinzugefügt, um sicherzustellen, dass mindestens eine der virtuellen Computer während der Wartung ausgeführt wird.
Schritt 1 – Starten Des Skripts
Sie können das hier verwendete vollständige PowerShell-Skript herunterladen. Führen Sie die folgenden Schritte aus, um das Skript so zu ändern, dass es in Ihrer Umgebung funktioniert.
Ändern Sie die Werte der unten stehenden Variablen basierend auf der oben in den Voraussetzungen bereitgestellten vorhandenen Ressourcengruppe.
$location = "West US" $vnetName = "WTestVNet" $backendSubnetName = "BackEnd"
Ändern Sie die Werte der folgenden Variablen basierend auf den Werten, die Sie für Ihre Back-End-Bereitstellung verwenden möchten.
$backendCSName = "IaaSStory-Backend" $prmStorageAccountName = "iaasstoryprmstorage" $avSetName = "ASDB" $vmSize = "Standard_DS3" $diskSize = 127 $vmNamePrefix = "DB" $dataDiskSuffix = "datadisk" $ipAddressPrefix = "192.168.2." $numberOfVMs = 2
Schritt 2 : Erstellen der erforderlichen Ressourcen für Ihre virtuellen Computer
Sie müssen einen neuen Clouddienst und ein Speicherkonto für die Datenträger für alle virtuellen Computer erstellen. Außerdem müssen Sie ein Image und ein lokales Administratorkonto für die virtuellen Computer angeben. Führen Sie die folgenden Schritte aus, um diese Ressourcen zu erstellen:
Erstellen Sie einen neuen Clouddienst.
New-AzureService -ServiceName $backendCSName -Location $location
Erstellen Sie ein neues Premium-Speicherkonto.
New-AzureStorageAccount -StorageAccountName $prmStorageAccountName ` -Location $location -Type Premium_LRS
Legen Sie das oben erstellte Speicherkonto als aktuelles Speicherkonto für Ihr Abonnement fest.
$subscription = Get-AzureSubscription | where {$_.IsCurrent -eq $true} Set-AzureSubscription -SubscriptionName $subscription.SubscriptionName ` -CurrentStorageAccountName $prmStorageAccountName
Wählen Sie ein Image für den virtuellen Computer aus.
$image = Get-AzureVMImage ` | where{$_.ImageFamily -eq "SQL Server 2014 RTM Web on Windows Server 2012 R2"} ` | sort PublishedDate -Descending ` | select -ExpandProperty ImageName -First 1
Legen Sie die Anmeldeinformationen des lokalen Administratorkontos fest.
$cred = Get-Credential -Message "Enter username and password for local admin account"
Schritt 3 : Erstellen von virtuellen Computern
Sie müssen eine Schleife verwenden, um beliebig viele VMs zu erstellen und die erforderlichen NICs und VMs innerhalb der Schleife zu erstellen. Führen Sie die folgenden Schritte aus, um die NICs und VMs zu erstellen.
Starten Sie eine
for
Schleife, um die Befehle zu wiederholen, um eine VM und zwei NICs so oft wie nötig zu erstellen, basierend auf dem Wert der$numberOfVMs
Variablen.for ($suffixNumber = 1; $suffixNumber -le $numberOfVMs; $suffixNumber++){
Erstellen Sie ein
VMConfig
Objekt, das das Image, die Größe und die Verfügbarkeit für den virtuellen Computer angibt.$vmName = $vmNamePrefix + $suffixNumber $vmConfig = New-AzureVMConfig -Name $vmName ` -ImageName $image ` -InstanceSize $vmSize ` -AvailabilitySetName $avSetName
Stellen Sie den virtuellen Computer als Windows-VM bereit.
Add-AzureProvisioningConfig -VM $vmConfig -Windows ` -AdminUsername $cred.UserName ` -Password $cred.GetNetworkCredential().Password
Legen Sie die Standard-NIC fest, und weisen Sie sie einer statischen IP-Adresse zu.
Set-AzureSubnet -SubnetNames $backendSubnetName -VM $vmConfig Set-AzureStaticVNetIP -IPAddress ($ipAddressPrefix+$suffixNumber+3) -VM $vmConfig
Fügen Sie eine zweite NIC für jeden virtuellen Computer hinzu.
Add-AzureNetworkInterfaceConfig -Name ("RemoteAccessNIC"+$suffixNumber) ` -SubnetName $backendSubnetName ` -StaticVNetIPAddress ($ipAddressPrefix+(53+$suffixNumber)) ` -VM $vmConfig
Erstellen Sie zwei Datenträger für jede virtuelle Maschine.
$dataDisk1Name = $vmName + "-" + $dataDiskSuffix + "-1" Add-AzureDataDisk -CreateNew -VM $vmConfig ` -DiskSizeInGB $diskSize ` -DiskLabel $dataDisk1Name ` -LUN 0 $dataDisk2Name = $vmName + "-" + $dataDiskSuffix + "-2" Add-AzureDataDisk -CreateNew -VM $vmConfig ` -DiskSizeInGB $diskSize ` -DiskLabel $dataDisk2Name ` -LUN 1
Erstellen Sie jeden virtuellen Computer, und beenden Sie die Schleife.
New-AzureVM -VM $vmConfig ` -ServiceName $backendCSName ` -Location $location ` -VNetName $vnetName }
Schritt 4 : Ausführen des Skripts
Nachdem Sie das Skript nun basierend auf Ihren Anforderungen heruntergeladen und geändert haben, führen Sie das Skript aus, um die Back-End-Datenbank-VMs mit mehreren NICs zu erstellen.
Speichern Sie Ihr Skript, und führen Sie es über die PowerShell-Eingabeaufforderung oder powerShell ISE aus. Die anfängliche Ausgabe wird unten angezeigt.
OperationDescription OperationId OperationStatus New-AzureService xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded New-AzureStorageAccount xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded WARNING: No deployment found in service: 'IaaSStory-Backend'.
Füllen Sie die erforderlichen Informationen in der Anmeldeinformationenaufforderung aus, und klicken Sie auf "OK". Die folgende Ausgabe wird zurückgegeben.
New-AzureVM xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded New-AzureVM xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
Schritt 5: Konfigurieren des Routings im Betriebssystem des virtuellen Computers
Azure DHCP weist der ersten (primären) Netzwerkschnittstelle, die mit dem virtuellen Computer verbunden ist, ein Standardgateway zu. Azure weist zusätzlichen (sekundären) Netzwerkschnittstellen, die an einen virtuellen Computer angefügt sind, kein Standardgateway zu. Daher können Sie standardmäßig nicht mit Ressourcen außerhalb des Subnetzes kommunizieren, in dem sich eine sekundäre Netzwerkschnittstelle befindet. Sekundäre Netzwerkschnittstellen können jedoch mit Ressourcen außerhalb ihres Subnetzes kommunizieren. Informationen zum Konfigurieren des Routings für sekundäre Netzwerkschnittstellen finden Sie in den folgenden Artikeln: