尝试向网络适配器添加第二个 IP 地址,但在 Set-AzureRmNetworkInterface 上找不到资源 {0}
Trying to add a second IP adress to a network adapter but getting Resource {0} not found on Set-AzureRmNetworkInterface
我正在尝试使用 Powershell 使用 AzureRm cmdlet 在 Azure 虚拟机规模集上的网络适配器上添加第二个 IP 地址。
我的代码如下所示:
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionId "XXXXXXXXXXXXXXXXXXXXXX"
$vnetname = "confvnet"
$loc = "West Europe"
$backendSubnetName = "conf-jira-interlink"
$backendSubnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName -AddressPrefix "10.0.4.0/24"
echo "backendSubnetConfig: "$backendSubnetConfig
$vnet = Get-AzureRmVirtualNetwork -Name $vnetname -ResourceGroupName "resourcegroup-confluence-jira-datacenter"
echo "vnet: "$vnet
Add-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName -VirtualNetwork $vnet -AddressPrefix "10.0.4.0/24" | Set-AzureRmVirtualNetwork
$subnetId = (Get-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName -VirtualNetwork $vnet).Id
echo "subnetId: "$subnetId
$ipCfg = New-AzureRmVmssIPConfig -Name 'eth1' -SubnetId $subnetId -PrivateIPAddressVersion 'IPv4' -Primary $false
echo "ipCfg: "$ipCfg
$backendSubnet = Get-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName -VirtualNetwork $vnet
echo "backendSubnet: "$backendSubnet
$vmss = Get-AzureRmVmss -ResourceGroupName resourcegroup-confluence-jira-datacenter -VMScaleSetName confcluster
echo "vmss: "$vmss
Add-AzureRmVmssNetworkInterfaceConfiguration -Name $backendSubnet -Primary $false -IPConfiguration $ipCfg -VirtualMachineScaleSet $vmss
$vmss = Get-AzureRmVmss -ResourceGroupName resourcegroup-confluence-jira-datacenter -VMScaleSetName confcluster
$Nic = Get-AzureRmNetworkInterface -ResourceGroupName "resourcegroup-confluence-jira-datacenter" -VirtualMachineScaleSetName 'confcluster'
echo "Nic: "$Nic
$ipconfig_interlink = New-AzureRmNetworkInterfaceIpConfig -Name "ipconfig-conf-jira-interlink" -Subnet $backendSubnetConfig -PrivateIpAddress "10.0.4.20"
Add-AzureRmNetworkInterfaceIpConfig -Name $ipconfig_interlink.Name -Subnet $backendSubnetConfig -NetworkInterface $Nic
Set-AzureRmNetworkInterfaceIpConfig -Name $ipconfig_interlink.Name -PrivateIpAddress 10.0.4.20 -Subnet $backendSubnetConfig -NetworkInterface $Nic
$Nic = Get-AzureRmNetworkInterface -ResourceGroupName "resourcegroup-confluence-jira-datacenter" -VirtualMachineScaleSetName 'confcluster'
echo "Nic: "$Nic
Set-AzureRmNetworkInterface -NetworkInterface $Nic
Update-AzureRmVmss -ResourceGroupName "resourcegroup-confluence-jira-datacenter" -VMScaleSetName "confcluster" -VirtualMachineScaleSet $vmss
但是我遇到了错误
Set-AzureRmNetworkInterface : Resource '{0}' not found In
X:\JIRA_Confluence_Migration\PowerShell\network-interfaces-azure-same-vnet.ps1:67
Zeichen:1
+ Set-AzureRmNetworkInterface -NetworkInterface $Nic
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Set-AzureRmNetworkInterface], ArgumentException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.Network.SetAzureNetworkInterfaceCommand
on Set-AzureRmNetworkInterface.
有人知道问题出在哪里吗?
我怀疑它正在寻找 NIC 本身的标识符,而不是对象。尝试:
Set-AzureRmNetworkInterface -NetworkInterface $Nic.Id
对于您的问题,您只需更改如下命令即可:
$Nic | Set-AzureRmNetworkInterface
然后它就可以正常工作了。
但是正如我在您的脚本中看到的那样,您只需获取网络接口然后进行设置,无需任何更改。如果是这样,该命令不会产生任何影响。您可以看一下命令示例 Set-AzureRmNetworkInterface.
更新
根据另一个测试,有一点需要重点关注。 Azure VM 规模集实例与 VM 不同。您无法在 VMSS 所在的组中找到实例的网络接口。所有实例都是从相同的配置创建的,网络接口也是如此。如错误所示,找不到资源。
你可以看看How do I specify a range of private IP addresses to use for static private IP address allocation的问题。所以我认为你想通过命令 Set-AzureRmNetworkInterface
.
设置实例的 NIC 是错误的方式
正如你上一个问题,你可以设置VMSS的网络配置,这是VMSS的正确方法。
我正在尝试使用 Powershell 使用 AzureRm cmdlet 在 Azure 虚拟机规模集上的网络适配器上添加第二个 IP 地址。
我的代码如下所示:
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionId "XXXXXXXXXXXXXXXXXXXXXX"
$vnetname = "confvnet"
$loc = "West Europe"
$backendSubnetName = "conf-jira-interlink"
$backendSubnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName -AddressPrefix "10.0.4.0/24"
echo "backendSubnetConfig: "$backendSubnetConfig
$vnet = Get-AzureRmVirtualNetwork -Name $vnetname -ResourceGroupName "resourcegroup-confluence-jira-datacenter"
echo "vnet: "$vnet
Add-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName -VirtualNetwork $vnet -AddressPrefix "10.0.4.0/24" | Set-AzureRmVirtualNetwork
$subnetId = (Get-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName -VirtualNetwork $vnet).Id
echo "subnetId: "$subnetId
$ipCfg = New-AzureRmVmssIPConfig -Name 'eth1' -SubnetId $subnetId -PrivateIPAddressVersion 'IPv4' -Primary $false
echo "ipCfg: "$ipCfg
$backendSubnet = Get-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName -VirtualNetwork $vnet
echo "backendSubnet: "$backendSubnet
$vmss = Get-AzureRmVmss -ResourceGroupName resourcegroup-confluence-jira-datacenter -VMScaleSetName confcluster
echo "vmss: "$vmss
Add-AzureRmVmssNetworkInterfaceConfiguration -Name $backendSubnet -Primary $false -IPConfiguration $ipCfg -VirtualMachineScaleSet $vmss
$vmss = Get-AzureRmVmss -ResourceGroupName resourcegroup-confluence-jira-datacenter -VMScaleSetName confcluster
$Nic = Get-AzureRmNetworkInterface -ResourceGroupName "resourcegroup-confluence-jira-datacenter" -VirtualMachineScaleSetName 'confcluster'
echo "Nic: "$Nic
$ipconfig_interlink = New-AzureRmNetworkInterfaceIpConfig -Name "ipconfig-conf-jira-interlink" -Subnet $backendSubnetConfig -PrivateIpAddress "10.0.4.20"
Add-AzureRmNetworkInterfaceIpConfig -Name $ipconfig_interlink.Name -Subnet $backendSubnetConfig -NetworkInterface $Nic
Set-AzureRmNetworkInterfaceIpConfig -Name $ipconfig_interlink.Name -PrivateIpAddress 10.0.4.20 -Subnet $backendSubnetConfig -NetworkInterface $Nic
$Nic = Get-AzureRmNetworkInterface -ResourceGroupName "resourcegroup-confluence-jira-datacenter" -VirtualMachineScaleSetName 'confcluster'
echo "Nic: "$Nic
Set-AzureRmNetworkInterface -NetworkInterface $Nic
Update-AzureRmVmss -ResourceGroupName "resourcegroup-confluence-jira-datacenter" -VMScaleSetName "confcluster" -VirtualMachineScaleSet $vmss
但是我遇到了错误
Set-AzureRmNetworkInterface : Resource '{0}' not found In X:\JIRA_Confluence_Migration\PowerShell\network-interfaces-azure-same-vnet.ps1:67 Zeichen:1 + Set-AzureRmNetworkInterface -NetworkInterface $Nic + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [Set-AzureRmNetworkInterface], ArgumentException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Network.SetAzureNetworkInterfaceCommand on Set-AzureRmNetworkInterface.
有人知道问题出在哪里吗?
我怀疑它正在寻找 NIC 本身的标识符,而不是对象。尝试:
Set-AzureRmNetworkInterface -NetworkInterface $Nic.Id
对于您的问题,您只需更改如下命令即可:
$Nic | Set-AzureRmNetworkInterface
然后它就可以正常工作了。
但是正如我在您的脚本中看到的那样,您只需获取网络接口然后进行设置,无需任何更改。如果是这样,该命令不会产生任何影响。您可以看一下命令示例 Set-AzureRmNetworkInterface.
更新
根据另一个测试,有一点需要重点关注。 Azure VM 规模集实例与 VM 不同。您无法在 VMSS 所在的组中找到实例的网络接口。所有实例都是从相同的配置创建的,网络接口也是如此。如错误所示,找不到资源。
你可以看看How do I specify a range of private IP addresses to use for static private IP address allocation的问题。所以我认为你想通过命令 Set-AzureRmNetworkInterface
.
正如你上一个问题,你可以设置VMSS的网络配置,这是VMSS的正确方法。