當我們啟動一個Azure VM的時候,他的內部IP(Internal IP)是動態給予的(Dynamic Assigned)。這個意思是VM所會被給予的IP是依照目前第一個閒置的IP。舉例來說,如果VM的網段是10.0.0.0/23,那麼第一台啟動的VM IP將會是10.0.0.5(前4個被Azure用去)。
但是,如果假設我們VM啟動的時候希望給予他一個特定的IP(例如10.0.0.15),那該如何做呢?
問題描述
當我們啟動一個Azure VM的時候,他的內部IP(Internal IP)是動態給予的(Dynamic Assigned)。這個意思是VM所會被給予的IP是依照目前第一個閒置的IP。舉例來說,如果VM的網段是10.0.0.0/23,那麼第一台啟動的VM IP將會是10.0.0.5(前4個被Azure用去)。
但是,如果假設我們VM啟動的時候希望給予他一個特定的IP(例如10.0.0.15),那該如何做呢?
解決辦法
基本上要解決上面提到的問題,只能透過Powershell來下對應的cmdlet。
前置作業
首先會需要去下載Azure powershell的cmdlet。
- 下載位置:http://azure.microsoft.com/zh-tw/downloads/
- 請點上面的連接,然後找到“Windows Powershell”->“安裝”
-
執行下載下來的exe檔案(Web Platform Installer),會預設選擇好需要安裝的內容如下圖:
Azure Powershell Cmdlet介紹
首先我們先看整個會用到的cmdlet:
Get-AzurePublishSettingsFile
Import-AzurePublishSettingsFile "R:\Free Trial-4-30-2014-credentials.publishsettings"
Test-AzureStaticVNetIP -VNetName mylabnet01 -IPAddress 10.0.0.15
$staticVM = Get-AzureVM -ServiceName myvm -Name myvm
Set-AzureStaticVNetIP -VM $staticVM -IPAddress 10.0.0.15 | Update-AzureVM
Get-AzureStaticVNetIP -VM $staticVM
上面的powershell指令執行內容如下:
- Get-AzurePublishSettingsFile - 先取得要控制的Azure賬號的憑證。
- Import-AzurePublishSettingFile - 把剛剛得到的憑證讀取進來
- 我有一個Virtual Network名稱是“mylabnet01”,我先測試10.0.0.15是否已經被人使用
- 在line 4-5 就是取得要設定的VM,然後把它的IP設定為10.0.0.15
- 最後在確認是否有更新成功
結語
從這次的問題可以發現其實有些功能在GUI畫面是沒有做出來的,因此需要完整功能還是需要透過powershell cmdlet。同時,使用powershell來管理多台vm的時候會比gui來的方便
點部落 的標籤: azure