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 imagename,PublishedDate �CAutoSize
该操作会列出当前所有映像的名称和发布日期。默认情况下请选择时间最新的版本。请先复制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即可;我们可以通过
(get-module azure).version
查单当前使用的azure powershell版本
注:执行以下命令需要使用版本为0.9.3的azure powershell,不能用0.9.4的azure powershell,如果安装了最新的卸载 后安装就版本
Import-AzurePublishSettingsFile 导入 .publishsettings 文件以供模块使用
因为我已经导入过了,所以再次导入会提示以下信息
如果在windowsazure powershell中导入多个订阅文件的话,我们需要选择默认的
我们首先通过get-azuresubscrpit 查看当前powershell下已导入的订阅文件
我们发现有两个,所以我们需要通过以下命令来设置默认的即可
Select-azuresubscript -subsciptionName "xxxxx" -default
然后我们可以
Get-azurevm 查看当前订阅性的所有vm信息
“ServiceName” 为云服务名字,”name“为虚机名字
我们首先需要创建一个Reservedip( 无法具体指定某个 IP ,此操作 AzureAzure Azure平台会为客户随机指定一个 平台会为客户随机指定一个 VIP) VIP) :
$ReservedIP = New-AzureReservedIP -ReservedIPName "RVIP" -Label "testvip" -Location "China North"
-ReservedIPName的命名可以任意定义;在此我定义为:RVIP
-Label 为描述 在此我藐视为testvip
-Location 为区域,必须和虚拟网络同区
创建完成
我们通过get-azurereservedip查看具体的保留ip信息,如果还没有部署,sevicename(代表云服务名称),DeploymentName(代表虚拟名称)将为空
get-azurereservedip -ReservedipName RVIP
我们当然也可以通过get-azurereservedip 查看所有的reservedip
然后我们在reservedip中创建虚拟机
1指定当前的SubID和StorageAccount (否则创建虚拟机会报错)
Set-AzureSubscription -SubscriptionName "XXXX" -CurrentStorageAccountName "YYYY"
标黄处分别为SubID的名称,即是之前在Publishsettings里中修改的Name字段
后面的是存储账号的名称,如果对应的区域无存储账号,则需要新建一个
查看存储账户及subscriptionname
Set-AzureSubscription -SubscriptionName "MSDN Ultimate" -CurrentStorageAccountName "iternaldata"
2列出当前的Image列表,记录需要使用的映像的排列数字:输入:
(Get-AzureVMImage)|Format-Table -Property label,PublishedDate �CAutoSize
该操作会列出当前所有映像名称和发布日期。默认会选择最新的版本
(Get-AzureVMImage)|Format-Table -Property imagename,PublishedDate �CAutoSize
我们复制选择出自己选择的imasgename
55bc2b193643443bb879a78bda516fc8__Windows-Server-2012-R2-201502.01-zh.cn-127GB.vhd
确认信息后,开始在reservedip中部署虚拟机
如果需要创建windows虚拟机代码如下:
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] �CReservedIPName "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" �CReservedIPName "RVIP" -Location "China North"
如需建立在vnet内部则在 -Location "XXX"后面再添加 �CVnetName “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" �CReservedIPName "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" �CReservedIPName "RVIP" -Location "China North"
如需建立在vnet内部则在 -Location "XXX"后面再添加 �CVnetName “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" �CReservedIPName "RVIP" -Location "China North" -VnetName "iternal"
操作成后,我们接下来通过
get-azurereservedip
来显示当前已经配置的reservedip
然后在portal上进行查看
接下来就是验证reserverdip是否生效
首先是记录当前vip信息139.219.12.75
我们将此vm关机30分钟,关机后地址会释放
30分钟后,我们再次启动该vm,然后查看公用虚拟ip地址
那怎么删除Reservedip:
由于Reservedip是收费的,所以不想使用,可以删除;
删除前,我们可以通过以下命令查看当前订阅下有哪些Reservedip
get-azureReservedip
然后删除命名为RVIP的Reservedip
Remove-AzureReservedip -ReservedIPName "RVIP"
需要注意的是:如果相关的云服务中又存在的虚拟机,需要先删除虚拟机才能删除Reservedip,否在会报错
我们删除该reservedip下的vm
删除后,我们再次尝试删除命名为RVIP的reservedip
Remove-AzureReservedip -ReservedIPName "RVIP"
然后我们再次执行
get-azurereservedip
查看当前订阅下的所有reservedip