VMware Cloud Community
mavelite
Enthusiast
Enthusiast
Jump to solution

Creating LoadBalancer

I'm on the last bit of my full vCD automation effort but I'm running into errors with the creation of the Load Balancer. I've put together the following but it's throwing errors when i try to deploy the LB:

$LoadBalancer = New-Object VMware.VimAutomation.Cloud.Views.LoadBalancerService

$LoadBalancer.IsEnabled = $true

$LoadBalancer.VirtualServer = New-Object VMware.VimAutomation.Cloud.Views.LoadBalancerVirtualServer

$LoadBalancer.VirtualServer[0].Name = "vCloud-HTTPS-VIP"

$LoadBalancer.VirtualServer[0].IsEnabled = $true

$LoadBalancer.VirtualServer[0].Description = "Virtual IP connecting VMNet to vCloud Web Client"

$LoadBalancer.VirtualServer[0].IPAddress = $VMNet_HTTP_VIP

$LoadBalancer.VirtualServer[0].Interface = $VMNetExternalNetwork.href

$LoadBalancer.Pool = New-Object VMware.VimAutomation.Cloud.Views.LoadBalancerPool

$LoadBalancer.Pool[0].Name = "vCloud HTTP Pool"

$LoadBalancer.Pool[0].Description = "vCloud HTTP Pool of IP's"

$LoadBalancer.Pool[0].Id = "pool-1"

$LoadBalancer.Pool[0].Member = New-Object VMware.VimAutomation.Cloud.Views.LBPoolMember

$LoadBalancer.Pool[0].Member += New-Object VMware.VimAutomation.Cloud.Views.LBPoolMember

$LoadBalancer.Pool[0].Member[0].IpAddress = $vCloud_CellA_HTTP

$LoadBalancer.Pool[0].Member[0].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].Member[0].ServicePort += New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].Member[0].ServicePort[0].Port = "443"

$LoadBalancer.Pool[0].Member[0].ServicePort[0].Protocol = "HTTPS"

$LoadBalancer.Pool[0].Member[0].ServicePort[1].Port = "80"

$LoadBalancer.Pool[0].Member[0].ServicePort[1].Protocol = "HTTP"

$LoadBalancer.Pool[0].Member[1].IpAddress = $vCloud_CellB_HTTP

$LoadBalancer.Pool[0].Member[1].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].Member[1].ServicePort += New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].Member[1].ServicePort[0].Port = "443"

$LoadBalancer.Pool[0].Member[1].ServicePort[0].Protocol = "HTTPS"

$LoadBalancer.Pool[0].Member[1].ServicePort[1].Port = "80"

$LoadBalancer.Pool[0].Member[1].ServicePort[1].Protocol = "HTTP"

$edgegateway.ConfigureServices($LoadBalancer)

PowerCLI C:\> .\load_balancer.ps1

Exception calling "ConfigureServices" with "1" argument(s): "Required element

not found : Pool"

At C:\load_balancer.ps1:44 char:1

+ $edgegateway.ConfigureServices($LoadBalancer)

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException

    + FullyQualifiedErrorId : CloudException

Anyone had luck deploying the LoadBalancer using powercli???

0 Kudos
1 Solution

Accepted Solutions
mavelite
Enthusiast
Enthusiast
Jump to solution

Was able to finally solve this, posted to my blog:

http://www.justavmwblog.com/2015/06/powercli-create-load-balancer/

#Configuring the LB on the Edge

$edgegateway = Search-Cloud -QueryType EdgeGateway -name $orgName | Get-CIView

#Enable LB Service

$LoadBalancer = New-Object VMware.VimAutomation.Cloud.Views.LoadBalancerService

$LoadBalancer.IsEnabled = $true

#Creation of HTTP/S IP Pool Object

$LoadBalancer.Pool = New-Object VMware.VimAutomation.Cloud.Views.LoadBalancerPool

$LoadBalancer.Pool += New-Object VMware.VimAutomation.Cloud.Views.LoadBalancerPool

$LoadBalancer.Pool[0].Name = "vCloud-HTTP-Pool"

$LoadBalancer.Pool[0].Description = "vCloud HTTP Pool of IPs"

$LoadBalancer.Pool[0].Id = "1"

#Creation of Console IP Pool Object

$LoadBalancer.Pool[1].Name = "vCloud-Console-Pool"

$LoadBalancer.Pool[1].Description = "vCloud Console Pool of IPs"

$LoadBalancer.Pool[1].Id = "2"

#Create HTTPS Health Check for Pool

$LoadBalancer.Pool[0].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].ServicePort += New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].ServicePort[0].Port = "443"

$LoadBalancer.Pool[0].ServicePort[0].IsEnabled = $true

$LoadBalancer.Pool[0].ServicePort[0].HealthCheckPort = "443"

$LoadBalancer.Pool[0].ServicePort[0].Protocol = "HTTPS"

$LoadBalancer.Pool[0].ServicePort[0].Algorithm = "ROUND_ROBIN"

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck = New-Object VMware.VimAutomation.Cloud.Views.LBPoolHealthCheck

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck[0].Mode = "SSL"

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck[0].Interval = "10"

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck[0].Timeout = "15"

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck[0].HealthThreshold = "2"

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck[0].UnHealthThreshold = "3"

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck[0].Uri = "/cloud/server_status"

#Create HTTP Health Check for Pool

$LoadBalancer.Pool[0].ServicePort[1].Port = "80"

$LoadBalancer.Pool[0].ServicePort[1].IsEnabled = $true

$LoadBalancer.Pool[0].ServicePort[1].HealthCheckPort = "80"

$LoadBalancer.Pool[0].ServicePort[1].Protocol = "HTTP"

$LoadBalancer.Pool[0].ServicePort[1].Algorithm = "ROUND_ROBIN"

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck = New-Object VMware.VimAutomation.Cloud.Views.LBPoolHealthCheck

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck[0].Mode = "HTTP"

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck[0].Interval = "10"

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck[0].Timeout = "15"

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck[0].HealthThreshold = "2"

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck[0].UnHealthThreshold = "3"

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck[0].Uri = "/cloud/server_status"

#Create Console Health Check for Pool

$LoadBalancer.Pool[1].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[1].ServicePort[0].Port = "443"

$LoadBalancer.Pool[1].ServicePort[0].IsEnabled = $true

$LoadBalancer.Pool[1].ServicePort[0].HealthCheckPort = "443"

$LoadBalancer.Pool[1].ServicePort[0].Protocol = "TCP"

$LoadBalancer.Pool[1].ServicePort[0].Algorithm = "ROUND_ROBIN"

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck = New-Object VMware.VimAutomation.Cloud.Views.LBPoolHealthCheck

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck[0].Mode = "TCP"

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck[0].Interval = "10"

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck[0].Timeout = "15"

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck[0].HealthThreshold = "2"

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck[0].UnHealthThreshold = "3"

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck[0].Uri = "/"

#Create HTTP/S Pool Member #1

$LoadBalancer.Pool[0].Member = New-Object VMware.VimAutomation.Cloud.Views.LBPoolMember

$LoadBalancer.Pool[0].Member += New-Object VMware.VimAutomation.Cloud.Views.LBPoolMember

$LoadBalancer.Pool[0].Member[0].IpAddress = $vCloud_CellA_HTTP

$LoadBalancer.Pool[0].Member[0].Weight = 1

$LoadBalancer.Pool[0].Member[0].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].Member[0].ServicePort += New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].Member[0].ServicePort[0].Port = "443"

$LoadBalancer.Pool[0].Member[0].ServicePort[0].HealthCheckPort = "443"

$LoadBalancer.Pool[0].Member[0].ServicePort[0].Protocol = "HTTPS"

$LoadBalancer.Pool[0].Member[0].ServicePort[1].Port = "80"

$LoadBalancer.Pool[0].Member[0].ServicePort[1].HealthCheckPort = "80"

$LoadBalancer.Pool[0].Member[0].ServicePort[1].Protocol = "HTTP"

#Create HTTP/S Pool Member #2

$LoadBalancer.Pool[0].Member[1].IpAddress = $vCloud_CellB_HTTP

$LoadBalancer.Pool[0].Member[1].Weight = 1

$LoadBalancer.Pool[0].Member[1].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].Member[1].ServicePort += New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].Member[1].ServicePort[0].Port = "443"

$LoadBalancer.Pool[0].Member[1].ServicePort[0].HealthCheckPort = "443"

$LoadBalancer.Pool[0].Member[1].ServicePort[0].Protocol = "HTTPS"

$LoadBalancer.Pool[0].Member[1].ServicePort[1].Port = "80"

$LoadBalancer.Pool[0].Member[1].ServicePort[1].HealthCheckPort = "80"

$LoadBalancer.Pool[0].Member[1].ServicePort[1].Protocol = "HTTP"

#Create Console Pool Member #1

$LoadBalancer.Pool[1].Member = New-Object VMware.VimAutomation.Cloud.Views.LBPoolMember

$LoadBalancer.Pool[1].Member += New-Object VMware.VimAutomation.Cloud.Views.LBPoolMember

$LoadBalancer.Pool[1].Member[0].IpAddress = $vCloud_CellA_Console

$LoadBalancer.Pool[1].Member[0].Weight = 1

$LoadBalancer.Pool[1].Member[0].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[1].Member[0].ServicePort[0].Port = "443"

$LoadBalancer.Pool[1].Member[0].ServicePort[0].HealthCheckPort = "443"

$LoadBalancer.Pool[1].Member[0].ServicePort[0].Protocol = "TCP"

#Create Console Pool Member #2

$LoadBalancer.Pool[1].Member[1].IpAddress = $vCloud_CellB_Console

$LoadBalancer.Pool[1].Member[1].Weight = 1

$LoadBalancer.Pool[1].Member[1].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[1].Member[1].ServicePort[0].Port = "443"

$LoadBalancer.Pool[1].Member[1].ServicePort[0].HealthCheckPort = "443"

$LoadBalancer.Pool[1].Member[1].ServicePort[0].Protocol = "TCP"

#Instantiate the Virtual Server Object Array

$LoadBalancer.VirtualServer = New-Object VMware.VimAutomation.Cloud.Views.LoadBalancerVirtualServer

$LoadBalancer.VirtualServer += New-Object VMware.VimAutomation.Cloud.Views.LoadBalancerVirtualServer

#Create Virtual Server #1 for HTTP/S

$LoadBalancer.VirtualServer[0].Name = "vCloud-HTTPS-VIP"

$LoadBalancer.VirtualServer[0].IsEnabled = $true

$LoadBalancer.VirtualServer[0].IPAddress = $VMNetExTernalBlock[1]

$LoadBalancer.VirtualServer[0].Interface = $VMNetExternalNetwork.href

$LoadBalancer.VirtualServer[0].Description = "Virtual IP connecting VMNet to vCloud Web Client"

$LoadBalancer.VirtualServer[0].ServiceProfile = New-Object VMware.VimAutomation.Cloud.Views.LBVirtualServerServiceProfile

$LoadBalancer.VirtualServer[0].ServiceProfile[0].isEnabled = $true

$LoadBalancer.VirtualServer[0].ServiceProfile[0].Protocol = "HTTPS"

$LoadBalancer.VirtualServer[0].ServiceProfile[0].Port = "443"

$LoadBalancer.VirtualServer[0].ServiceProfile[0].Persistence = New-Object VMware.VimAutomation.Cloud.Views.LBPersistence

$LoadBalancer.VirtualServer[0].ServiceProfile[0].Persistence.Method = "SSL_SESSION_ID"

$LoadBalancer.VirtualServer[0].Logging = $true

$LoadBalancer.VirtualServer[0].Pool = "vCloud-HTTP-Pool"

#Create Virtual Server #2 for Console

$LoadBalancer.VirtualServer[1].Name = "vCloud-Console-VIP"

$LoadBalancer.VirtualServer[1].IsEnabled = $true

$LoadBalancer.VirtualServer[1].IPAddress = $VMNetExTernalBlock[2]

$LoadBalancer.VirtualServer[1].Interface = $VMNetExternalNetwork.href

$LoadBalancer.VirtualServer[1].Description = "Virtual IP connecting VMNet to vCloud Console"

$LoadBalancer.VirtualServer[1].ServiceProfile = New-Object VMware.VimAutomation.Cloud.Views.LBVirtualServerServiceProfile

$LoadBalancer.VirtualServer[1].ServiceProfile[0].isEnabled = $true

$LoadBalancer.VirtualServer[1].ServiceProfile[0].Protocol = "TCP"

$LoadBalancer.VirtualServer[1].ServiceProfile[0].Port = "443"

$LoadBalancer.VirtualServer[1].ServiceProfile[0].Persistence = New-Object VMware.VimAutomation.Cloud.Views.LBPersistence

$LoadBalancer.VirtualServer[1].ServiceProfile[0].Persistence.Method = $null

$LoadBalancer.VirtualServer[1].Logging = $true

$LoadBalancer.VirtualServer[1].Pool = "vCloud-Console-Pool"

$edgegateway.ConfigureServices($LoadBalancer)

View solution in original post

0 Kudos
1 Reply
mavelite
Enthusiast
Enthusiast
Jump to solution

Was able to finally solve this, posted to my blog:

http://www.justavmwblog.com/2015/06/powercli-create-load-balancer/

#Configuring the LB on the Edge

$edgegateway = Search-Cloud -QueryType EdgeGateway -name $orgName | Get-CIView

#Enable LB Service

$LoadBalancer = New-Object VMware.VimAutomation.Cloud.Views.LoadBalancerService

$LoadBalancer.IsEnabled = $true

#Creation of HTTP/S IP Pool Object

$LoadBalancer.Pool = New-Object VMware.VimAutomation.Cloud.Views.LoadBalancerPool

$LoadBalancer.Pool += New-Object VMware.VimAutomation.Cloud.Views.LoadBalancerPool

$LoadBalancer.Pool[0].Name = "vCloud-HTTP-Pool"

$LoadBalancer.Pool[0].Description = "vCloud HTTP Pool of IPs"

$LoadBalancer.Pool[0].Id = "1"

#Creation of Console IP Pool Object

$LoadBalancer.Pool[1].Name = "vCloud-Console-Pool"

$LoadBalancer.Pool[1].Description = "vCloud Console Pool of IPs"

$LoadBalancer.Pool[1].Id = "2"

#Create HTTPS Health Check for Pool

$LoadBalancer.Pool[0].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].ServicePort += New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].ServicePort[0].Port = "443"

$LoadBalancer.Pool[0].ServicePort[0].IsEnabled = $true

$LoadBalancer.Pool[0].ServicePort[0].HealthCheckPort = "443"

$LoadBalancer.Pool[0].ServicePort[0].Protocol = "HTTPS"

$LoadBalancer.Pool[0].ServicePort[0].Algorithm = "ROUND_ROBIN"

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck = New-Object VMware.VimAutomation.Cloud.Views.LBPoolHealthCheck

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck[0].Mode = "SSL"

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck[0].Interval = "10"

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck[0].Timeout = "15"

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck[0].HealthThreshold = "2"

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck[0].UnHealthThreshold = "3"

$LoadBalancer.Pool[0].ServicePort[0].HealthCheck[0].Uri = "/cloud/server_status"

#Create HTTP Health Check for Pool

$LoadBalancer.Pool[0].ServicePort[1].Port = "80"

$LoadBalancer.Pool[0].ServicePort[1].IsEnabled = $true

$LoadBalancer.Pool[0].ServicePort[1].HealthCheckPort = "80"

$LoadBalancer.Pool[0].ServicePort[1].Protocol = "HTTP"

$LoadBalancer.Pool[0].ServicePort[1].Algorithm = "ROUND_ROBIN"

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck = New-Object VMware.VimAutomation.Cloud.Views.LBPoolHealthCheck

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck[0].Mode = "HTTP"

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck[0].Interval = "10"

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck[0].Timeout = "15"

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck[0].HealthThreshold = "2"

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck[0].UnHealthThreshold = "3"

$LoadBalancer.Pool[0].ServicePort[1].HealthCheck[0].Uri = "/cloud/server_status"

#Create Console Health Check for Pool

$LoadBalancer.Pool[1].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[1].ServicePort[0].Port = "443"

$LoadBalancer.Pool[1].ServicePort[0].IsEnabled = $true

$LoadBalancer.Pool[1].ServicePort[0].HealthCheckPort = "443"

$LoadBalancer.Pool[1].ServicePort[0].Protocol = "TCP"

$LoadBalancer.Pool[1].ServicePort[0].Algorithm = "ROUND_ROBIN"

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck = New-Object VMware.VimAutomation.Cloud.Views.LBPoolHealthCheck

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck[0].Mode = "TCP"

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck[0].Interval = "10"

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck[0].Timeout = "15"

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck[0].HealthThreshold = "2"

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck[0].UnHealthThreshold = "3"

$LoadBalancer.Pool[1].ServicePort[0].HealthCheck[0].Uri = "/"

#Create HTTP/S Pool Member #1

$LoadBalancer.Pool[0].Member = New-Object VMware.VimAutomation.Cloud.Views.LBPoolMember

$LoadBalancer.Pool[0].Member += New-Object VMware.VimAutomation.Cloud.Views.LBPoolMember

$LoadBalancer.Pool[0].Member[0].IpAddress = $vCloud_CellA_HTTP

$LoadBalancer.Pool[0].Member[0].Weight = 1

$LoadBalancer.Pool[0].Member[0].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].Member[0].ServicePort += New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].Member[0].ServicePort[0].Port = "443"

$LoadBalancer.Pool[0].Member[0].ServicePort[0].HealthCheckPort = "443"

$LoadBalancer.Pool[0].Member[0].ServicePort[0].Protocol = "HTTPS"

$LoadBalancer.Pool[0].Member[0].ServicePort[1].Port = "80"

$LoadBalancer.Pool[0].Member[0].ServicePort[1].HealthCheckPort = "80"

$LoadBalancer.Pool[0].Member[0].ServicePort[1].Protocol = "HTTP"

#Create HTTP/S Pool Member #2

$LoadBalancer.Pool[0].Member[1].IpAddress = $vCloud_CellB_HTTP

$LoadBalancer.Pool[0].Member[1].Weight = 1

$LoadBalancer.Pool[0].Member[1].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].Member[1].ServicePort += New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[0].Member[1].ServicePort[0].Port = "443"

$LoadBalancer.Pool[0].Member[1].ServicePort[0].HealthCheckPort = "443"

$LoadBalancer.Pool[0].Member[1].ServicePort[0].Protocol = "HTTPS"

$LoadBalancer.Pool[0].Member[1].ServicePort[1].Port = "80"

$LoadBalancer.Pool[0].Member[1].ServicePort[1].HealthCheckPort = "80"

$LoadBalancer.Pool[0].Member[1].ServicePort[1].Protocol = "HTTP"

#Create Console Pool Member #1

$LoadBalancer.Pool[1].Member = New-Object VMware.VimAutomation.Cloud.Views.LBPoolMember

$LoadBalancer.Pool[1].Member += New-Object VMware.VimAutomation.Cloud.Views.LBPoolMember

$LoadBalancer.Pool[1].Member[0].IpAddress = $vCloud_CellA_Console

$LoadBalancer.Pool[1].Member[0].Weight = 1

$LoadBalancer.Pool[1].Member[0].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[1].Member[0].ServicePort[0].Port = "443"

$LoadBalancer.Pool[1].Member[0].ServicePort[0].HealthCheckPort = "443"

$LoadBalancer.Pool[1].Member[0].ServicePort[0].Protocol = "TCP"

#Create Console Pool Member #2

$LoadBalancer.Pool[1].Member[1].IpAddress = $vCloud_CellB_Console

$LoadBalancer.Pool[1].Member[1].Weight = 1

$LoadBalancer.Pool[1].Member[1].ServicePort = New-Object VMware.VimAutomation.Cloud.Views.LBPoolServicePort

$LoadBalancer.Pool[1].Member[1].ServicePort[0].Port = "443"

$LoadBalancer.Pool[1].Member[1].ServicePort[0].HealthCheckPort = "443"

$LoadBalancer.Pool[1].Member[1].ServicePort[0].Protocol = "TCP"

#Instantiate the Virtual Server Object Array

$LoadBalancer.VirtualServer = New-Object VMware.VimAutomation.Cloud.Views.LoadBalancerVirtualServer

$LoadBalancer.VirtualServer += New-Object VMware.VimAutomation.Cloud.Views.LoadBalancerVirtualServer

#Create Virtual Server #1 for HTTP/S

$LoadBalancer.VirtualServer[0].Name = "vCloud-HTTPS-VIP"

$LoadBalancer.VirtualServer[0].IsEnabled = $true

$LoadBalancer.VirtualServer[0].IPAddress = $VMNetExTernalBlock[1]

$LoadBalancer.VirtualServer[0].Interface = $VMNetExternalNetwork.href

$LoadBalancer.VirtualServer[0].Description = "Virtual IP connecting VMNet to vCloud Web Client"

$LoadBalancer.VirtualServer[0].ServiceProfile = New-Object VMware.VimAutomation.Cloud.Views.LBVirtualServerServiceProfile

$LoadBalancer.VirtualServer[0].ServiceProfile[0].isEnabled = $true

$LoadBalancer.VirtualServer[0].ServiceProfile[0].Protocol = "HTTPS"

$LoadBalancer.VirtualServer[0].ServiceProfile[0].Port = "443"

$LoadBalancer.VirtualServer[0].ServiceProfile[0].Persistence = New-Object VMware.VimAutomation.Cloud.Views.LBPersistence

$LoadBalancer.VirtualServer[0].ServiceProfile[0].Persistence.Method = "SSL_SESSION_ID"

$LoadBalancer.VirtualServer[0].Logging = $true

$LoadBalancer.VirtualServer[0].Pool = "vCloud-HTTP-Pool"

#Create Virtual Server #2 for Console

$LoadBalancer.VirtualServer[1].Name = "vCloud-Console-VIP"

$LoadBalancer.VirtualServer[1].IsEnabled = $true

$LoadBalancer.VirtualServer[1].IPAddress = $VMNetExTernalBlock[2]

$LoadBalancer.VirtualServer[1].Interface = $VMNetExternalNetwork.href

$LoadBalancer.VirtualServer[1].Description = "Virtual IP connecting VMNet to vCloud Console"

$LoadBalancer.VirtualServer[1].ServiceProfile = New-Object VMware.VimAutomation.Cloud.Views.LBVirtualServerServiceProfile

$LoadBalancer.VirtualServer[1].ServiceProfile[0].isEnabled = $true

$LoadBalancer.VirtualServer[1].ServiceProfile[0].Protocol = "TCP"

$LoadBalancer.VirtualServer[1].ServiceProfile[0].Port = "443"

$LoadBalancer.VirtualServer[1].ServiceProfile[0].Persistence = New-Object VMware.VimAutomation.Cloud.Views.LBPersistence

$LoadBalancer.VirtualServer[1].ServiceProfile[0].Persistence.Method = $null

$LoadBalancer.VirtualServer[1].Logging = $true

$LoadBalancer.VirtualServer[1].Pool = "vCloud-Console-Pool"

$edgegateway.ConfigureServices($LoadBalancer)

0 Kudos