且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-08-29 07:37:47

我们上一篇介绍了如何对已存在的虚拟网络的外网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

1
 Set-AzureSubscription -SubscriptionName "XXXX" -CurrentStorageAccountName "

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

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

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

输入:

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

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

六、 验证ReservedIP是否生效:

七、 删除ReservedIP:

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

具体操作见习:

首先是下载及安装powershell

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

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

https://manage.windowsauzre.cn/publishsettings

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

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

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

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

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

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

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

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

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

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

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

1
(get-module azure).version

查单当前使用的azure powershell版本

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

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

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

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

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

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

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

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

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

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

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

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

1
Select-azuresubscript -subsciptionName "xxxxx" -default

然后我们可以

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

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

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

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

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

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

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

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

创建完成

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

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

1
get-azurereservedip -ReservedipName RVIP

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

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

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

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

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

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

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

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

查看存储账户及subscriptionname

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1
2
3
4
5
6
7
8
9
10
New-AzureVMConfig -Name "windows"[F4] -InstanceSize Small -ImageName (get-azurevmimage)[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]: 生效 的位置( 要与 之前 一致 ))

我的代码如下:

1
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” | 虚拟网络下的子网名称

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

1
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虚拟机代码如下

1
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为虚拟网络下的子网名称

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

1
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"

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

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

1
get-azurereservedip

来显示当前已经配置的reservedip

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

然后在portal上进行查看

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

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

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

首先是记录当前vip信息139.219.12.75

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

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

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

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

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

那怎么删除Reservedip:

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

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

1
get-azureReservedip

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

然后删除命名为RVIP的Reservedip

1
Remove-AzureReservedip -ReservedIPName "RVIP"

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

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

我们删除该reservedip下的vm

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

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

1
Remove-AzureReservedip -ReservedIPName "RVIP"

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

然后我们再次执行

1
get-azurereservedip

查看当前订阅下的所有reservedip

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



本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1675494,如需转载请自行联系原作者