gpt4 book ai didi

azure - 将 IP 配置添加到现有虚拟机的 NIC 时出现问题

转载 作者:行者123 更新时间:2023-12-03 03:51:38 27 4
gpt4 key购买 nike

我有一个虚拟机网卡,其中添加了一个 IP(主)。我正在尝试找到一种方法,向 NIC 添加更多 IP。我正在使用一段代码,它会抛出一个错误。

最终的解决方案实际上应该让我向 NIC 添加 4 个附加 IP,并更新第一个主要 Ip,并将 dns ip 更新到 NIC。

抛出错误:nic1-test-ipConfig 无法删除。不支持删除和重命名主 IP 配置 状态代码:400 ReasonPhrase:错误请求 错误代码:IpConfigDeleteNotSupported 错误消息:无法删除 IP 配置 ProdNuma1-nic1-test-ipConfig。

$vnet = Get-AzVirtualNetwork -Name "vnet" -ResourceGroupName "rg"
$subnet1 = Get-AzVirtualNetworkSubnetConfig -Name "sn" -VirtualNetwork $vnet
$location="westcentralus"
$vm="test"

#Adding IP's to ->NIC1
$ipc11 = New-AzNetworkInterfaceIpConfig -Name "ipconfig1" -PrivateIpAddress "10.64.13.10" -Primary -Subnet $subnet1
$ipc12 = New-AzNetworkInterfaceIpConfig -Name "ipconfig2" -PrivateIpAddress "10.64.13.11" -Subnet $subnet1
$ipc13 = New-AzNetworkInterfaceIpConfig -Name "ipconfig3" -PrivateIpAddress "10.64.13.12" -Subnet $subnet1
$ipc14 = New-AzNetworkInterfaceIpConfig -Name "ipconfig4" -PrivateIpAddress "10.64.13.13" -Subnet $subnet1
$ipc15 = New-AzNetworkInterfaceIpConfig -Name "ipconfig5" -PrivateIpAddress "10.64.13.14" -Subnet $subnet1


$NIC1 = New-AzNetworkInterface -Name "nic1-test" -ResourceGroupName "rg" -force -Location $location -IpConfiguration $ipc12,$ipc13,$ipc14,$ipc15 -DnsServer "10.64.2.00","10.64.0.01"

最佳答案

由于 NIC 已存在,您应该使用 Set-AzNetworkInterfaceIpConfig 更新 ipconfig1 ,然后用 Add-AzNetworkInterfaceIpConfig 添加其他的。然后你可以用 Set-AzNetworkInterface 更新网卡.

$vnet = Get-AzVirtualNetwork -Name "vnet" -ResourceGroupName "rg"
$subnet1 = Get-AzVirtualNetworkSubnetConfig -Name "sn" -VirtualNetwork $vnet

$vm = Get-AzVM -Name "vm" -ResourceGroupName "rg"

$nicName = $vm.NetworkProfile.NetworkInterfaces[0].Id.Split("/")[-1]

$nic = Get-AzNetworkInterface -Name $nicName -ResourceGroupName "rg"

$nic | Set-AzNetworkInterfaceIpConfig -Name "ipconfig1" -PrivateIpAddress "10.64.13.10" -Primary -Subnet $subnet1
$nic | Add-AzNetworkInterfaceIpConfig -Name "ipconfig2" -PrivateIpAddress "10.64.13.11" -Subnet $subnet1
$nic | Add-AzNetworkInterfaceIpConfig -Name "ipconfig3" -PrivateIpAddress "10.64.13.12" -Subnet $subnet1
$nic | Add-AzNetworkInterfaceIpConfig -Name "ipconfig4" -PrivateIpAddress "10.64.13.13" -Subnet $subnet1
$nic | Add-AzNetworkInterfaceIpConfig -Name "ipconfig5" -PrivateIpAddress "10.64.13.14" -Subnet $subnet1

$nic | Set-AzNetworkInterface

如果您有许多 NIC IP 配置要添加,您可以使用哈希表数组并利用 splatting。请参阅about_Splatting了解更多信息。

$secondaryIpConfigs = @(
@{
Name = "ipconfig1"
PrivateIpAddress = "10.64.13.10"
Subnet = $subnet1
Primary = $true
},
@{
Name = "ipconfig2"
PrivateIpAddress = "10.64.13.11"
Subnet = $subnet1
},
@{
Name = "ipconfig3"
PrivateIpAddress = "10.64.13.12"
Subnet = $subnet1
},
@{
Name = "ipconfig4"
PrivateIpAddress = "10.64.13.13"
Subnet = $subnet1
},
@{
Name = "ipconfig5"
PrivateIpAddress = "10.64.13.14"
Subnet = $subnet1
}
)

foreach ($ipconfig in $secondaryIpConfigs) {
$nic | Add-AzNetworkInterfaceIpConfig @ipconfig
}

$nic | Set-AzNetworkInterface

但是,如果 ipconfig 已存在,Add-AzNetworkInterfaceIpConfig 将引发错误。您可以使用Get-AzNetworkInterfaceIpConfig首先检查 ipconfig 是否存在,并相应地添加/更新。为了确保程序在未找到 ipconfig 时不会立即抛出错误,我们可以使用 -ErrorAction SilentlyContinue

foreach ($ipconfig in $secondaryIpConfigs) {

if ($null -eq (Get-AzNetworkInterfaceIpConfig `
-Name $ipconfig.Name `
-NetworkInterface $nic `
-ErrorAction SilentlyContinue)) {

$nic | Add-AzNetworkInterfaceIpConfig @ipconfig
}
else {
$nic | Set-AzNetworkInterfaceIpConfig @ipconfig
}
}

$nic | Set-AzNetworkInterface

关于azure - 将 IP 配置添加到现有虚拟机的 NIC 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66501891/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com