Most administrators run scripts to perform the same task repeatedly or to perform a task on multiple hosts. You can run ESXCLI commands from one administration server against multiple target servers.

For example, when a new data store becomes available in your environment, you must make that data store available to each ESXi host. The following sample script illustrates how to make a NAS data store available to three hosts (esxi_server_a, esx_server_b, and esxi_server_c).

The sample assumes that a configuration file /home/admin/.visdkrc.<hostname> exists for each host. For example, the configuration file for esxi_server_a has the following contents.

VI_SERVER = esxi_server_a
VI_USERNAME = root
VI_PASSWORD = xysfdjkat

The script adds the NAS data store to each host defined in VIHOSTS.

#!/bin/bash
 
VI_CONFIG_FILE=/home/admin/viconfig
VIHOSTS=(esxi_server_a esx_server_b esxi_server_c)
 
 
for VIHOST in ${VIHOSTS[@]}
do
echo "Adding NAS datastore for ${VIHOST} ..."
esxcli --config ${VI_CONFIG_FILE} storage nfs add --host ${VIHOST} --share <share point> --volume-name <volume name>
esxcli --config ${VI_CONFIG_FILE} storage nfs list
done