Erstellen eines virtuellen Computers (VM) (klassisch) mit mehreren Netzwerkkarten über PowerShell

Sie können virtuelle Computer (VMs) in Azure erstellen und jedem virtuellen Computer mehrere Netzwerkkarten (NICs) zuordnen. Mehrere NICs ermöglichen die Trennung von Datenverkehrstypen für alle NICs. Beispiel: Eine NIC kommuniziert mit dem Internet, während eine andere nur mit internen Ressourcen kommuniziert, für die keine Internetverbindung besteht. Die Möglichkeit, Netzwerkdatenverkehr auf mehreren NICs zu trennen, ist für zahlreiche virtuelle Netzwerkgeräte erforderlich, beispielsweise für Lösungen zur Anwendungsbereitstellung und WAN-Optimierung.

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 mit dem Resource Manager-Bereitstellungsmodell ausführen.

Szenario

In diesem Dokument wird eine Bereitstellung ausführlich erläutert, in der in einem bestimmten Szenario mehrere NICs in virtuellen Computern verwendet werden. In diesem Szenario wird eine IaaS-Workload mit zwei Ebenen in Azure gehostet. Jede Ebene wird in einem eigenen Subnetz in einem virtuellen Netzwerk (VNet) bereitgestellt. Die Front-End-Ebene besteht aus mehreren Webservern, die in einem Lastenausgleich für Hochverfügbarkeit gruppiert werden. Die Back-End-Ebene besteht aus mehreren Datenbankservern. Die Datenbankserver werden mit jeweils zwei Netzwerkkarten bereitgestellt: einer Karte für den Datenbankzugriff und einer anderen für die Verwaltung. Das Szenario umfasst auch Netzwerk-Sicherheitsgruppen (NSGs), die steuern, welcher Datenverkehr für jedes Subnetz und NIC in der Bereitstellung zulässig ist. In der folgenden Abbildung ist die grundlegende Architektur dieses Szenarios dargestellt:

Multi-NIC-Szenario

In den folgenden Schritten verwenden Sie eine Ressourcengruppe mit dem Namen IaaSStory für die Webserver und eine Ressourcengruppe mit dem Namen IaaSStory-BackEnd für die DB-Server.

Voraussetzungen

Bevor Sie die DB-Server erstellen können, müssen Sie die Ressourcengruppe IaaSStory mit den erforderlichen Ressourcen für dieses Szenario erstellen. Führen Sie die folgenden Schritte aus, um diese Ressourcen zu erstellen: Erstellen Sie ein virtuelles Netzwerk, indem Sie die Schritte im Artikel Erstellen eines virtuellen Netzwerks befolgen.

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 sind auf die Erstellung der folgenden Ressourcen angewiesen:

  • Back-End-Subnetz. Die Datenbankserver gehören zum Aufteilen des Datenverkehrs einem separaten Subnetz an. Das folgende Skript erwartet dieses Subnetz in einem Vnet namens WTestVnet.
  • Speicherkonto für Datenträger. Für eine bessere Leistung verwenden die Datenträger auf den Datenbankservern Solid State Drive (SSD)-Technik. Dafür ist ein Storage Premium-Konto erforderlich. Achten Sie darauf, dass der Azure-Speicherort für die Bereitstellung Storage Premium unterstützt.
  • Verfügbarkeitsgruppe. Alle Datenbankserver werden einer einzigen Verfügbarkeitsgruppe hinzugefügt, damit sichergestellt ist, dass mindestens ein virtueller Computer während der Wartung ausgeführt wird.

Schritt 1: Starten des Skripts

Sie können das verwendete PowerShell-Skript ungekürzt hierherunterladen. Gehen Sie folgendermaßen vor, um das Skript an Ihre Arbeitsumgebung anzupassen.

  1. Ändern Sie die Werte der nachstehenden Variablen basierend auf der im obigen Abschnitt Voraussetzungenbereitgestellten Ressourcengruppe.

     $location              = "West US"
     $vnetName              = "WTestVNet"
     $backendSubnetName     = "BackEnd"
    
  2. Ändern Sie die Werte der nachstehenden Variablen basierend auf den Werten, die Sie für die 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 die virtuellen Computer

Sie müssen einen neuen Clouddienst und ein Speicherkonto für die Datenträger für alle virtuellen Computer erstellen. Sie müssen zudem ein Abbild und ein lokales Administratorkonto für die virtuellen Computer angeben. Führen Sie die folgenden Schritte aus, um diese Ressourcen zu erstellen:

  1. Erstellen Sie einen neuen Clouddienst.

     New-AzureService -ServiceName $backendCSName -Location $location
    
  2. Erstellen Sie ein Premium-Speicherkonto.

     New-AzureStorageAccount -StorageAccountName $prmStorageAccountName `
     -Location $location -Type Premium_LRS
    
  3. Legen Sie das zuvor erstellte Speicherkonto als aktuelles Speicherkonto für Ihr Abonnement fest.

     $subscription = Get-AzureSubscription | where {$_.IsCurrent -eq $true}  
     Set-AzureSubscription -SubscriptionName $subscription.SubscriptionName `
     -CurrentStorageAccountName $prmStorageAccountName
    
  4. Wählen Sie ein Abbild 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
    
  5. 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 die gewünschte Anzahl an virtuellen Computern mithilfe einer Schleife erstellen. Erstellen Sie die erforderlichen Netzwerkkarten und virtuellen Computer innerhalb der Schleife. Führen Sie zum Erstellen der Netzwerkkarten und virtuellen Computer die folgenden Schritte aus.

  1. Starten Sie eine for-Schleife, um die Befehle zum Erstellen eines virtuellen Computers und zweier Netzwerkkarten auf Grundlage der $numberOfVMs-Variablen so oft wie erforderlich zu wiederholen.

     for ($suffixNumber = 1; $suffixNumber -le $numberOfVMs; $suffixNumber++){
    
  2. Erstellen Sie ein VMConfig-Objekt, mit dem Abbild, Größe und Verfügbarkeitsgruppe für den virtuellen Computer festgelegt werden.

     $vmName = $vmNamePrefix + $suffixNumber
     $vmConfig = New-AzureVMConfig -Name $vmName `
     	-ImageName $image `
     	-InstanceSize $vmSize `
     	-AvailabilitySetName $avSetName
    
  3. Bereitstellen des virtuellen Computers als Windows-VM.

     Add-AzureProvisioningConfig -VM $vmConfig -Windows `
     	-AdminUsername $cred.UserName `
     	-Password $cred.GetNetworkCredential().Password
    
  4. Legen Sie die Standard-Netzwerkkarte fest, und weisen Sie ihr eine statische IP-Adresse zu.

     Set-AzureSubnet			-SubnetNames $backendSubnetName -VM $vmConfig
     Set-AzureStaticVNetIP 	-IPAddress ($ipAddressPrefix+$suffixNumber+3) -VM $vmConfig
    
  5. Fügen Sie für jeden virtuellen Computer eine zweite Netzwerkkarte hinzu.

     Add-AzureNetworkInterfaceConfig -Name ("RemoteAccessNIC"+$suffixNumber) `
     -SubnetName $backendSubnetName `
     -StaticVNetIPAddress ($ipAddressPrefix+(53+$suffixNumber)) `
     -VM $vmConfig
    
  6. Erstellen Sie für jeden virtuellen Computer zwei Datenträger.

     $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
    
  7. Erstellen Sie die virtuellen Computer, und beenden Sie die Schleife.

     New-AzureVM -VM $vmConfig `
     -ServiceName $backendCSName `
     -Location $location `
     -VNetName $vnetName
     }
    

Schritt 4: Ausführen des Skripts

Führen Sie das Skript aus, nachdem sie es heruntergeladen und angepasst haben, um die Back-End-VMs mit mehreren Netzwerkkarten zu erstellen.

  1. Speichern Sie Ihr Skript, und führen Sie es an der PowerShell-Eingabeaufforderung oder in PowerShell ISE aus. Anfänglich wird die folgende Ausgabe 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'.
    
  2. Tragen Sie bei der Aufforderung die Anmeldeinformationen ein, 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 an den virtuellen Computer angefügt 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 für sekundäre Netzwerkschnittstellen finden Sie in den folgenden Artikeln: