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???
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
)
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
)