Similiar to its earlier predecessor, NSX-T also provides complete lifecycle management (LCM) of its underlying NSX components (Controllers, Edges and Managers) including the Fabric Nodes (e.g. ESXi and/or KVM hosts). Additionally, a new Upgrade Coordinator is now part of NSX-T which greatly simplifies the patching and updating of the network virtualization platform. However, for existing vSphere customers who already have a process for distributing VMware VIBs using vSphere Update Manager (VUM) and/or custom Image Profiles, being able to leverage their existing methods is quite important. This is especially true for customers or system integrators who wish to slipstream all necessary VIBs as part of their base ESXi image for initial deployment which may come in the form of an automated installation via Kickstart and/or even manual install using an ISO image.
The good news is that like NSX-V, NSX-T also supports the same set of deployment methods that customers are already familiar with. I had recently looked into this due to a few questions that I and a few other folks had during our NSX-T Bootcamp training a couple of weeks back. I also did not see anything in the existing NSX-T documentation and figure it would be useful to outline the specific steps for each of the installation methods, especially when creating a custom ESXi Image Profile using PowerCLI which requires a particular order.
Note: Auto Deploy is currently not supported with NSX-T.
Download NSX-T Offline Bundle
Option A)
The quickest way to obtain the NSX-T offline bundle which contains the 23 required NSX-T VIBs is by downloading it directly from MyVMware. This is the same place where you would download the NSX-T OVAs and you just need to select the "NSX Kernel Module for VMware ESXi 6.5" as shown in the screenshot below.
If you have already deployed NSX-T, you can also download it directly from the NSX-T Manager. Unlike NSX-V which had the VIBs directly accessible over HTTPS which was quite handy, for NSX-T, you will need to manually SCP the offline bundle from the NSX-T Manager which can be found under /repository/2.0.0.0.0.6522097/HostComponents/esx65/nsx-lcp-2.0.0.0.0.6522150-esx65.zip
Deploying NSX-T VIBs on ESXi
Option A)
Since NSX-T provides an offline bundle for all the NSX-T VIBs, customers who currently leverage vSphere Update Manager (VUM) can simply import the offline bundle and create a new base line just like they would for any other offline bundle.
Option B)
In the scenario where you may not be using VUM or more likely you are troubleshooting a deployment and require to manually install the NSX-T VIBs, you can do so by using the offline bundle.
Step 1 - Upload the NSX-T offline bundle to the ESXi host that you wish to install the VIBs.
Step 2 - Run the following command and specifying the full path to your offline bundle:
esxcli software vib install -d /tmp/nsx-lcp-2.0.0.0.0.6522150-esx65.zip
Once the VIB installation has completed, you will see a message like the one shown above stating whether or not a reboot is required. For latest 2.0 release of NSX-T, a reboot is not required.
Note: If you need to manually install a specific NSX-T VIB, you can extract the offline bundle and go into vib20 directory and access the individual VIBs. However, is it not recommended that you manually install the VIBs, especially as a particular order is required due to VIB installation dependencies. See the next section if you are interested in the VIB installation order.
Custom NSX-T Image Profile using Image Builder (PowerCLI)
Step 1 - Download both an ESXi and NSX-T offline bundle to your local desktop. In my example below, I am using the latest ESXi 6.5 Update 1c and NSX-T 2.0 release.
Step 2 - Connect to your vCenter Server (this is required to connect to the Image Builder service) before running the snippets of code below.
Step 3 - Update the following PowerShell variables which should point to both your ESXi and NSX-T offline bundle, the specific ESXi Image Profile you wish to use and then a name for your new NSX-T Image Profile.
$esxiOfflineBundle = "C:\Users\lamw\Desktop\update-from-esxi6.5-6.5_update01.zip"
$nsxtOfflineBundle = "C:\Users\lamw\Desktop\nsx-lcp-2.0.0.0.0.6522150-esx65.zip"
$esxiImageProfileName = "ESXi-6.5.0-20170702001-standard"
$nsxtProfileName = "NSXT-Image-profile"
Step 4 - When using Image Builder via PowerCLI to create your custom NSX-T Image Profile, the order in which the individual NSX-T VIBs are added to the image profile matters. It took me awhile to figure out the individual VIB dependencies and ordering, but below is an array that contains the working order of the NSX-T VIBs which we will reference shortly. For now, simply run both Step 3 and Step 4 code snippets in your PowerCLI window as shown in the screenshot below.
$nsxtVibOrder = @(
"nsx-host"
"nsx-python-protobuf"
"nsx-shared-libs"
"nsx-aggservice"
"nsx-mpa"
"nsx-da"
"nsx-platform-client"
"nsx-lldp"
"nsx-sfhc"
"epsec-mux"
"nsx-ctxteng"
"nsx-common-libs"
"nsx-metrics-libs"
"nsx-esx-datapath"
"nsx-support-bundle-client"
"nsx-rpc-libs"
"nsx-nestdb-libs"
"nsx-nestdb"
"nsx-netcpa"
"nsx-hyperbus"
"nsx-exporter"
"nsxcli"
"nsxa"
)
Step 5 - Next, we will add both our ESXi and NSX-T offline bundle to Image Builder service so they can be accessed.
Add-EsxSoftwareDepot $esxiOfflineBundle
Add-EsxSoftwareDepot $nsxtOfflineBundle
Step 6 - We are now going to clone and create a new image profile by running the command below. In this example, my $esxiImageProfileName is using ESXi-6.5.0-20170702001-standard and the $nsxtProfileName is using NSXT-Image-profile. You will also need to specify a vendor when creating a custom image profile, feel free to chose another name.
New-EsxImageProfile -CloneProfile $esxiImageProfileName -Name $nsxtProfileName -Vendor vGhetto
Step 7 - Once we have cloned the specific ESXi Image Profile that we wish to use, we can then add the NSX-T VIBs from the offline bundle that we had added in earlier. Run the following command which simply loops through the array we had defined earlier which contains the specific NSX-T VIB ordering to add to our image profile.
foreach ($vib in $nsxtVibOrder) {
Write-Host "Adding $vib ..."
Add-EsxSoftwarePackage -ImageProfile $nsxtProfileName -SoftwarePackage $vib
}
Step 8 - To verify that everything was successful, we can query the new ESXi Image Profile that we had created and filter out VIBs that match "nsx" string and we should see our 22 VIBs listed below.
(Get-EsxImageProfile -Name $nsxtProfileName).viblist | where {$_.name -match "nsx"}
Note: You may have recalled earlier that we said there are a total of 23 NSX-T VIBs, yet the output only shows 22? What gives? Well, there is a total of 23 but the reason for the list only showing 22 is that one of the NSX-T VIB is called epsec-mux which is not contain a the "nsx" prefix keyword. I could have easily added an or statement but hopefully you get the point that all NSX-T VIBs have been added as defined by our PowerShell array which does in fact contain all 23 VIB entries.
Step 9 - At this point, we have now completed authoring our custom NSX-T Image Profile. You can now export the image profile to either an ISO image and/or offline bundle. Please refer to the documentation here for the specific command.
Custom NSX-T Image Profile using Image Builder (UI)
If PowerCLI is not your cup of beer and you are running at least vSphere 6.5, you can actually use the vSphere Web (Flex) Client to a custom ESXi Image Profile.
Step 1 - Download both an ESXi and NSX-T offline bundle to your local desktop. In my example below, I am using the latest ESXi 6.5 Update 1c and NSX-T 2.0 release.
Step 2 - Login to the vSphere Web (Flex) Client
Step 3 - Enable the Image Builder service under Administration->System Configuration->Services, logout and log back in for the Image Builder UI to appear (under Auto Deploy section).
Step 4 - Click on the "Import Software Depot" and import both ESXi and NSX-T offline bundle zip as shown in the screenshot below
Step 5 - Click on the "Add Software Depot" and create a custom depot which will be used to hold our custom image profile. In the example below, I have named the custom image profile "ESXi-6.5u1c+NSXT".
Step 6 - Select the custom depot you had created in Step 5 and click on the "New Image Profile" to create a new Image Profile, then provide a name and vendor. In the "Select software packages", you will now add all the VIBs from both the ESXi Image Profile as well as the NSX-T offline bundle by simply toggling the "Software depot" drop down as shown in the screenshot below. In my example below, I have a total of 139 VIBs which includes the 23 NSX-T VIBs.
Step 7 - A nice feature of the Image Builder UI is the ability to compare between two image profiles. As you can see from the screenshot below, I am comparing our new NSX-T Image Profile with the original base ESXi Image Profile to ensure that the only "missing" VIBs are the newly added NSX-T VIBs that we had just added.
Step 8 - The finale step is to generate either a new ISO and/or offline bundle that can be used to update existing images or brand new deployments. To do so, click on the "Export Image Profile" and save the ISO/offline bundle to your desktop.
Thanks for the comment!