使用 PowerShell 建立具有多個 NIC 的 VM(傳統版)
您可以在 Azure 中建立虛擬機 (VM),並將多個網路介面 (NIC) 連結至每個 VM。 多個 NIC 可讓您跨 NIC 區隔流量類型。 例如,一個 NIC 可能會與因特網通訊,而另一個則只會與未連線到因特網的內部資源通訊。 許多網路虛擬設備都需要跨多個 NIC 分隔網路流量的能力,例如應用程式傳遞和 WAN 優化解決方案。
這很重要
Azure 針對建立和使用資源方面,有二種不同的的部署模型:Resource Manager 和傳統。 本文涵蓋之內容包括使用傳統部署模型。 Microsoft建議大部分的新部署都使用 Resource Manager 模型。 瞭解如何使用 Resource Manager 部署模型來執行這些步驟。
情境
本檔會逐步解說在特定案例中使用 VM 中多個 NIC 的部署。 在此案例中,您有裝載在 Azure 中的兩層式 IaaS 工作負載。 每一層都會部署在虛擬網路 (VNet) 中自己的子網中。 前端層由數部網頁伺服器組成一個負載平衡設定,以確保高可用性。 後端層是由數部資料庫伺服器所組成。 資料庫伺服器會部署兩個 NIC,一個用於數據庫存取,另一個用於管理。 此案例也包含網路安全組 (NSG) 來控制部署中每個子網和 NIC 允許的流量。 下圖顯示此案例的基本架構:
下列步驟會針對 WEB 伺服器使用名為 IaaSStory 的資源群組,以及 DB 伺服器名為 IaaSStory-BackEnd 的資源群組。
先決條件
建立 DB 伺服器之前,您必須使用此案例的所有必要資源來建立 IaaSStory 資源群組。 若要建立這些資源,請完成下列步驟。 按照 建立虛擬網路 文章中的步驟,建立虛擬網路。
必要條件:安裝 Azure PowerShell 模組
若要執行本文中的步驟,您需要安裝和設定 Azure PowerShell 模組。 請務必完成所有的指示。 安裝完成之後,請登入 Azure 並選取您的訂用帳戶。
備註
您需有 Azure 帳戶,才能完成這些步驟。 如果您沒有 Azure 帳戶,您可以註冊 免費試用。
建立後端 VM
後端 VM 取決於建立下列資源:
- 後端子網。 資料庫伺服器將會是個別子網的一部分,以隔離流量。 下列腳本預期此子網存在於名為 WTestVnet的 vnet 中。
- 資料磁碟的儲存帳戶。 為了獲得更好的效能,資料庫伺服器上的數據磁碟會使用固態硬碟(SSD)技術,這需要進階記憶體帳戶。 請確定您部署以支援進階記憶體的 Azure 位置。
- 可用性設定組。 所有資料庫伺服器都會新增至單一可用性設定組,以確保至少有一部 VM 在維護期間啟動並執行。
步驟 1 - 啟動您的文稿
您可以在這裡下載 使用的完整 PowerShell 文稿,。 請遵循下列步驟來變更腳本以在您的環境中運作。
必要條件根據上述部署的現有資源群組,變更下列變數的值。
$location = "West US" $vnetName = "WTestVNet" $backendSubnetName = "BackEnd"
根據您想要用於後端部署的值,變更下列變數的值。
$backendCSName = "IaaSStory-Backend" $prmStorageAccountName = "iaasstoryprmstorage" $avSetName = "ASDB" $vmSize = "Standard_DS3" $diskSize = 127 $vmNamePrefix = "DB" $dataDiskSuffix = "datadisk" $ipAddressPrefix = "192.168.2." $numberOfVMs = 2
步驟 2 - 為您的 VM 建立必要的資源
您必須為所有 VM 的數據磁碟建立新的雲端服務和記憶體帳戶。 您也需要指定映像檔,以及提供一個本機系統管理員帳戶給 VM。 若要建立這些資源,請完成下列步驟:
建立新的雲端服務。
New-AzureService -ServiceName $backendCSName -Location $location
建立新的進階記憶體帳戶。
New-AzureStorageAccount -StorageAccountName $prmStorageAccountName ` -Location $location -Type Premium_LRS
將上述建立的記憶體帳戶設定為您訂用帳戶的目前記憶體帳戶。
$subscription = Get-AzureSubscription | where {$_.IsCurrent -eq $true} Set-AzureSubscription -SubscriptionName $subscription.SubscriptionName ` -CurrentStorageAccountName $prmStorageAccountName
選取 VM 的映像。
$image = Get-AzureVMImage ` | where{$_.ImageFamily -eq "SQL Server 2014 RTM Web on Windows Server 2012 R2"} ` | sort PublishedDate -Descending ` | select -ExpandProperty ImageName -First 1
設定本機系統管理員帳戶認證。
$cred = Get-Credential -Message "Enter username and password for local admin account"
步驟 3 - 建立 VM
您需要使用迴圈來建立所需的 VM 數目,並在循環內建立必要的 NIC 和 VM。 若要建立 NIC 和 VM,請執行下列步驟。
啟動
for
循環,多次重複命令以根據$numberOfVMs
變數的值來建立 VM 和兩個 NIC。for ($suffixNumber = 1; $suffixNumber -le $numberOfVMs; $suffixNumber++){
建立
VMConfig
物件,指定 VM 的映像、大小和可用性設定組。$vmName = $vmNamePrefix + $suffixNumber $vmConfig = New-AzureVMConfig -Name $vmName ` -ImageName $image ` -InstanceSize $vmSize ` -AvailabilitySetName $avSetName
將 VM 布建為 Windows VM。
Add-AzureProvisioningConfig -VM $vmConfig -Windows ` -AdminUsername $cred.UserName ` -Password $cred.GetNetworkCredential().Password
設定預設 NIC,並為其指派靜態 IP 位址。
Set-AzureSubnet -SubnetNames $backendSubnetName -VM $vmConfig Set-AzureStaticVNetIP -IPAddress ($ipAddressPrefix+$suffixNumber+3) -VM $vmConfig
為每個 VM 新增第二個 NIC。
Add-AzureNetworkInterfaceConfig -Name ("RemoteAccessNIC"+$suffixNumber) ` -SubnetName $backendSubnetName ` -StaticVNetIPAddress ($ipAddressPrefix+(53+$suffixNumber)) ` -VM $vmConfig
建立每個 VM 的資料磁碟。
$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
建立每個 VM,並結束迴圈。
New-AzureVM -VM $vmConfig ` -ServiceName $backendCSName ` -Location $location ` -VNetName $vnetName }
步驟 4 - 執行腳本
既然您已根據需求下載並變更腳本,請執行腳本以建立具有多個 NIC 的後端資料庫 VM。
儲存您的文稿,並從 PowerShell 命令提示字元執行腳本,或 PowerShell ISE。 您會看到初始輸出,如下所示。
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'.
填寫認證提示中所需的資訊,然後按下 [確定] [確定]。 傳回下列輸出。
New-AzureVM xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded New-AzureVM xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
步驟 5 - 在虛擬機的操作系統中設定路由配置
Azure DHCP 會將預設閘道指派給連結至虛擬機的第一個(主要)網路介面。 Azure 不會將預設閘道指派給連接至虛擬機器的其他 (次要) 網路介面。 因此,依預設,您無法與次要網路介面中子網路之外的資源進行通訊。 不過,次要網路介面可與它們的子網路之外的資源通訊。 若要設定次要網路介面的路由,請參閱下列文章: