With the introduction of the ESXi Configuration Store back in vSphere 7.0 Update 1, all ESXi configuration changes should be managed using either the configstorecli for an individual ESXi host or leveraging the new vSphere Configuration Profiles (VCP) for scale with vCenter Server.
For certain ESXi hostd configurations such as configuring the handshakeTimeoutUs property, which has changed locations from several locations including /etc/vmware/hostd/config.xml and /etc/vmware/vpxa/vpxa.cfg to now /etc/vmware/rhttpproxy/config.xml in the latest ESXi 8.x release, it can be challenging to figure out the correct configstorecli syntax.
Having spent some time playing with the configstorecli, I was able to quickly help a customer recently who was looking to update the handshakeTimeoutUs property for ESXi 7.x and I wanted to make it easy for folks to find the syntax for both ESXi 7.x and 8.x.
ESXi 8.x
The handshakeTimeoutUs in ESXi 8.x has moved to rhttpproxy configurations and you can confirm this and other settings by using the schema operation (configstorecli schema get set -c esx -g services -k rhttpproxy)
Step 1 - To add or update the handshakeTimeoutUs property, create an input JSON file that contains the following:
[root@localhost:~] cat /tmp/input.json { "rhttpproxy": { "ssl": { "vmacore": { "handshake_timeout_ms": 120000 } } } }
Step 2 - Run the following command to apply the changes:
configstorecli config current set -c esx -g services -k rhttpproxy -infile /tmp/input.json
Step 3 - There should be no errors from the previous command and we can now retrieve the configuration by running the following:
configstorecli config current get -c esx -g services -k rhttpproxy
Note: Make sure to restart the vpxa service on the ESXi host for the changes to go into effect.
ESXi 7.x
The handshakeTimeoutUs in ESXi 8.x has moved to vpxa configurations and you can confirm this and other settings by using the schema operation (configstorecli schema get set -c esx -g services -k vpxa)
Step 1 - To add or update the handshakeTimeoutUs property, create an input JSON file that contains the following:
[root@localhost:~] cat /tmp/input.json { "vmacore": { "ssl": { "handshake_timeout_ms": 120000 } } }
Step 2 - Run the following command to apply the changes:
configstorecli config current set -c esx -g services -k vpxa -infile /tmp/input.json
Step 3 - There should be no errors from the previous command and we can now retrieve the configuration by running the following:
configstorecli config current get -c esx -g services -k vpxa
Note: Make sure to restart the vpxa service on the ESXi host for the changes to go into effect.
Satan023 says
If someone don't know why need to modify the value of handshakeTimeoutMs, please check this:
https://www.dell.com/support/kbdoc/en-pa/000195758/dell-emc-vxrail-hci-over-mpls
GK says
Hi, on ESXi 8.0u2 when I run this command configstorecli config current set -c esx -g services -k rhttpproxy -infile /tmp/input.json I've got an error:
proxy -infile /tmp/input.json
Error Code: 1208
Message: Failed to validate Set
Details:
/rhttpproxy: Additional property not allowed: rhttpproxy
Austin B says
I also could not get the commands in this article to work for ESXi 8. But I was able to get the following to work (2 different commands, unsure which is correct).
vi /tmp/input.json
{
"vmacore": {
"ssl": {
"handshake_timeout_ms": 600000
},
"http": {
"read_timeout_ms": 600000
}
}
}
/bin/configstorecli config current set -c esx -g services -k rhttpproxy -infile /tmp/input.json
/bin/configstorecli config current set -c esx -g services -k vpxa -infile /tmp/input.json
/etc/init.d/vpxa restart