Freigeben über


Erstellen einer VM (klassisch) mit mehreren Netzwerkkarten mithilfe der klassischen Azure CLI

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: Installieren der Azure CLI

Um die Schritte in diesem Artikel auszuführen, installieren Sie die Azure CLI und melden Sie sich bei Azure an.

Hinweis

Wenn Sie über kein Azure-Konto verfügen, müssen Sie eines erstellen. Sie können sich hier für eine kostenlose Testversion registrieren. Um die Schritte ausführen zu können, muss außerdem jq oder ein anderes Tool oder eine Bibliothek für die JSON-Analyse installiert sein.

Bereitstellen der Back-End-VMs

Die Back-End-VMs sind auf die Erstellung der folgenden Ressourcen angewiesen:

  • 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.
  • NICs: Jeder virtuelle Computer hat zwei Netzwerkkarten, eine für den Datenbankzugriff und eine für die Verwaltung.
  • 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 Bash-Skript ungekürzt hierherunterladen. Führen Sie die nachstehenden Schritte aus, damit das Skript in Ihrer Umgebung funktionieren kann:

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

     location="useast2"
     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"
     image="0b11de9248dd4d87b18621318e037d37__RightImage-Ubuntu-14.04-x64-v14.2.1"
     avSetName="ASDB"
     vmSize="Standard_DS3"
     diskSize=127
     vmNamePrefix="DB"
     osDiskName="osdiskdb"
     dataDiskPrefix="db"
     dataDiskName="datadisk"
     ipAddressPrefix="192.168.2."
     username='adminuser'
     password='adminP@ssw0rd'
     numberOfVMs=2
    

Schritt 2: Erstellen der erforderlichen Ressourcen für die virtuellen Computer

  1. Erstellen Sie einen neuen Clouddienst für alle Back-End-VMs. Beachten Sie die Verwendung der $backendCSName-Variable für den Ressourcengruppennamen und $location für die Azure-Region.

     azure service create --serviceName $backendCSName \
     	--location $location
    
  2. Erstellen Sie ein Storage Premium-Konto für das Betriebssystem und die Datenträger, die von den virtuellen Computern verwendet werden sollen.

     azure storage account create $prmStorageAccountName \
     	--location $location \
     	--type PLRS
    

Schritt 3: Erstellen von virtuellen Computern mit mehreren Netzwerkschnittstellenkarten

  1. Erstellen Sie mithilfe einer Schleife mehrere virtuelle Computer auf Grundlage der numberOfVMs -Variablen.

     for ((suffixNumber=1;suffixNumber<=numberOfVMs;suffixNumber++));
     do
    
  2. Geben Sie für jeden virtuellen Computer den Namen und die IP-Adresse der beiden Netzwerkkarten an.

     nic1Name=$vmNamePrefix$suffixNumber-DA
     x=$((suffixNumber+3))
     ipAddress1=$ipAddressPrefix$x
    
     nic2Name=$vmNamePrefix$suffixNumber-RA
     x=$((suffixNumber+53))
     ipAddress2=$ipAddressPrefix$x
    
  3. Erstellen Sie den virtuellen Computer. Beachten Sie, dass der --nic-config-Parameter verwendet wird, der eine Liste aller Netzwerkkarten mit Namen, Subnetz und IP-Adresse enthält.

     azure vm create $backendCSName $image $username $password \
     	--connect $backendCSName \
     	--vm-name $vmNamePrefix$suffixNumber \
     	--vm-size $vmSize \
     	--availability-set $avSetName \
     	--blob-url $prmStorageAccountName.blob.core.windows.net/vhds/$osDiskName$suffixNumber.vhd \
     	--virtual-network-name $vnetName \
     	--subnet-names $backendSubnetName \
     	--nic-config $nic1Name:$backendSubnetName:$ipAddress1::,$nic2Name:$backendSubnetName:$ipAddress2::
    
  4. Erstellen Sie für jeden virtuellen Computer zwei Datenträger.

     azure vm disk attach-new $vmNamePrefix$suffixNumber \
     	$diskSize \
     	vhds/$dataDiskPrefix$suffixNumber$dataDiskName-1.vhd
    
     azure vm disk attach-new $vmNamePrefix$suffixNumber \
     	$diskSize \
     	vhds/$dataDiskPrefix$suffixNumber$dataDiskName-2.vhd
     done
    

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 im Bash -Terminal aus. Anfänglich wird die folgende Ausgabe angezeigt.

     info:    Executing command service create
     info:    Creating cloud service
     data:    Cloud service name IaaSStory-Backend
     info:    service create command OK
     info:    Executing command storage account create
     info:    Creating storage account
     info:    storage account create command OK
     info:    Executing command vm create
     info:    Looking up image 0b11de9248dd4d87b18621318e037d37__RightImage-Ubuntu-14.04-x64-v14.2.1
     info:    Looking up virtual network
     info:    Looking up cloud service
     info:    Getting cloud service properties
     info:    Looking up deployment
     info:    Creating VM
    
  2. Nach einigen Minuten wird die Ausführung beendet, und Sie sehen den im Folgenden gezeigten Rest der Ausgabe.

     info:    OK
     info:    vm create command OK
     info:    Executing command vm disk attach-new
     info:    Getting virtual machines
     info:    Adding Data-Disk
     info:    vm disk attach-new command OK
     info:    Executing command vm disk attach-new
     info:    Getting virtual machines
     info:    Adding Data-Disk
     info:    vm disk attach-new command OK
     info:    Executing command vm create
     info:    Looking up image 0b11de9248dd4d87b18621318e037d37__RightImage-Ubuntu-14.04-x64-v14.2.1
     info:    Looking up virtual network
     info:    Looking up cloud service
     info:    Getting cloud service properties
     info:    Looking up deployment
     info:    Creating VM
     info:    OK
     info:    vm create command OK
     info:    Executing command vm disk attach-new
     info:    Getting virtual machines
     info:    Adding Data-Disk
     info:    vm disk attach-new command OK
     info:    Executing command vm disk attach-new
     info:    Getting virtual machines
     info:    Adding Data-Disk
     info:    vm disk attach-new command OK
    

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 des Routings für sekundäre Netzwerkschnittstellen finden Sie unter Routing innerhalb des Betriebssystems eines virtuellen Computers mit mehreren Netzwerkschnittstellen.