繁体   English   中英

如何在Azure VM中使用公共静态IP

[英]How to use public static IP with Azure VM

在花了几个小时尝试每个相关的Azure Power Shell命令以将虚拟公用IP分配给Azure VM之后,我回到了第一点。 令人惊讶的是,这种基本功能无法在Azure中完成。

首先,我保留了一个静态IP。 然后创建一个虚拟机。 然后尝试设置-azurestaticvnetip。 它抱怨子网名称不能为空。 因此,我在Azure门户中创建了一个虚拟网络并创建了一个子网。 然后使用set-azuresubnet -subnetnames subnet-1。 现在,它抱怨虚拟网络名称不能为空。 问题是序列中的所有命令都没有使用-vnetname作为参数。

然后,我发现可以在new-azurevm中传递此参数。 因此,我删除了VM(这是一个很好的解决方法。很高兴我没有花时间在vm中配置软件),并尝试使用此命令进行创建。 (在此命令中未指定image参数。我是在提示符下输入的)。

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名称放在配置文件中即可)。 如何为虚拟机分配公共IP。 Microsoft文档仅声明公共IP可以用于VM,但他们是否认为每个人都知道该怎么做?

我认为您需要创建一个区域性vnet。 这为我工作:

1)获取当前的网络配置

 Get-AzureVNetConfig -ExportToFile "c:\temp\MyAzNets.netcfg"

2)打开MyAzNets.netcfg并编辑/(添加?)VirtualNetworkSite。 我认为这里的关键是位置而不是亲和力小组。 您保留的IP / VM必须保持相同。

您应该具有以下内容:

<VirtualNetworkSites>
  <VirtualNetworkSite name="yourvnet" Location="West US">
    <AddressSpace>
      <AddressPrefix>192.168.50.0/24</AddressPrefix>
    </AddressSpace>
    <Subnets>
      <Subnet name="yoursubnet">
        <AddressPrefix>192.168.50.0/24</AddressPrefix>
      </Subnet>
    </Subnets>
  </VirtualNetworkSite>
</VirtualNetworkSites>

3)将其发送回Azure:

Set-AzureVNetConfig -ConfigurationPath "C:\temp\MyAzNets.netcfg"

4)在与vnet相同的位置添加/获取IP。

Get-AzureReservedIP / New-AzureReservedIP

5)创建您的VM。

创建或移动VM时,请确保云服务不存在。 要移动VM,只需单击管理门户中的“捕获”按钮并为其命名,然后删除VM和云服务。

New-AzureVMConfig -Name "my-vm01" -InstanceSize Basic_A2 -ImageName "someimage" -Label "my-vm" | Set-AzureSubnet "**yoursubnet**" | Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 61030 | Add-AzureEndpoint -LocalPort 80 -Name 'HTTP' -Protocol tcp -PublicPort 80 | Add-AzureEndpoint -LocalPort 443 -Name 'HTTPS' -Protocol tcp -PublicPort 443| New-AzureVM -ServiceName "my-vm" -ReservedIPName "**reservedipname**" -Location "West US" -VNetName "**yourvnet**" 

6)应该分配IP。 如果您运行Get-AzureReservedIP,它现在应该显示类似以下内容:

ReservedIPName       : reservedipname
Address              : 127.0.0.1
Id                   : xxx
Label                :
Location             : West US
State                : Created
InUse                : True
ServiceName          : my-vm
DeploymentName       : my-vm

创建虚拟机后,您应该能够为虚拟机(或云服务Web角色)动态分配保留的IP,而无需进行任何拆除。 为我工作。 这样做吧;

New-AzureReservedIP –ReservedIPName MyReservedIP –位置“美国东部”

Set-AzureReservedIPAssociation -ReservedIPName MyReservedIP -ServiceName MyVMName

第一个命令保留IP。 第二个命令将其分配给VM。 分配是立即的,服务器将重新启动

经过最近两天的不同选择的多次试验后,终于成功了:

New-AzureVMConfig -Name "mysite" -InstanceSize Basic_A2  -Label "mysite" | Set-AzureSubnet "subnet-1" | add-azureprovisioningconfig -adminusername "myuser" -windows -password "mypwd"|  Add-AzureEndpoint -LocalPort 80 -Name 'HTTP' -Protocol tcp -PublicPort 80 | Add-AzureEndpoint -LocalPort 443 -Name 'HTTPS' -Protocol tcp -PublicPort 443| New-AzureVM -ServiceName "mysite" -ReservedIPName "mysiteip" -Location "East US" -VNetName "mysite"

不知道为什么,但是确实如此。 我以前尝试过这个,没有任何运气。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM