Unix and Linux network configuration. Multiple network interfaces. Bridged NICs. High-availability network configurations.


Reviews of latest Unix and Linux software. Helpful tips for application support admins. Automating application support.


Disk partitioning, filesystems, directories, and files. Volume management, logical volumes, HA filesystems. Backups and disaster recovery.


Distributed server monitoring. Server performance and capacity planning. Monitoring applications, network status and user activity.

Commands & Shells

Cool Unix shell commands and options. Command-line tools and application. Things every Unix sysadmin needs to know.

Home » Commands & Shells, Virtualization

Configure and Run esxcli on Red Hat

Submitted by on March 20, 2017 – 3:58 pm

The esxcli utility is used to interface with the vSphere and ESX hosts. It is a useful tool for getting to some basic VMWare functionality from Unix shell. It is also a pre-requisite for some of the server deployment and configuration management tools, such as SaltStack.

Download the current version of VMware-vSphere-CLI from VMWare or version 6. Place it in /tmp and extract. Run the installation script, accept the defaults:

cd /tmp
tar xvfz VMware-vSphere-CLI-6.0.0-2503617.x86_64.tar.gz
cd vmware-vsphere-cli-distrib

Install Python tools and pre-requisites for esxcli:

Test network connection to the vCenter server:

nc -v -i 1 -w 1 vcenter01 443

Obtain vCenter host’s thumbprint:

esxcli -s vcenter01 -u 'DOMAIN\SvcAccount' -p '********'
>> Connect to vcenter01 failed. Server SHA-1 thumbprint: 3E:7D:46:C3:83:7C:80:9F:3A:06:DE:23:F0:FA:EB:48:7C:EC:33:8F (not trusted)

Add the vCenter host and its thumbprint to the local credential store:

/usr/lib/vmware-vcli/apps/general/ add --server vcenter01 --username 'DOMAIN\SvcAccount' -p '********'
/usr/lib/vmware-vcli/apps/general/ add --server vcenter01 --thumbprint 3E:7D:46:C3:83:7C:80:9F:3A:06:DE:23:F0:FA:EB:48:7C:EC:33:8F

Verify functionality:

esxcli -s vcenter01 -u 'DOMAIN\SvcAccount' -p '*********' --vihost=esxi_host_01 vm process list
Sample output:
   World ID: 6458879
   Process ID: 0
   VMX Cartel ID: 6458878
   UUID: 42 3c 02 72 9b 74 87 41-dd c8 b4 7a 96 64 13 c6
   Display Name: vmrhel701
   Config File: /vmfs/volumes/1b48c93f-ad74f785/vmrhel701/vmrhel701.vmx

You can also connect directly to individual ESX hosts, but you will need to add their thumbprints to your local credential store. You can obtain the list of ESX hosts in your datacenter by using PowerCLI:

Set-PowerCLIConfiguration -Scope Session -WebOperationTimeoutSeconds -1 -Confirm:$false;
Import-Module VMware.VimAutomation.Vds;
Connect-VIServer -Server $VMHost -User 'DOMAIN\SvcAccount' -Password '*********';
Get-VMHost | Select Name | ConvertTo-Csv -NoTypeInformation | % {$_ -replace '"', ""} | Select-Object -Skip 1 | Out-File C:\users\esx_list.txt -Force -Encoding ascii

The script below will loop through a list of ESX hosts, obtain their thumbprints, and add them to the local credential store.

if [ -z "${listfile}" ] || [ ! -r "${listfile}" ]
    exit 1
for i in $(cat "${listfile}")
    echo "Adding ${i}"
    tumbprint="$(esxcli -s "${i}" -u "${username}" -p "${password}" | grep -oE "([A-Z0-9]{2}:){19}[A-Z0-9]{2}")"
    ${credstoreadmin} add --server "${i}" --username "${username}" --password "${password}"
    ${credstoreadmin} add --server "${i}" --thumbprint "${tumbprint}"


Print Friendly, PDF & Email

No Comment »

1 Pingbacks »

Leave a Reply

%d bloggers like this: