virtuallyGhetto Automated NSX-T 2.0 Lab Deployment Gotchas

I was very excited when William Lam develop an automated NSX-T 2.0 Lab deployment and I always wanted to try it out. I had tried to install NSX-T 2.0 manually couple of weeks back and I know its quite painful to install it so since there is an automated way of doing it, its going to save me lotsa time. However, its not so straight forward to use William script whole sale and below I am going to list a few things to be taken note of. These were what I have experienced over the last 3 days of troubleshooting.


A few things to note here

  • I was using PowerCLI 6.3.0. PowerCLI need to be updated due to the new cmdlets for NSX-T. Since 6.5.1 onwards, the way to upgrade the powercli is very different. I followed the instructions here. However, I was having some issues on the Install-Module. Went some googling and finally found out that you will need to install PackageManagement_x64.exe
  • Once the package management powershell modules are installed, you can continue with the instructions such as Install-Module -Name VMware.PowerCLI
  • With the latest version of PowerCLI, we can run the script. The script requires you to have a vcenter, so therefore since my host is a standalone esxi, I need to install a vCenter. I chosen 6.5U2 VCSA and I use the cli script to install.
  • First time using the script, I used VSS for the network for the new VCSA and NSX-T Manager, since like the cmdlets are not able to find the virtual portgroup. Once I changed to VDS, the script works.

    $VMCluster = “Primp-Cluster”
    $VirtualSwitchType = “VDS” # VSS or VDS
    $VMNetwork = “dv-access333-dev”
    $VMDatastore = “himalaya-local-SATA-dc3500-1”
    $VMNetmask = “”
    $VMGateway = “”
    $VMDNS = “”
    $VMNTP = “”
    $VMPassword = “VMware1!”
    $VMDomain = “”
    $VMSyslog = “”

    Applicable to Nested ESXi only

    $VMSSH = “true” $VMVMFS = “false”

  • Some network issues such as reverse DNS not being set up. Undecided to use existing management subnet or create another new subnet and since the ESXi host is hosting some other VMs, I had the script trying to connect to existing vcenters and hosts. Lesson Learnt: try not to use the same IPs as the existing Lab setup to prevent any confusion.

  • Although my vCenter is 6.5U2 but my ESXi host is still in 6.0U2. When running the portion of the script where is using PutUsbScanCodes()I got an error of input argument. I suspect it got to do with the ESXi host, and therefore I went to try the PutUsbScanCodes() on a recent 6.5U2 vCenter and 6.5U2 host using the script here, and true enough the PubUsbScanCodes() works perfectly. So afterwhich, I went back to update the 6.0U2 host to 6.5U2 and confirm that the PutUsbScanCodes() works correctly. *