我们上一篇介绍了如何对已存在的虚拟网络的外网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
然后下载并且安装windowsazure powershell,然后在windowsazure powershell下导入该订阅文件;
访问www.windowsazure.cn ---> 文档和资源---> azure 命令行接口---->windows安装就会提示下载windowsazure powershell
我们同样可以查看上面的windows powershell的相关文档
http://www.windowsazure.cn/documentation/articles/install-configure-powershell/
Azure powershell 下载链接,下载的时候选择0.9.3版本
https://github.com/Azure/azure-powershell/releases
具体方法可以浏览网页内部
下载后就是安装,根据提示安装完powershell即可;我们可以通过
1
|
(get-module azure).version
|
查单当前使用的azure powershell版本
注:执行以下命令需要使用版本为0.9.3的azure powershell,不能用0.9.4的azure powershell,如果安装了最新的卸载 后安装就版本
1
|
Import-AzurePublishSettingsFile 导入 .publishsettings 文件以供模块使用
|
因为我已经导入过了,所以再次导入会提示以下信息
如果在windowsazure powershell中导入多个订阅文件的话,我们需要选择默认的
我们首先通过get-azuresubscrpit 查看当前powershell下已导入的订阅文件
我们发现有两个,所以我们需要通过以下命令来设置默认的即可
1
|
Select-azuresubscript -subsciptionName
"xxxxx"
-default
|
然后我们可以
Get-azurevm 查看当前订阅性的所有vm信息
“ServiceName” 为云服务名字,”name“为虚机名字
我们首先需要创建一个Reservedip( 无法具体指定某个 IP ,此操作 AzureAzure Azure平台会为客户随机指定一个 平台会为客户随机指定一个 VIP) VIP) :
1
|
$ReservedIP = New-AzureReservedIP -ReservedIPName
"RVIP"
-Label
"testvip"
-Location
"China North"
|
-ReservedIPName的命名可以任意定义;在此我定义为:RVIP
-Label 为描述 在此我藐视为testvip
-Location 为区域,必须和虚拟网络同区
创建完成
我们通过get-azurereservedip查看具体的保留ip信息,如果还没有部署,sevicename(代表云服务名称),DeploymentName(代表虚拟名称)将为空
1
|
get-azurereservedip -ReservedipName RVIP
|
我们当然也可以通过get-azurereservedip 查看所有的reservedip
然后我们在reservedip中创建虚拟机
1指定当前的SubID和StorageAccount (否则创建虚拟机会报错)
1
|
Set-AzureSubscription -SubscriptionName
"XXXX"
-CurrentStorageAccountName
"YYYY"
|
标黄处分别为SubID的名称,即是之前在Publishsettings里中修改的Name字段
后面的是存储账号的名称,如果对应的区域无存储账号,则需要新建一个
查看存储账户及subscriptionname
1
|
Set-AzureSubscription -SubscriptionName
"MSDN Ultimate"
-CurrentStorageAccountName
"iternaldata"
|
2列出当前的Image列表,记录需要使用的映像的排列数字:输入:
1
|
(Get-AzureVMImage)|Format-Table -Property label,PublishedDate –AutoSize
|
该操作会列出当前所有映像名称和发布日期。默认会选择最新的版本
1
|
(Get-AzureVMImage)|Format-Table -Property imagename,PublishedDate –AutoSize
|
我们复制选择出自己选择的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"
|
操作成后,我们接下来通过
1
|
get-azurereservedip
|
来显示当前已经配置的reservedip
然后在portal上进行查看
接下来就是验证reserverdip是否生效
首先是记录当前vip信息139.219.12.75
我们将此vm关机30分钟,关机后地址会释放
30分钟后,我们再次启动该vm,然后查看公用虚拟ip地址
那怎么删除Reservedip:
由于Reservedip是收费的,所以不想使用,可以删除;
删除前,我们可以通过以下命令查看当前订阅下有哪些Reservedip
1
|
get-azureReservedip
|
然后删除命名为RVIP的Reservedip
1
|
Remove-AzureReservedip -ReservedIPName
"RVIP"
|
需要注意的是:如果相关的云服务中又存在的虚拟机,需要先删除虚拟机才能删除Reservedip,否在会报错
我们删除该reservedip下的vm
删除后,我们再次尝试删除命名为RVIP的reservedip
1
|
Remove-AzureReservedip -ReservedIPName
"RVIP"
|
然后我们再次执行
1
|
get-azurereservedip
|
查看当前订阅下的所有reservedip
本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1675494,如需转载请自行联系原作者