在花了几个小时尝试每个相关的Azure Power Shell命令为Azure VM分配虚拟公共IP之后,我回到原点 . 令人惊讶的是,这样的基本功能无法在Azure中完成 .
首先,我保留了一个静态IP . 然后创建一个vm . 然后尝试了set-azurestaticvnetip . 它抱怨子网名不能为空 . 所以我在Azure门户中创建了一个虚拟网络并创建了一个子网 . 然后使用set-azuresubnet -subnetnames subnet-1 . 现在它抱怨虚拟网络名称不能为空 . 问题是序列中的所有命令都不将-vnetname作为参数 .
然后我发现这个参数可以在new-azurevm中传递 . 所以我删除了(这是一个很好的解决方法 . 我很高兴我没有花时间在虚拟机中配置软件)VM并尝试使用此命令创建 . (此命令中未指定图像参数 . 我在提示时输入了该参数) .
new-azurevmconfig -name myvm -instancesize Basic_A2|
add-azureprovisioningconfig -adminusername "myvmadmin" -windows -password "myvmP123"|
set-azuresubnet -subnetnames subnet-1 |
set-azurestaticvnetip -ipaddress 23.101.39.28 |
new-azurevm -servicename myvm -vnetname mynet –Location "East US" -waitforboot
引发错误 -
new-azurevm : BadRequest : The static address 23.101.39.28 doesn't belong to the address space defined by the role's subnets.
这有什么不对?在我看来,这些说明用于为VM分配专用IP . 将静态IP分配给通过Web角色创建的VM非常容易(只需将公共IP名称放在配置文件中即可) . 如何为VM分配公共IP . Microsoft文档仅表明公共IP可用于VM,但他们是否认为每个人都知道如何做到这一点?
3 回答
我认为你需要创建一个区域vnet . 这对我有用:
1)获取当前的网络配置
2)打开MyAzNets.netcfg并编辑/(添加?)VirtualNetworkSite . 我认为这里的关键是位置,而不是Affinity Group . 您保留的IP / VM必须相同 .
你应该有这样的事情:
3)将其发送回Azure:
4)在与vnet相同的位置添加/获取IP .
5)创建您的VM .
创建或移动VM时,请确保 Cloud 服务不存在 . 要移动VM,只需点击管理门户中的捕获按钮并为其指定友好名称,然后删除VM和 Cloud 服务 .
6)应分配IP . 如果你运行Get-AzureReservedIP,它现在应该显示如下:
在创建VM之后,您应该能够动态地将保留的IP分配给VM(或Cloud Service Web角色),而不会有任何拆除 . 适合我 . 就这样做;
New-AzureReservedIP -ReservedIPName MyReservedIP -Location“East US”
Set-AzureReservedIPAssociation -ReservedIPName MyReservedIP -ServiceName MyVMName
第一个命令保留IP . 第二个命令将其分配给VM . 分配是立即的,服务器将重新启动
在过去两天经过多次不同选择的试验后,最终有效:
不知道为什么,但确实如此 . 我之前没有运气就试过这个 .