WilliamLam.com

  • About
    • About
    • Privacy
  • VMware Cloud Foundation
  • VKS
  • Homelab
    • Resources
    • Nested Virtualization
  • VMware Nostalgia
  • Apple

Introduction to the new ESXi Configuration Store CLI (configstorecli)

07.19.2021 by William Lam // 10 Comments

I was looking into a customer inquiry this morning and found myself looking at the configstorecli, which is an ESXi Shell CLI that enables access to the new ESXi Configuration Store (ConfigStore). The goal of the ConfigStore, initially introduced in ESXi 7.0 Update 1, is to centrally manage all configurations for an ESXi host instead of relying on different methods including a variety of configuration files. There is actually not much documentation out there for configstorecli, other than this blog post by Duncan and these two VMware KBs (here and here).

While searching online, I ended up clicking Duncan's blog as I figured it probably has the best information and I do recall this topic awhile back on the change in behavior for renaming a standard virtual switch. I started to play with the configstore CLI and what was not immediately clear was how to actually use it, especially identifying some of the parameters it was looking for. I figured I might as well share some of my findings as I explore configstorecli a bit more.

My first observation is that the Config Store is a JSON document store and each configuration is stored as individual JSON documents. Before you can access a specific configuration, you first need to understand the schema. To view the entire schema, run the following command:

configstorecli schema list

Since the output is JSON, you can actually save the contents to a file on your desktop and use any JSON supported tool such as jq to explore further. In the example below, I have loaded an online copy of the configstorecli output from ESXi 7.0 Update 2 using my Chrome browser, which has this JSON Viewer extension installed. The benefit with a visual tool, is that you can easily expand or collapse specific nodes within the JSON document.

[Read more...]

Categories // Automation, ESXi, vSphere 7.0 Tags // configstorecli, ESXi 7.0 Update 2

Simplified Nested ESXi installation in ESXi 7.0 Update 2 using HTTP Boot over VirtualEFI

03.22.2021 by William Lam // 19 Comments

Deploying an ESXi scripted installation aka Kickstart running within a VM (Nested ESXi) has a number of benefits, especially for testing and development purposes. This was something I did regularly as a customer, especially with new releases of ESXi to ensure our existing automation scripts and processes continued to work before rolling out into production. ESXi kickstart itself is pretty straight forward, but the required supporting infrastructure (PXE Server, DHCP, TFTP, etc) that needs to be configured, especially for a greenfield deployment can often be challenging for new comers.

Even with an existing PXE infrastructure, it can often be difficult to configure or troubleshoot depending on your level of access which does not add any value in actually testing or automating the ESXi scripted installation process. In ESXi 7.0 Update 2, an enhancement was made to the Virtual Machine's UEFI firmware called VirtualEFI that would enable ESXi to perform an HTTP Boot given the ESXi bootloader URL and without requiring any of the traditional PXE infrastructure.

To take advantage of this new capability, you just need to have a physical server running ESXi 7.0 Update 2 and a VM that is configured with the latest vHW19 compatibility. To configure HTTP boot, you will need to add the following two VM Advanced Settings:

  • networkBootProtocol - httpv4 or httpv6
  • networkBootUri - HTTP URL to the ESXi bootloader (bootx64.efi)

Disclaimer: Nested ESXi and Nested Virtualization is not officially supported by VMware

[Read more...]

Categories // Automation, ESXi, Nested Virtualization, vSphere 7.0 Tags // ESXi 7.0 Update 2, Nested ESXi, nested virtualization, UEFI, vSphere 7.0 Update 2

ESXi 7.0 Update 2 enhancement for USB NIC only installations

03.16.2021 by William Lam // 15 Comments

The USB Network Native Driver for ESXi Fling has been an extremely popular Fling that has allowed customers to easily add additional networking capabilities by using a supported USB-based network adapter even though ESXi traffic over USB networking is not officially supported.

In most deployments, the USB network adapter is usually a supplement to the existing onboard network adapter of a system. However, there have been scenarios where the onboard network adapter is either not available or functional and customers would still like to be able to install ESXi and have it running over just the USB network adapter.

Although installing ESXi using just a USB network adapter is possible today, one downside is that an additional workflow is needed to fix the network binding after installing ESXi.

During the interactive ESXi installation, you will see the following error at 81% which will cause installer to get stuck

Exception: No vmknic tagged for management was found.

At this point, the installer has completed and you need to switch to the console (Alt+F1) and just perform a reboot to actually complete the installation.


After ESXi boots up for the first time after the install, you will need to go into the DCUI and manually bind the vusb0 interface for ESXi management for connectivity. To persist this USB NIC binding, you will need to add small snippet to /etc/rc.local.d/local.sh

Standard Virtual Switch (VSS):

vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')
count=0
while [[ $count -lt 20 && "${vusb0_status}" != "Up" ]]
do
    sleep 10
    count=$(( $count + 1 ))
    vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')
done

esxcfg-vswitch -R

Distributed Virtual Switch (VDS):

VDS_0_NAME=vDS
VDS_0_PORT_ID=10
VDS_1_NAME=vDS-NSX
VDS_1_PORT_ID=2

vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print "v0:" $NF}') && vusb1_status=$(esxcli network nic get -n vusb1 | grep 'Link Status' | awk '{print "v1:" $NF}')
count=0
while [[ $count -lt 40 ]] && [[ "${vusb0_status}" != "v0:Up" || "${vusb1_status}" != "v1:Up" ]]
do
    sleep 5
    count=$(( $count + 1 ))
    vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print "v0:" $NF}') && vusb1_status=$(esxcli network nic get -n vusb1 | grep 'Link Status' | awk '{print "v1:" $NF}')
done

if [ "${vusb0_status}" = "v0:Up" ]; then
    esxcfg-vswitch -P vusb0 -V ${VDS_0_PORT_ID} ${VDS_0_NAME}
fi

if [ "${vusb1_status}" = "v1:Up" ]; then
    esxcfg-vswitch -P vusb1 -V ${VDS_1_PORT_ID} ${VDS_1_NAME}
fi

Note: The vusbX vmkernel interface may not show up in either ESXi Embedded Host Client and/or vSphere HTML5 UI, this does not mean there is an issue. ESXi was never designed to support USB-based NICs for Management Network and the UI may not properly detect these devices when using the UI. It is recommended to use the ESXi Shell for any operations requiring configuration of vusbX devices.

Obviously, this was not an ideal user experience and I personally had to use this workaround on several occasions, especially for newer hardware platforms where the onboard network adapter may not be recognized by ESXi and being able to use the USB Network Fling definitely came in handy.

With the release of ESXi 7.0 Update 2, we have improved the user experience for installing ESXi with just a single USB NIC. This enhancement was added by Songtao after mentioning the undesirable behavior. A new driver parameter called usbBusFullScanOnBootEnabled has been introduced and can added after the initial installation which removes the need for the workaround mentioned above by editing the local.sh file. This new parameter instructs ESXi to perform a full bus scan to claim all USB NICs that are attached since USB device claiming is slow compared to PCIe devices.

[Read more...]

Categories // ESXi, Home Lab, vSphere 7.0 Tags // ESXi 7.0 Update 2, vSphere 7.0 Update 2

  • 1
  • 2
  • Next Page »

Search

Thank Author

Author

William is Distinguished Platform Engineering Architect in the VMware Cloud Foundation (VCF) Division at Broadcom. His primary focus is helping customers and partners build, run and operate a modern Private Cloud using the VMware Cloud Foundation (VCF) platform.

Connect

  • Bluesky
  • Email
  • GitHub
  • LinkedIn
  • Mastodon
  • Reddit
  • RSS
  • Twitter
  • Vimeo

Recent

  • VMware Flings is now available in Free Downloads of Broadcom Support Portal (BSP) 05/19/2025
  • VMUG Connect 2025 - Minimal VMware Cloud Foundation (VCF) 5.x in a Box  05/15/2025
  • Programmatically accessing the Broadcom Compatibility Guide (BCG) 05/06/2025
  • Quick Tip - Validating Broadcom Download Token  05/01/2025
  • Supported chipsets for the USB Network Native Driver for ESXi Fling 04/23/2025

Advertisment

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy

Copyright WilliamLam.com © 2025

 

Loading Comments...