Skip to content

Commit da2ea6a

Browse files
author
William Lam
committed
NSX-T Edge join NSX-T Management Plane
1 parent ecd107c commit da2ea6a

File tree

1 file changed

+112
-0
lines changed

1 file changed

+112
-0
lines changed
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
# Author: William Lam
2+
# Website: www.virtuallyghetto.com
3+
4+
$NSXTEdgeOVA = "C:\Users\william\Desktop\Project-Pacific\nsx-edge-3.0.0.0.0.15946012.ova"
5+
6+
# vCenter Server used to deploy NSX-T Edge
7+
$VMCluster = "Cluster-01"
8+
$VMNetwork = "SJC-CORP-NESTED-1736"
9+
$VMDatastore = "vsanDatastore"
10+
$VMNetmask = "255.255.255.0"
11+
$VMGateway = "172.17.36.253"
12+
$VMDNS = "172.17.31.5"
13+
$VMNTP = "pool.ntp.org"
14+
$VMDomain = "cpbu.corp"
15+
16+
# NSX-T Manager to add Edge to
17+
$NSXTMgrIPAddress = "172.17.36.14"
18+
$NSXTMgrUsername = "admin"
19+
$NSXTMgrPassword = "VMware1!VMware1!"
20+
21+
# NSX-T Edge Configuration
22+
$NSXTEdgeDeploymentSize = "medium"
23+
$NSXTEdgevCPU = "8" #override default size
24+
$NSXTEdgevMEM = "32" #override default size
25+
$NSXTEdgeHostnameToIPs = @{
26+
"pacific-nsx-edge-2a" = "172.17.36.15"
27+
}
28+
29+
$NSXRootPassword = "VMware1!VMware1!"
30+
$NSXAdminUsername = "admin"
31+
$NSXAdminPassword = "VMware1!VMware1!"
32+
$NSXAuditUsername = "audit"
33+
$NSXAuditPassword = "VMware1!VMware1!"
34+
$NSXSSHEnable = "false"
35+
$NSXEnableRootLogin = "true"
36+
$NSXVTEPNetwork = "Pacific-VTEP"
37+
38+
$cluster = Get-Cluster $VMCluster
39+
$datastore = Get-Datastore $VMDatastore
40+
$vmhost = $cluster | Get-VMHost | Get-Random
41+
42+
Write-Host "Connecting to NSX-T Manager ..."
43+
if(!(Connect-NsxtServer -Server $NSXTMgrIPAddress -Username $NSXTMgrUsername -Password $NSXTMgrPassword -WarningAction SilentlyContinue)) {
44+
Write-Host -ForegroundColor Red "Unable to connect to NSX-T Manager, please check the deployment"
45+
exit
46+
} else {
47+
Write-Host "Successfully logged into NSX-T Manager $NSXTMgrHostname ..."
48+
}
49+
50+
# Retrieve NSX Manager Thumbprint which will be needed later
51+
Write-Host "Retrieving NSX Manager Thumbprint ..."
52+
$nsxMgrID = ((Get-NsxtService -Name "com.vmware.nsx.cluster.nodes").list().results | where {$_.manager_role -ne $null}).id
53+
$nsxMgrCertThumbprint = (Get-NsxtService -Name "com.vmware.nsx.cluster.nodes").get($nsxMgrID).manager_role.api_listen_addr.certificate_sha256_thumbprint
54+
55+
Write-Host "Disconnecting from NSX-T Manager ..."
56+
Disconnect-NsxtServer -Confirm:$false
57+
58+
# Deploy Edges
59+
$nsxEdgeOvfConfig = Get-OvfConfiguration $NSXTEdgeOVA
60+
$NSXTEdgeHostnameToIPs.GetEnumerator() | Sort-Object -Property Value | Foreach-Object {
61+
$VMName = $_.Key
62+
$VMIPAddress = $_.Value
63+
$VMHostname = "$VMName" + "@" + $VMDomain
64+
65+
$nsxEdgeOvfConfig.DeploymentOption.Value = $NSXTEdgeDeploymentSize
66+
$nsxEdgeOvfConfig.NetworkMapping.Network_0.value = $VMNetwork
67+
$nsxEdgeOvfConfig.NetworkMapping.Network_1.value = $NSXVTEPNetwork
68+
$nsxEdgeOvfConfig.NetworkMapping.Network_2.value = $VMNetwork
69+
$nsxEdgeOvfConfig.NetworkMapping.Network_3.value = $VMNetwork
70+
71+
$nsxEdgeOvfConfig.Common.nsx_hostname.Value = $VMHostname
72+
$nsxEdgeOvfConfig.Common.nsx_ip_0.Value = $VMIPAddress
73+
$nsxEdgeOvfConfig.Common.nsx_netmask_0.Value = $VMNetmask
74+
$nsxEdgeOvfConfig.Common.nsx_gateway_0.Value = $VMGateway
75+
$nsxEdgeOvfConfig.Common.nsx_dns1_0.Value = $VMDNS
76+
$nsxEdgeOvfConfig.Common.nsx_domain_0.Value = $VMDomain
77+
$nsxEdgeOvfConfig.Common.nsx_ntp_0.Value = $VMNTP
78+
79+
$nsxEdgeOvfConfig.Common.mpUser.Value = $NSXTMgrUsername
80+
$nsxEdgeOvfConfig.Common.mpPassword.Value = $NSXTMgrPassword
81+
$nsxEdgeOvfConfig.Common.mpIp.Value = $NSXTMgrIPAddress
82+
$nsxEdgeOvfConfig.Common.mpThumbprint.Value = $nsxMgrCertThumbprint
83+
84+
if($NSXSSHEnable -eq "true") {
85+
$NSXSSHEnableVar = $true
86+
} else {
87+
$NSXSSHEnableVar = $false
88+
}
89+
$nsxEdgeOvfConfig.Common.nsx_isSSHEnabled.Value = $NSXSSHEnableVar
90+
if($NSXEnableRootLogin -eq "true") {
91+
$NSXRootPasswordVar = $true
92+
} else {
93+
$NSXRootPasswordVar = $false
94+
}
95+
$nsxEdgeOvfConfig.Common.nsx_allowSSHRootLogin.Value = $NSXRootPasswordVar
96+
97+
$nsxEdgeOvfConfig.Common.nsx_passwd_0.Value = $NSXRootPassword
98+
$nsxEdgeOvfConfig.Common.nsx_cli_username.Value = $NSXAdminUsername
99+
$nsxEdgeOvfConfig.Common.nsx_cli_passwd_0.Value = $NSXAdminPassword
100+
$nsxEdgeOvfConfig.Common.nsx_cli_audit_username.Value = $NSXAuditUsername
101+
$nsxEdgeOvfConfig.Common.nsx_cli_audit_passwd_0.Value = $NSXAuditPassword
102+
103+
Write-Host "Deploying NSX Edge VM $VMName ..."
104+
$nsxedge_vm = Import-VApp -Source $NSXTEdgeOVA -OvfConfiguration $nsxEdgeOvfConfig -Name $VMName -Location $cluster -VMHost $vmhost -Datastore $datastore -DiskStorageFormat thin
105+
106+
Write-Host "Updating vCPU Count to $NSXTEdgevCPU & vMEM to $NSXTEdgevMEM GB ..."
107+
Set-VM -Server $viConnection -VM $nsxedge_vm -NumCpu $NSXTEdgevCPU -MemoryGB $NSXTEdgevMEM -Confirm:$false
108+
109+
Write-Host "Powering On $VMName ..."
110+
$nsxedge_vm | Start-Vm -RunAsync | Out-Null
111+
}
112+

0 commit comments

Comments
 (0)