我有一个具有入站NAT规则的现有Azure前端负载均衡器。我想将这些NAT规则的目标/目标大量更改为新的目标服务器。
我目前构建了一个脚本,该脚本从LB获取所有NAT规则,然后对其进行迭代,然后尝试将它们添加到新服务器的NIC。我尝试过和不从旧服务器的NIC删除NAT规则。无论哪种方法,该方法都将返回false且不应用任何更改。
#Set Variables
#subscription ID
$subscription = "value"
#the name of the old NIC that has the LB rules
$OldNicName = "old_nic"
#the name of the NIC to be attached to the LB rules
$NewNicName = "new_nic"
#name of the loadbalancer
$lbname = "my_lb"
#Set Active Subscription
Set-AzContext -SubscriptionId $subscription
#Get the loadbalancer
$lb = Get-AzLoadBalancer -Name $lbname
#Get the old firewall interface/NIC
$OldNic = Get-AzNetworkInterface -Name $OldNicName
#Get the target firewall interface/NIC
$NewNic = Get-AzNetworkInterface -Name $NewNicName
#Attach NAT rules to the NIC
$lb.InboundNatRules | ForEach-Object -Process {$OldNic.IpConfigurations[0].LoadBalancerInboundNatRules.Remove($_); $NewNic.IpConfigurations[0].LoadBalancerInboundNatRules.Add($_)}
#Apply the configuration and reload the NIC
$OldNic | Set-AzNetworkInterface
$NewNic | Set-AzNetworkInterface
我希望每个入站NAT规则现在都与新的NIC / VM关联,但是目前,上面的Remove()和Add()函数都返回FALSE。
答案 0 :(得分:0)
对于您的问题,您想要将这些NAT规则的目标/目标大量更改为新的目标服务器。与VM网络接口相关联并在接口IP配置中设置的NAT规则。因此,您需要使用两个PowerShell命令Set-AzNetworkInterfaceIpConfig
和Set-AzNetworkInterface
来实现您的目的。脚本如下:
# Set Variables
# subscription ID
$subscription = "value"
# the name of the old NIC that has the LB rules
$OldNicName = "old_nic"
# the name of the NIC to be attached to the LB rules
$NewNicName = "new_nic"
# name of the loadbalancer
$lbname = "my_lb"
# assume all the resources in the same group
$groupname = "group_name"
Set-AzContext -SubscriptionId $subscription
# remove the NAT rules from the old NIC
$oldNic = Get-AzNetworkInterface -ResourceGroupName $groupname -Name $OldNicName
$list = @() # this is a empty array
Set-AzNetworkInterfaceIpConfig -Name ipconfig1 -NetworkInterface $oldNic -LoadBalancerInboundNatRule $list
$oldNic | Set-AzNetworkInterface
# associate the NAT rules to the new NIC
$newNic = Get-AzNetworkInterface -ResourceGroupName $groupname -Name $NewNicName
$lb = Get-AzLoadBalancer -ResourceGroupName $groupname -Name $lbname
$NatRules = Get-AzLoadBalancerInboundNatRuleConfig -LoadBalancer $lb
Set-AzNetworkInterfaceIpConfig -Name ipconfig1 -NetworkInterface $newNic -LoadBalancerInboundNatRule $NatRules
$newNic | Set-AzNetworkInterface