I started to install VMware vCloud Director in my new lab, as I want to be ready to test the upcoming Veeam Cloud Connect Replication v10, with its native support for this cloud management platform. One of the requirements of vCloud Director (vCD in short) is NSX, so I started with its installation. As I hit some errors, I learned how to fix them manually and automate a bit VIB deployments.
NSX Host Preparation error
NSX needs to install a couple of VIBs inside every ESXi server where it needs to be executed. Usually, this host preparation is really easy, since you can just go into the Installation part of the console, select the cluster you want to prepare, and hit Install. This is what I did, but unfortunately I encountered this error:
VIB module for agent is not installed on host <host_name> (_VCNS_184_VCCR Cluster_VMware Network Fabri)
My colleague Anthony Spiteri blogged about this same error a while ago in this blog post, so I thought that I would have been soon able to install NSX by simply applying the workaround. But for some reason, the Value kept staying Unset, no matter how many times I tried to update it as explained in Anthony’s post:
Manual Host preparation for NSX
I should have spent maybe some more time to look at my logs, but I wanted to move on in my installation, so I decided to go for the manual installation of the NSX components. The process is boring, but pretty easy and documented. And it can be automated in its different steps.
First, I need to obtain the installable VIB. The software is stored directly into the NSX Manager, and I can obtain the details by reaching this URL (in the following examples, you should replace the DNS names with your own servers):
https://nsx.cloudconnect.local/bin/vdn/nwfabric.properties
Here, I see this list of available versions:
There is a package for each supported version of vSphere. As I’m using vSphere 6.5, I need to get the last package:
https://nsx.cloudconnect.local/bin/vdn/vibs-6.2.7/6.5-4463934/vxlan.zip
Once I have obtained the zip file, I had to upload it into the vSphere cluster so that it can be used during the installation. Instead of enabling ssh on one ESXi and use SCP, or use the datastore browser, since I’m using a Windows machine, there’s an easy way using PowerCLI. If you have not installed PowerCLI yet on your machine, the installation these days is really easy and quick, as you don’t have anymore to download and run the installer, but you only need to leverage Powershell Gallery. Just run this command in a Powershell prompt:
Install-Module -Name VMware.PowerCLI
In a few moments, PowerCLI will be installed in your machine and automatically loaded each time you start Powershell.
I have a folder on my VSAN datastore where I store all my files like ISO and VIB, called “ISO”. Using powershell, I can mount this folder as a local resource inside powershell. First, I check the correct names:
Then, I use this command: Get-Datastore vsanDatastore | New-DatastoreDrive -Name vsan to mount the VSAN datastore as a local volume.
Once I have mapped this resource, I can for example list its content:
Once I’ve mapped the datastore, I can easily copy the file I need into the datastore, using this command:
Copy-DatastoreItem -Item c:\temp\vxlan.zip -Destination vsan:\ISO
Once the file is in a location that is reachable by an ESXi server, I can use it to install the ZIP file I previously downloaded. Each ESXi needs to be in maintenance mode to install the VIB; once maintenance mode is enabled, I can run this command on a shell:
esxcli software vib install -d /vmfs/volumes/vsanDatastore/ISO/vxlan.zip –force
I had to use the –force parameter since I found out that otherwise the ZIP file will complain about an unsatisfied dependency. I’m not sure what the real issue is, but with this option I was able to complete the install on all my four nodes:
After the manual installation was completed, I was able to proceed and configure VXLAN and the rest of the NSX setup in my lab.