-
Notifications
You must be signed in to change notification settings - Fork 0
/
299Plus-LBRules-for-VMSS.ps1
71 lines (52 loc) · 3.19 KB
/
299Plus-LBRules-for-VMSS.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#------------------------------------------------------------------------------
#
#
# THIS CODE AND ANY ASSOCIATED INFORMATION ARE PROVIDED “AS IS” WITHOUT
# WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
# LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS
# FOR A PARTICULAR PURPOSE. THE ENTIRE RISK OF USE, INABILITY TO USE, OR
# RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.
#
#------------------------------------------------------------------------------
#Please Note: Make sure that you have taken the Backup of VMSS, data, and the configuration of the VMSS as well.
#Steps:
#1. Create an empty Load Balancer Backend pool.
#2. Run the PowerShell commands shared later in this mail to add the second IP Config to the VMSS.
#3. Stop the VMSS
#4. Update the VMSS Manually from Portal. <<< Due to some reasons the Update VMSS command was not working as expected.
#5. Start the VMSS
#6. Update the LB
#7. Create the new LB Rules, which will be associated to the New IP Config and the New NICs created in the Current VMSS.
#PowerShell Commands (you have to change the values as per your requirements):
#========================================================
# Getting LB and VNET Details
$lb = Get-AzureRmLoadBalancer -ResourceGroupName LB -Name vmss300lb
# Creating the empty backend Pool for the new VMSS IP Config Profile.
Add-AzureRmLoadBalancerBackendAddressPoolConfig -LoadBalancer $lb -Name pool2
$lb | Set-AzureRmLoadBalancer
# Getting the LB details
$frontendIP = Get-AzureRmLoadBalancerFrontendIpConfig -Name LoadBalancerFrontEnd -LoadBalancer $lb
$backendPool = Get-AzureRmLoadBalancerBackendAddressPoolConfig -LoadBalancer $lb -Name bepool
$backendPool2 = Get-AzureRmLoadBalancerBackendAddressPoolConfig -LoadBalancer $lb -Name pool2
$probe = Get-AzureRmLoadBalancerProbeConfig -LoadBalancer $lb -Name tcpprobe
$vnet = get-AzureRmVirtualNetwork -Name lb1 -ResourceGroupName lb
# VMSS Part ##################
$vmss= Get-AzureRmVmss -ResourceGroupName "lb" -Name "vmss300"
# 2nd IP Config object
$ipconf = New-AzureRmVmssIpConfig –Name "SECONDIPCONFIG" -LoadBalancerBackendAddressPoolsId $lb.BackendAddressPools.id[1] -SubnetId $vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].IpConfigurations[0].Subnet.Id
# Adding 2nd NIC
Add-AzureRmVmssNetworkInterfaceConfiguration -VirtualMachineScaleSet $VMSS -Name "NIC2" -Primary $False -IPConfiguration $ipconf
# Stop VMSS
Stop-AzureRmVmss -ResourceGroupName LB -VMScaleSetName vmss300
# Update the model of the scale set with the new configuration in the local PowerShell object
update-AzureRmVmss -ResourceGroupName "LB" -Name "VMSS300" -VirtualMachineScaleSet $vmss
###Update VMSS Instance Manually###
$msg = "Update VMSS Instance Manually"
Out-GridView -InputObject $msg -OutputMode Single
# Start VMSS
Start-AzureRmVmss -ResourceGroupName LB -VMScaleSetName vmss300
# To view the IP Configuration details
$vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations
# Updating LB
$lb | Set-AzureRmLoadBalancer
#========================================================