Windows Azure 配置实现虚拟机外网IP绑定(云服务)

我们上一篇介绍了如何对已存在的虚拟网络的外网IP做绑定,今天主要介绍配置实现虚拟机外网绑定,两者区别在于一个已存在,一个不存在,如果不存在的话,我们需要新建一个云服务,同时对新建的云服务做标记,标记后,可创建对应得虚拟机来完成外网IP绑定,具体见下:首先注意配置保留虚拟机外网IP需要注意以下事项

一、 操作前的注意事项:

1. 如果虚拟机要使用虚拟网络,只能在Regional Vnet中使用ReservedIP,已经有部署的基于地缘组的虚拟网络无法直接转换为Regional Vnet

2. 这个操作目前只能由PowerShell完成

3. 必须先建立一个ReservedIP,再创建虚拟机

4. 目前ReservedIP可以应用到挂载在区域虚拟网络下的虚拟机,为其保留公网IP

5. ReservedIP是计费的

关闭虚拟机不会释放掉保留的RIP,但是当云服务中所有虚拟机都删除后,RIP会被释放,但并不会被从订阅中删除,您可以用来绑定到其他云服务中的虚拟机。

二、 创建Regional Vnet:

在门户的虚拟网络中创建新的虚拟网络,由于目前默认创建为“区域虚拟网络”,所以直接在虚拟网络中创建即为区域虚拟网络。

三、下载并导入Publishsettings File

四、 创建ReservedIP

五、 在ReservedIP中创建新的虚拟机:

5.1指定当前的SubID和StorageAccount

 Set-AzureSubscription -SubscriptionName "XXXX" -CurrentStorageAccountName "

标黄处分别为SubID的名称,即是之前在Publishsettings里中修改的Name字段

后面的是存储账号的名称,如果对应的区域无存储账号,则需要新建一个

5.2列出当前的Image列表之后,列出当前的Image列表:

输入:

(Get-AzureVMImage)|Format-Table -Property p_w_picpathname,PublishedDate –AutoSize

该操作会列出当前所有映像的名称和发布日期。默认情况下请选择时间最新的版本。请先复制p_w_picpathname全文备用

六、 验证ReservedIP是否生效:

七、 删除ReservedIP:

由于ReservedIP是收费的,如果不想使用了,可以删除。 使用命令:Remove-AzureReservedIP -ReservedIPName "frankVIP" 

具体操作见习:

首先是下载及安装powershell

我们都知道windows azure的相关操作都是依赖于windows azure for powershell来做管理的,所以我们需要安装azure powershell

通过以下方法就可以下载windowsazure订阅

https://manage.windowsauzre.cn/publishsettings

p_w_picpath

然后下载并且安装windowsazure powershell,然后在windowsazure powershell下导入该订阅文件;

访问www.windowsazure.cn ---> 文档和资源---> azure 命令行接口---->windows安装就会提示下载windowsazure powershell

我们同样可以查看上面的windows powershell的相关文档

http://www.windowsazure.cn/documentation/articles/install-configure-powershell/

p_w_picpath

Azure powershell 下载链接,下载的时候选择0.9.3版本

https://github.com/Azure/azure-powershell/releases

p_w_picpath

具体方法可以浏览网页内部

下载后就是安装,根据提示安装完powershell即可;我们可以通过

(get-module azure).version

查单当前使用的azure powershell版本

注:执行以下命令需要使用版本为0.9.3的azure powershell,不能用0.9.4的azure powershell,如果安装了最新的卸载 后安装就版本

p_w_picpath

p_w_picpath

Import-AzurePublishSettingsFile 导入 .publishsettings 文件以供模块使用

p_w_picpath

因为我已经导入过了,所以再次导入会提示以下信息

p_w_picpath

如果在windowsazure powershell中导入多个订阅文件的话,我们需要选择默认的

我们首先通过get-azuresubscrpit 查看当前powershell下已导入的订阅文件

p_w_picpath

我们发现有两个,所以我们需要通过以下命令来设置默认的即可

p_w_picpath

Select-azuresubscript -subsciptionName "xxxxx" -default

然后我们可以

Get-azurevm 查看当前订阅性的所有vm信息

“ServiceName” 为云服务名字,”name“为虚机名字

p_w_picpath

我们首先需要创建一个Reservedip( 无法具体指定某个 IP ,此操作 AzureAzure Azure平台会为客户随机指定一个 平台会为客户随机指定一个 VIP) VIP) :

$ReservedIP = New-AzureReservedIP -ReservedIPName "RVIP" -Label "testvip" -Location "China North"

-ReservedIPName的命名可以任意定义;在此我定义为:RVIP

-Label 为描述 在此我藐视为testvip

-Location 为区域,必须和虚拟网络同区

创建完成

p_w_picpath

我们通过get-azurereservedip查看具体的保留ip信息,如果还没有部署,sevicename(代表云服务名称),DeploymentName(代表虚拟名称)将为空

get-azurereservedip -ReservedipName RVIP

p_w_picpath

我们当然也可以通过get-azurereservedip 查看所有的reservedip

p_w_picpath

然后我们在reservedip中创建虚拟机

1指定当前的SubID和StorageAccount (否则创建虚拟机会报错)

Set-AzureSubscription -SubscriptionName "XXXX" -CurrentStorageAccountName "YYYY"

标黄处分别为SubID的名称,即是之前在Publishsettings里中修改的Name字段

后面的是存储账号的名称,如果对应的区域无存储账号,则需要新建一个

查看存储账户及subscriptionname

p_w_picpath

p_w_picpath

Set-AzureSubscription -SubscriptionName "MSDN Ultimate" -CurrentStorageAccountName "iternaldata"

p_w_picpath

2列出当前的Image列表,记录需要使用的映像的排列数字:输入:

(Get-AzureVMImage)|Format-Table -Property label,PublishedDate –AutoSize

该操作会列出当前所有映像名称和发布日期。默认会选择最新的版本

p_w_picpath

(Get-AzureVMImage)|Format-Table -Property p_w_picpathname,PublishedDate –AutoSize

p_w_picpath

我们复制选择出自己选择的imasgename

55bc2b193643443bb879a78bda516fc8__Windows-Server-2012-R2-201502.01-zh.cn-127GB.vhd

确认信息后,开始在reservedip中部署虚拟机

如果需要创建windows虚拟机代码如下:

New-AzureVMConfig -Name "windows"[F4] -InstanceSize Small -ImageName (get-azurevmp_w_picpath)[29].ImageName[F5] | Add-AzureProvisioningConfig -Windows -AdminUsername gavin -Password Password2015 | New-AzureVM -ServiceName "CustomCloud"[F6] –ReservedIPName "RVIP"[F7] -Location "China North"[F8]
Commented [F4]: 定义 该新的 VM 配置 文件名称
Commented [F5]: 指定 要使用的 ImageImageImageImageImage Name,Name,Name,Name,Name,把之前复制 的粘贴过来
Commented [F6]: 新建 云服务的名称
Commented [F7]: 指定 要应用的 ReservedIPReservedIPReservedIPReservedIPReservedIPReservedIPReservedIPReservedIPReservedIPReservedIP
Commented [F8]: 生效 的位置( 要与 之前 一致 ))
Commented [F10]: 定义 该新的 VM 配置 文件名称
Commented [F11]: 新建 云服务的名称
Commented [F12]: 指定 要应用的 ReservedIPReservedIPReservedIPReservedIPReservedIPReservedIPReservedIPReservedIPReservedIPReservedIP
Commented [F13]: 生效 的位置( 要与 之前 一致 ))

我的代码如下:

New-AzureVMConfig -Name "Winodws" -InstanceSize Large -ImageName "55bc2b193643443bb879a78bda516fc8__Windows-Server-2012-Datacenter-201502.01-zh.cn-127GB.vhd" | Add-AzureProvisioningConfig -Windows -AdminUsername gavin -Password Password2015 | New-AzureVM -ServiceName "CustomCloud" –ReservedIPName "RVIP" -Location "China North"

如需建立在vnet内部则在 -Location "XXX"后面再添加 –VnetName “vnetname” 虚拟网络名称

同时在Add-AzureProvisioningConig之前添加 | Set-AzureSubnet -SubnetName “subnetname” | 虚拟网络下的子网名称

因为我们是需要指定内部虚拟网络的,所以需要指定参数;具体执行见下:

New-AzureVMConfig -Name "Winodws" -InstanceSize Large -ImageName "55bc2b193643443bb879a78bda516fc8__Windows-Server-2012-R2-201502.01-zh.cn-127GB.vhd" | Set-AzureSubnet -SubnetName "Subnet-1" | Add-AzureProvisioningConfig -Windows -AdminUsername gavin -Password Password2015 | New-AzureVM -ServiceName "CustomCloud" –ReservedIPName "RVIP" -Location "China North" -VnetName "iternal"

如果需要建立linux虚拟机代码如下

New-AzureVMConfig -Name "Linux" -InstanceSize Large -ImageName "55bc2b193643443bb879a78bda516fc8__Windows-Server-2012-R2-201502.01-zh.cn-127GB.vhd" | Add-AzureProvisioningConfig -Linux -LinuxUser gavin -Password Password2015 | New-AzureVM -ServiceName "CustomCloud" –ReservedIPName "RVIP" -Location "China North"

如需建立在vnet内部则在 -Location "XXX"后面再添加 –VnetName “vnetname” 为虚拟网络

同时在Add-AzureProvisioningConig之前添加 | Set-AzureSubnet -SubnetName “subnetname” subnetname为虚拟网络下的子网名称

因为我们是需要指定内部虚拟网络的,所以需要指定参数;具体执行见下:

New-AzureVMConfig -Name "Linux" -InstanceSize Large -ImageName "55bc2b193643443bb879a78bda516fc8__Windows-Server-2012-R2-201502.01-zh.cn-127GB.vhd" | Set-AzureSubnet -SubnetName “Subnet-1” | Add-AzureProvisioningConfig -Linux -LinuxUser gavin -Password Password2015 | New-AzureVM -ServiceName "CustomCloud" –ReservedIPName "RVIP" -Location "China North" -VnetName "iternal"

p_w_picpath

操作成后,我们接下来通过

get-azurereservedip

来显示当前已经配置的reservedip

p_w_picpath

然后在portal上进行查看

p_w_picpath

p_w_picpath

接下来就是验证reserverdip是否生效

首先是记录当前vip信息139.219.12.75

p_w_picpath

我们将此vm关机30分钟,关机后地址会释放

p_w_picpath

30分钟后,我们再次启动该vm,然后查看公用虚拟ip地址

p_w_picpath

那怎么删除Reservedip:

由于Reservedip是收费的,所以不想使用,可以删除;

删除前,我们可以通过以下命令查看当前订阅下有哪些Reservedip

get-azureReservedip

p_w_picpath

然后删除命名为RVIP的Reservedip

Remove-AzureReservedip -ReservedIPName "RVIP"

需要注意的是:如果相关的云服务中又存在的虚拟机,需要先删除虚拟机才能删除Reservedip,否在会报错

p_w_picpath

我们删除该reservedip下的vm

p_w_picpath

删除后,我们再次尝试删除命名为RVIP的reservedip

Remove-AzureReservedip -ReservedIPName "RVIP"

p_w_picpath

然后我们再次执行

get-azurereservedip

查看当前订阅下的所有reservedip

p_w_picpath