《Windows Azure Platform 系列文章目录

  

  注意:本文介绍的是Global Azure (http://www.windowsazure.com),如果你使用的是由世纪互联运维的Azure China,请参考下面的连接。

  Azure China (8) 使用Azure PowerShell创建虚拟机,并设置固定Virtual IP Address和Private IP 

  熟悉Azure Virtual Network的读者都知道,如果我们设置了Azure Virtual Network (VNet)的IP Rang是xxx.xxx.0.0 - xxx.xxx.0.255

  那第一个加入VNet的虚拟机Private IP为0.4(0.0到0.3的IP地址被系统占用),第二个加入VNet的虚拟机Private IP为0.5,以后加入VNet的虚拟机Private IP地址为在已创建的Azure Private IP上加1。

  但是这样会产生3个问题:

  1.不能手动设置Private IP地址,Private IP是系统自动生成的,无法预先设置。

  2.无法修改Private IP地址。在系统自动分配Private IP之后,想手动修改Private IP也是不可能的。

  3.无法固定Private IP地址。在某些情况下,Azure管理人员关闭了VM,造成VM的状态为Stop(Deallocate)的情况下,再次启动Azure VM会造成Private IP改变。

  最新的PowerShell (版本号: PowerShell cmdlets for Windows Azure Version 0.7.3)命令增加了新的PowerShell命令,允许用户设置Azure VM Private IP。这4个命令是:

  -  Get-AzureStaticVNetIP

  -  Set-AzureStaticVNetIP

  -  Remove-AzureStaticVNetIP

  -  Test-AzureStaticVNetIP

  接下来,笔者会详细介绍以上的PowerShell命令。

  在开始演示之前,请按照[New Portal]Windows Azure Virtual Machine (16) 使用Azure PowerShell创建Azure Virtual Machine中的内容,通过PowerShell将本地证书上传至Azure云端。

  在上一章内容中,笔者已经创建Azure Virtual Network:MyVNet。同时创建了2台Azure VM,分别为:

IP 说明
192.168.0.0-192.168.0.3 Azure Virtual Network 保留
192.168.0.4 AD Server
192.168.0.5 Web Server 001

  在这里,笔者将介绍如何创建第2台Web服务器,即Web Server 002进行负载均衡,并且观察Web Server 002的Private IP设置。

  1.确认某个Private IP是否可用

  我们要用到的命令是Test-AzureStaticVNetIP:

Test-AzureStaticVNetIP –VNetName <VNetName> –IPAddress <Address>

  比如我要查询MyVNet这个虚拟网络中,Private IP为192.168.0.4是否可用,PowerShell命令为:

Test-AzureStaticVNetIP –VNetName MyVNet –IPAddress 192.168.0.4

  执行结果为:

  

  可以看到IsAvailable值为False(因为192.168.0.4已经被AD Server占用了)。

  然后Azure会在AvailableAddresses中,提供其他可用的IP地址,比如192.168.0.6,192.168.0.7等等

  

  2.创建新的虚拟机,同时设置Private IP

  我们用到的命令是Set-AzureStaticVNetIP

Set-AzureStaticVNetIP -IPAddress  <YourIPAddress>

来创建个更加复杂的Azure Virtual Machine

首先我们指定默认的存储,在Powershell输入以下命令:

Set-AzureSubscription -SubscriptionName 'Windows Azure MSDN - Visual Studio Ultimate' -CurrentStorageAccount 'leivms'

  按照以下规格创建虚拟机:

-  DNS Name为LeiWeb (需要负载均衡)

-  显示名称为LeiWeb002

-  VM Size为Basic_A1 (1Core/1.75GB)

-  VM Image为Windows Server 2012 DataCenter 201403.01-en.us

-  Windows用户名为leizhang,密码为Pass@word1

-  storage account为leivms

-  地缘组为EastAsiaGroup

-  虚拟网络为 MyVNet,子网为Subnet-1

-  Private IP设置为192.168.0.7

然后我们输入以下命令:

$vm = New-AzureVMConfig -Name 'LeiWeb002' -InstanceSize Basic_A1 -ImageName (Get-AzureVMImage)[].ImageName 

$vm | Add-AzureProvisioningConfig `  -Windows ` -AdminUsername 'leizhang' `  -Password 'Pass@word1'

$vm | Set-AzureSubnet -SubnetNames 'Subnet-1' |  Set-AzureStaticVNetIP -IPAddress 192.168.0.7

$vm | New-AzureVM -ServiceName 'LeiWeb' -VNetName 'MyVNet'

  执行结果,如下图:

  

  我们也可以在Management Portal上查看到Azure正在开始创建LeiWeb002这台虚拟机,截图下图:

  

  执行完毕后,我们可以查看到虚拟机LeiWeb002的Private IP设置为 192.168.0.7。如下图:

  

  另外告诉各位读者一个特大喜讯:如果你在VNet中的Virtual Machine已经通过Set-AzureStaticVNetIP命令,设置了Private IP。

  即使你的VM关机后状态变成Stop_Deallocate,重新开机后这台VM的Private IP还是不会改变的。 O YEAH!!!

  3.修改Private IP

  这里用到的命令为Set-AzureStaticVNetIP

Set-AzureStaticVNetIP -IPAddress <NewIPAddress>

  之前笔者创建的LeiWeb002的Private IP为192.168.0.7,如果需要重新设置怎么办?

  LeiWeb002这台虚拟机的信息如下:

  -  DNS: LeiWeb.cloudapp.net

  -  Virtual Machine: LeiWeb002

  -  设置新的Private IP : 192.168.0.6

  然后执行以下PowerShell命令:

Get-AzureVM -ServiceName LeiWeb -Name LeiWeb002 | Set-AzureStaticVNetIP -IPAddress 192.168.0.6 | Update-AzureVM

  执行结果截图如下:

  

  我们可以通过Management Portal查看LeiWeb002这台虚拟机的Private IP已经被修改为192.168.0.6

  

  

  最后我们回顾一下配置的虚拟机信息:

IP 说明
192.168.0.0-192.168.0.3 Azure Virtual Network 保留
192.168.0.4 AD Server
192.168.0.5 Web Server 001

192.168.0.6 Web Server 002

Windows Azure Virtual Network (5) 设置Azure Virtual Machine固定Private IP的更多相关文章

  1. Windows Azure Virtual Network (7) 设置Azure Virtual Machine固定公网IP (Virtual IP Address, VIP) (2)

    <Windows Azure Platform 系列文章目录> 本文介绍的是,当用户在创建Azure Virtual Machine的时候,忘记绑定公网IP,需要重新绑定公网IP的具体操作 ...

  2. Windows Azure Virtual Network (6) 设置Azure Virtual Machine固定公网IP (Virtual IP Address, VIP) (1)

    <Windows Azure Platform 系列文章目录> 注意:本文介绍的是Global Azure (http://www.windowsazure.com),如果你使用的是由世纪 ...

  3. Windows Azure Virtual Network (8) 创建Azure Point-to-Site点到站点 VPN

    <Windows Azure Platform 系列文章目录> 我们在使用Azure的时候,常常有这样的需求: -我需要将企业内网的主机连接到微软Azure公有云平台 -我需要保证企业内部 ...

  4. Windows Azure Virtual Network (10) 使用Azure Access Control List(ACL)设置客户端访问权限

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的China Azure. 我们在创建完Windows Azure Virtual Machi ...

  5. Azure PowerShell (13) 批量设置Azure ARM Network Security Group (NSG)

    <Windows Azure Platform 系列文章目录> 刚刚在帮助一个合作伙伴研究需求,他们的虚拟机全面的网络安全组(Network Security Group, NSG)会经常 ...

  6. [SDK2.2]Windows Azure Virtual Network (1) 概念

    <Windows Azure Platform 系列文章目录> Windows Azure Virtual Network是非常重要的概念,其主要作用有以下两点: 1.将多台Azure V ...

  7. Windows Azure Cloud Service (44) 将Cloud Service加入Virtual Network Subnet,并固定Virtual IP Address(VIP)

    <Windows Azure Platform 系列文章目录> 在之前的文章中,笔者已经详细介绍了如何将Virtual Machine加入Virtual Network,并且绑定固定的Pr ...

  8. Azure China (8) 使用Azure PowerShell创建虚拟机,并设置固定Virtual IP Address和Private IP

    <Windows Azure Platform 系列文章目录> 本文介绍的是由世纪互联运维的Windows Azure China. 相比于Global Azure (http://www ...

  9. Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接

    <Windows Azure Platform 系列文章目录> 我们知道,Azure Virtual Network可以 1.将对台Azure VM加入到同一个网段里,同时绑定内网IP地址 ...

随机推荐

  1. AWIT DBackup 0.0.20 发布,备份系统

    AWIT DBackup 0.0.20 修复了几个小 bug. AllWorldIT DBackup 是一个备份系统,为每个目录创建一个独立的压缩包,这更便于搜索. 特点: 使用 xz, bzip2, ...

  2. Spring AOP在函数接口调用性能分析及其日志处理方面的应用

    面向切面编程可以实现在不修改原来代码的情况下,增加我们所需的业务处理逻辑,比如:添加日志.本文AOP实例是基于Aspect Around注解实现的,我们需要在调用API函数的时候,统计函数调用的具体信 ...

  3. 作业七:团队项目——Alpha版本冲刺阶段-13

    对项目最后进行了完善. 代码如下: public void chapRule(int Man ,JLabel play,JLabel playTake,JLabel playQ[]){ //当前状态 ...

  4. 一种集合“相等性”的实现

        最近在工作中遇到了一个小的功能,就是需要向一个服务发送请求命令,需要判断请求是否发生变化,如果发生变化了,则重新请求.该问题实际上就是判断两个集合是否相等,只需要记录最后一次请求的元素的集合, ...

  5. 《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!

    <30天自制操作系统>笔记(01)——hello bitzhuwei's OS! 最初的OS代码 ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序的装载地址 ; 以 ...

  6. [每天默写一个算法]KMP

    [每天默写一个算法]KMP 作业要求:默写String的KMP算法. KMP是经典的字符串匹配算法.复杂度为O(n+m) public static class StringKMP { /// < ...

  7. Java8的新特性以及与C#的比较

    函数式接口 VS 委托 在C中,可以使用函数指针来存储函数的入口,从而使得函数可以像变量一样赋值.传递和存储,使得函数的调用变得十分灵活,是实现函数回调的基础.然而函数指针不存在函数的签名信息,甚至可 ...

  8. C#基础入门一

    .net(软件开发平台)-------------------------------------------------------- 学习内容:.net平台下的开发语言. .net freamwo ...

  9. [翻译]AKKA笔记 - ACTOR MESSAGING - REQUEST AND RESPONSE -3

    上次我们看Actor消息机制,我们看到开火-忘记型消息发出(意思是我们只要发个消息给Actor但是不期望有响应). 技术上来讲, 我们发消息给Actors就是要它的副作用. 这就是这么设计的.除了不响 ...

  10. qqzoneQQ空间漏洞扫描器的设计attilax总结

    qqzoneQQ空间漏洞扫描器的设计attilax总结 1.1. 获取对方qq(第三方,以及其他机制)1 1.2. QQ空间的html流程1 1.3. 判断是否有权限1 1.4. 2015年度Web服 ...