《Windows Azure Platform 系列文章目錄》
注意:本文介紹的是Global Azure (http://www.windowsazure.com),如果你使用的是由世紀互聯運維的Azure China,請參考下面的連接。
Azure China (8) 使用Azure PowerShell創建虛擬機,並設置固定Virtual IP Address和Private IP
本文介紹的是,用戶首先使用PowerShell申請公網IP地址,然后在創建Azure VM的時候,綁定公網IP地址。
在之前的文章里,筆者介紹了,我們可以通過Azure PowerShell,固定Azure Virtual Machine的Private IP,即內網IP地址。
但是Private IP只是幫助Virtual Machine通過數據中心的局域網進行通信,如果我們想固定公網的IP地址,即VIP,應該怎么辦?
Azure PowerShell允許用戶設置固定(Reserved)Virtual IP Address。
注意:默認情況下,客戶通過管理界面Management Portal創建的虛擬機的Virtual IP,其實是從數據中心的IP池中隨機獲得的。當客戶關閉虛擬機,虛擬機狀態為Stop(Deallocate)的時候,Virtual IP會被釋放,DNS會綁定到另外一個IP地址。
如果客戶A需要固定IP的情況下,需要通過Azure PowerShell向數據中心申請一個或者多個IP地址,這些IP地址就只會被客戶A使用。
除非客戶A將申請的IP釋放,否則其他用戶是無法使用到客戶A申請的公網IP地址。
Azure Global的IP Rang信息,可以參考:http://www.microsoft.com/en-us/download/details.aspx?id=41653
國內由世紀互聯運維的Azure China的IP Rang信息,可以參考:http://www.microsoft.com/en-us/download/details.aspx?id=42064
如果讀者用的是百度查詢IP地址,經常會發現Azure上海的IP地址經常會顯示來自北京,這是由於百度的IP庫比較老,請讀者注意
請注意:通過Azure Management Portal創建的虛擬機不能綁定公網IP地址。
如果你已經通過Portal創建了虛擬機。需要刪除該虛擬機所在的雲服務,保留VHD以后。重新基於該VHD創建新的雲服務。
注意:固定Virtual IP Address(VIP)目前不支持使用地緣組(Affinity Group)的Virtual Network虛擬機,但是支持創建在數據中心的虛擬機。
http://msdn.microsoft.com/en-us/library/azure/dn690120.aspx
Reserved IP is supported only for Regional VNets. It is not supported for VNets that are associated with affinity groups. For more information about associating a VNet with a region or an affinity group, see About Regional VNets and Affinity Groups for Virtual Network.
接下來,筆者將介紹如何創建固定IP地址,並關聯到新建的Azure Virtual Machine虛擬機上。
關鍵步驟主要分為以下幾步:
1.使用PowerShell,向Azure數據中心申請ReservedIP
2.創建第一台虛擬機,同時向DNS綁定ReservedIP
3.刪除第一台虛擬機,釋放ReservedIP
4.創建第二台虛擬機,同時向新的DNS綁定ReservedIP
5.注意:存儲賬號,DNS部署的位置,和IP地址的位置,都應該在同一個數據中心里
1.首先我們以管理員身份運行Azure PowerShell
請注意:如果你是第一次運行PowerShell,請按照[New Portal]Windows Azure Virtual Machine (16) 使用Azure PowerShell創建Azure Virtual Machine
文章的內容,在本地創建證書文件。以便本地計算機和Azure建立可靠的安全連接。
2.指定默認的存儲
Set-AzureSubscription -SubscriptionName 'Windows Azure MSDN - Visual Studio Ultimate' -CurrentStorageAccount 'leivms'
設置當前訂閱:
Select-AzureSubscription -SubscriptionName 'Windows Azure MSDN - Visual Studio Ultimate' -Current
3.在東亞地區(East Asia)申請一個新的Reserved VIP
$ReservedIP = New-AzureReservedIP -ReservedIPName "LeiVMReservedIP" -Label "LeiVMReservedIP" -Location "East Asia"
執行結果如下圖:
4.查看申請的Reserved VIP信息:
Get-AzureReservedIP -ReservedIPName "LeiVMReservedIP"
上圖中,可以看到InUse屬性為False,表示這個ReservedIP沒有被占用。
5.設置鏡像為Windows Server 2012 Datacenter
$imageList = Get-AzureVMImage ` | where {$_.ImageName -eq "a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201407.01-en.us-127GB.vhd"} $image=$imageList[0]
上圖的$image命令可以顯示我們需要的Windows Server 2012 DataCenter鏡像的相關信息
如果我想模糊查詢AzureImage的話,可以通過星號(*)通配符,來模糊查詢。
比如筆者只想查詢Windows Server 2012 Datacenter的鏡像,PowerShell如下:
$imageList = Get-AzureVMImage ` | where {$_.ImageName -like "*Windows-Server-2012-Datacenter*"} $image=$imageList[0]
5.創建虛擬機網絡,注意創建的虛擬網絡不可以在某個地緣組的下面
我們創建一個虛擬網絡,命名為ReservedPublicIPVNet,IP Rang為192.168.0.0 - 192.168.0.255
包含一個Subnet,命名為Subnet-1
6.創建新的Azure Virtual Machine
- DNS為LeiVM001
- 虛擬機名為LeiVM001
- 虛擬機大小為Medium
- 管理員名為adminuser
- 管理員密碼為Abc@123456
- 虛擬網絡為ReservedPublicIPVNet,子網為Subnet-1
最后把我們在步驟一中獲得ReservedIP分配給新創建的Virtual Machine
New-AzureVMConfig -Name 'LeiVM001' -InstanceSize Medium -ImageName $image.ImageName | Add-AzureProvisioningConfig -Windows -AdminUsername 'adminuser' -Password 'Abc@123456' | Set-AzureSubnet -SubnetNames 'Subnet-1' | New-AzureVM -ServiceName 'LeiVM001' -VNetName 'ReservedPublicIPVNet' –ReservedIPName 'LeiVMReservedIP' -Location 'East Asia'
執行結果如下圖:
6.最后我們可以在Management Portal查詢到創建的Cloud Service的VIP地址,
23.101.5.0這個VIP地址就是我們在步驟四中查看到的,如下圖:
7.我們可以刪除之前創建的DNS為LeiVM001的虛擬機,將Reserved IP (23.101.5.0)釋放掉。
創建第2個虛擬機,DNS為LeiVM002,重復利用23.101.5.0這個Reserved IP (PowerShell略)。如下圖:
8.我們還可以通過Get-AzureReservedIP這個命名,查看已經獲得ReservedIP信息。如下圖:
注意:因為LeiVM002這個已經綁定了名為LeiVMReservedIP的VIP,所以上圖中的屬性InUse為True。
最后,如果需要刪除Azure Reserved IP地址,記得先把虛擬機和雲服務都刪除掉。
然后執行命令:
Remove-AzureReservedIP -ReservedIPName '[YourReservedIPName]'