Udostępnij za pośrednictwem


Tworzenie maszyny wirtualnej (klasycznej) z wieloma kartami sieciowymi przy użyciu programu PowerShell

Maszyny wirtualne można tworzyć na platformie Azure i dołączać wiele interfejsów sieciowych do każdej maszyny wirtualnej. Wiele kart sieciowych umożliwia rozdzielenie typów ruchu między kartami sieciowymi. Na przykład jedna karta sieciowa może komunikować się z Internetem, podczas gdy inna komunikuje się tylko z zasobami wewnętrznymi, które nie są połączone z Internetem. Możliwość oddzielenia ruchu sieciowego między wieloma kartami sieciowymi jest wymagana w przypadku wielu wirtualnych urządzeń sieciowych, takich jak dostarczanie aplikacji i rozwiązania optymalizacji sieci WAN.

Ważne

Platforma Azure ma dwa różne modele wdrażania związane z tworzeniem zasobów i pracą z nimi: Resource Manager i model klasyczny. Ten artykuł dotyczy klasycznego modelu wdrożenia. Firma Microsoft zaleca, aby w przypadku większości nowych wdrożeń korzystać z modelu opartego na programie Resource Manager. Dowiedz się, jak wykonać te kroki przy użyciu modelu wdrażania Resource Manager.

Scenariusz

W tym dokumencie przedstawiono wdrożenie, które korzysta z wielu kart sieciowych na maszynach wirtualnych w określonym scenariuszu. W tym scenariuszu masz dwuwarstwowe obciążenie IaaS hostowane na platformie Azure. Każda warstwa jest wdrażana we własnej podsieci w sieci wirtualnej. Warstwa frontonu składa się z kilku serwerów internetowych pogrupowanych razem w zestawie modułu równoważenia obciążenia w celu zapewnienia wysokiej dostępności. Warstwa zaplecza składa się z kilku serwerów baz danych. Serwery baz danych są wdrażane z dwiema kartami sieciowymi, po jednym na potrzeby dostępu do bazy danych, a drugą do zarządzania. Scenariusz obejmuje również sieciowe grupy zabezpieczeń (NSG) do kontrolowania ruchu dozwolonego dla każdej podsieci i karty sieciowej we wdrożeniu. Na poniższej ilustracji przedstawiono podstawową architekturę tego scenariusza:

Scenariusz z wieloma sieciami sieciowych

W poniższych krokach użyto grupy zasobów o nazwie IaaSStory dla serwerów sieci WEB i grupy zasobów o nazwie IaaSStory-BackEnd dla serwerów BAZY danych.

Wymagania wstępne

Przed utworzeniem serwerów bazy danych należy utworzyć grupę zasobów IaaSStory ze wszystkimi niezbędnymi zasobami w tym scenariuszu. Aby utworzyć te zasoby, wykonaj poniższe kroki. Utwórz sieć wirtualną, wykonując kroki opisane w artykule Tworzenie sieci wirtualnej .

Wymagania wstępne: Instalacja modułu Azure PowerShell

Aby wykonać kroki opisane w tym artykule, musisz zainstalować i skonfigurować moduł Azure PowerShell. Pamiętaj, aby wykonać wszystkie instrukcje. Po zakończeniu instalacji zaloguj się do platformy Azure i wybierz swoją subskrypcję.

Uwaga

Do wykonania tych kroków jest potrzebne konto platformy Azure. Jeśli nie masz konta platformy Azure, możesz utworzyć konto bezpłatnej wersji próbnej.

Tworzenie maszyn wirtualnych zaplecza

Maszyny wirtualne zaplecza zależą od utworzenia następujących zasobów:

  • Podsieć zaplecza. Serwery baz danych będą częścią oddzielnej podsieci, aby rozdzielić ruch. Poniższy skrypt oczekuje, że ta podsieć będzie istnieć w sieci wirtualnej o nazwie WTestVnet.
  • Konto magazynu dla dysków danych. Aby uzyskać lepszą wydajność, dyski danych na serwerach baz danych będą używać technologii dysków półprzewodnikowych (SSD), która wymaga konta magazynu w warstwie Premium. Upewnij się, że lokalizacja platformy Azure wdrożona w celu obsługi magazynu w warstwie Premium.
  • Zestaw dostępności. Wszystkie serwery baz danych zostaną dodane do jednego zestawu dostępności, aby upewnić się, że co najmniej jedna z maszyn wirtualnych jest uruchomiona podczas konserwacji.

Krok 1. Uruchamianie skryptu

Pełny skrypt programu PowerShell można pobrać tutaj. Wykonaj poniższe kroki, aby zmienić skrypt tak, aby działał w twoim środowisku.

  1. Zmień wartości poniższych zmiennych na podstawie istniejącej grupy zasobów wdrożonej powyżej w sekcji Wymagania wstępne.

     $location              = "West US"
     $vnetName              = "WTestVNet"
     $backendSubnetName     = "BackEnd"
    
  2. Zmień wartości poniższych zmiennych na podstawie wartości, których chcesz użyć do wdrożenia zaplecza.

     $backendCSName         = "IaaSStory-Backend"
     $prmStorageAccountName = "iaasstoryprmstorage"
     $avSetName             = "ASDB"
     $vmSize                = "Standard_DS3"
     $diskSize              = 127
     $vmNamePrefix          = "DB"
     $dataDiskSuffix        = "datadisk"
     $ipAddressPrefix       = "192.168.2."
     $numberOfVMs           = 2
    

Krok 2. Tworzenie niezbędnych zasobów dla maszyn wirtualnych

Należy utworzyć nową usługę w chmurze i konto magazynu dla dysków danych dla wszystkich maszyn wirtualnych. Należy również określić obraz i konto administratora lokalnego dla maszyn wirtualnych. Aby utworzyć te zasoby, wykonaj następujące kroki:

  1. Utwórz nową usługę w chmurze.

     New-AzureService -ServiceName $backendCSName -Location $location
    
  2. Utwórz nowe konto magazynu w warstwie Premium.

     New-AzureStorageAccount -StorageAccountName $prmStorageAccountName `
     -Location $location -Type Premium_LRS
    
  3. Ustaw konto magazynu utworzone powyżej jako bieżące konto magazynu dla subskrypcji.

     $subscription = Get-AzureSubscription | where {$_.IsCurrent -eq $true}  
     Set-AzureSubscription -SubscriptionName $subscription.SubscriptionName `
     -CurrentStorageAccountName $prmStorageAccountName
    
  4. Wybierz obraz maszyny wirtualnej.

     $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. Ustaw poświadczenia konta administratora lokalnego.

     $cred = Get-Credential -Message "Enter username and password for local admin account"
    

Krok 3. Tworzenie maszyn wirtualnych

Musisz użyć pętli, aby utworzyć dowolną liczbę maszyn wirtualnych i utworzyć niezbędne karty sieciowe i maszyny wirtualne w pętli. Aby utworzyć karty sieciowe i maszyny wirtualne, wykonaj następujące kroki.

  1. Uruchom pętlę for , aby powtórzyć polecenia, aby utworzyć maszynę wirtualną i dwie karty sieciowe tyle razy, ile to konieczne, na podstawie wartości zmiennej $numberOfVMs .

     for ($suffixNumber = 1; $suffixNumber -le $numberOfVMs; $suffixNumber++){
    
  2. VMConfig Utwórz obiekt określający obraz, rozmiar i zestaw dostępności dla maszyny wirtualnej.

     $vmName = $vmNamePrefix + $suffixNumber
     $vmConfig = New-AzureVMConfig -Name $vmName `
     	-ImageName $image `
     	-InstanceSize $vmSize `
     	-AvailabilitySetName $avSetName
    
  3. Aprowizuj maszynę wirtualną jako maszynę wirtualną z systemem Windows.

     Add-AzureProvisioningConfig -VM $vmConfig -Windows `
     	-AdminUsername $cred.UserName `
     	-Password $cred.GetNetworkCredential().Password
    
  4. Ustaw domyślną kartę sieciową i przypisz jej statyczny adres IP.

     Set-AzureSubnet			-SubnetNames $backendSubnetName -VM $vmConfig
     Set-AzureStaticVNetIP 	-IPAddress ($ipAddressPrefix+$suffixNumber+3) -VM $vmConfig
    
  5. Dodaj drugą kartę sieciową dla każdej maszyny wirtualnej.

     Add-AzureNetworkInterfaceConfig -Name ("RemoteAccessNIC"+$suffixNumber) `
     -SubnetName $backendSubnetName `
     -StaticVNetIPAddress ($ipAddressPrefix+(53+$suffixNumber)) `
     -VM $vmConfig
    
  6. Utwórz do dysków danych dla każdej maszyny wirtualnej.

     $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. Utwórz każdą maszynę wirtualną i zakończ pętlę.

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

Krok 4. Uruchamianie skryptu

Po pobraniu i zmianie skryptu w zależności od potrzeb uruchom skrypt, aby utworzyć maszyny wirtualne bazy danych zaplecza z wieloma kartami sieciowymi.

  1. Zapisz skrypt i uruchom go w wierszu polecenia programu PowerShell lub środowisku PowerShell ISE. Zostaną wyświetlone początkowe dane wyjściowe, jak pokazano poniżej.

     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. Wypełnij informacje wymagane w wierszu polecenia poświadczeń i kliknij przycisk OK. Zwracane są następujące dane wyjściowe.

     New-AzureVM             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
     New-AzureVM             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
    

Krok 5. Konfigurowanie routingu w systemie operacyjnym maszyny wirtualnej

Usługa Azure DHCP przypisuje bramę domyślną do pierwszego (podstawowego) interfejsu sieciowego dołączonego do maszyny wirtualnej. Platforma Azure domyślnie nie przypisuje domyślnej bramy do dodatkowych interfejsów sieciowych dołączonych do maszyny wirtualnej. Dlatego domyślnie nie można komunikować się z zasobami poza podsiecią, w której znajduje się dodatkowy interfejs sieciowy. Dodatkowe interfejsy sieciowe mogą jednak komunikować się z zasobami poza podsiecią. Aby skonfigurować routing dla pomocniczych interfejsów sieciowych, zobacz następujące artykuły: