I had to deploy NSX-T and PKS to a new infrastructure lately. The usage of a jump host was inevitable as my home bandwidth is not great to upload many GB to a remote site. The lazy option would have been to create a Windows VM running on the same infrastructure and deploy from there. As I was not in a lazy mood, I decided to go for an Ubuntu jumpbox: I can deploy OVA using OVF Tool or via govc (#rungovc) and I was already familiar of the Pivnet CLI to download Pivotal products …all I was missing was a capability to download VMware products using CLI and I was happy to discover that the vmw-cli client can exactly do that for me. 🙂
If you want to make your life easier to deploy OVA, check one of my previous article: OVA/OVF Deployment Using govc CLI.
Download VMware Products
The vmw-cli is a CLI client that can be used to login and interact with the my.vmware.com portal. As of today, it can only be used to query and download VMware product binaries based on your entitlements. What I found very attractive is that you can consume vmw-cli natively via NPM or by using a Docker image (I had to use both methods this week).
Although I won’t cover the usage of this command-line in details (it’s very well explained in the Github page), I’ll provide an example to download NSX-T Manager 2.3.0 below.
To begin, I’m listing the available solutions on the portal using vmw-cli list: this step is required before proceeding with other commands.
The next step is to index the files available for a specific solution, in my case ‘vmware-nsx-t-data-center’: vmw-cli index vmware-nsx-t-data-center. Please note that this step can take some time, depending on the selected solution.
Once the index is built, I retrieve the file names that I need to download: vmw-cli find fileName:unified,fileType:ova,version:2.3.
The last step is to download the NSX-T Manager OVA: vmw-cli get nsx-unified-appliance-220.127.116.11.0.10085405.ova.
The requested file will be downloaded to the current working directory.
Please note that this is not an official VMware tool; it was built by Andrew Obersnel, one of our great VMware Engineer. Feel free to leave a comment on his Github project page if you have any feedback or feature enhancement request.
Download Pivotal Products
Pivotal Network (a.k.a. Pivnet) is the portal where you can download Pivotal products, get the documentation and so on. Pivnet CLI is a command-line that can be used to interact with the Pivotal Network portal. Using it requires your Pivotal Network API token, which you can retrieve in your Pivotal Network account (Edit Profile > UAA API Token).
Authentication to the portal is the first step: pivnet login --api-token='<your-token>'.
Except if you know exactly what you are looking for, you will have to dig into the product list first: pivnet products. In the scenario below, I was looking for Harbor.
Once you retrieved the product slug (harbor-container-registry in my example), you can list the associated files for a specific version: pivnet product-files -p harbor-container-registry -r 1.6.0. The output will present you various information such as the name, version, file type, checksum and object key.
Finally, you only have to download the file: pivnet download-product-files -p harbor-container-registry -r 1.6.0 -g harbor-container-registry-1.6.0-build.35.pivotal.
Both command-line clients are very convenient to have in your toolbox and very easy to consume, I’ll highly recommend them for everyone!