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:
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.
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"
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:
Utwórz nową usługę w chmurze.
New-AzureService -ServiceName $backendCSName -Location $location
Utwórz nowe konto magazynu w warstwie Premium.
New-AzureStorageAccount -StorageAccountName $prmStorageAccountName ` -Location $location -Type Premium_LRS
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
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
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.
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++){
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
Aprowizuj maszynę wirtualną jako maszynę wirtualną z systemem Windows.
Add-AzureProvisioningConfig -VM $vmConfig -Windows ` -AdminUsername $cred.UserName ` -Password $cred.GetNetworkCredential().Password
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
Dodaj drugą kartę sieciową dla każdej maszyny wirtualnej.
Add-AzureNetworkInterfaceConfig -Name ("RemoteAccessNIC"+$suffixNumber) ` -SubnetName $backendSubnetName ` -StaticVNetIPAddress ($ipAddressPrefix+(53+$suffixNumber)) ` -VM $vmConfig
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
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.
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'.
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: