Wednesday 24 September 2014

Force removal of vmkernel ports

Trying to unbind a vmkernel port from an iSCSI adapter that is currently in use fails with the message
"Unable to unbind iscsi port."

Use the --force true parameter to force removal
esxcli iscsi networkportal remove -A vmhbaxx-n vmkx --force true

Equallogic setup.pl script not working with vCLI 5.5

Dell supply (with the VMware Multipath module) a perl setup script for their Equallogic arrays to aid configuring VMware host networking (distributed switches are not recommended for storage).

This script relies on both perl, and the VMware command line interface (vCLI) to connect to hosts.

The vCLI version usually needs to match the host ESXi version you're trying to connect to, but the latest v5.5 vCLI appears to be missing some modules.

The usual way to install them would be to use ppm or cpan, but ppm as implemented in the vCLI doesn't appear to have all modules listed and if you've installed vCLI to the default path, dmake.exe will have issues with the spaces in the path when installing modules with cpan.  The answer to this is to install it to a short directory name off the root (e.g. c:\vCLI)

Once you're able to install modules, from the vCLI run the following commands:
cpan
install CPAN
reload cpan
install SOAP::Lite
install MIME::Parser
install Data::UUID


This should install all the required components for the setup script. 

Unfortunately the UUID module isn't installed into the default include (@INC) path so you need to manually specify it.

You can do this either by setting an environment variable or my preferred option of manually specifying the path in the perl command to run the script.
First locate the module in your installation
dir c:\UUID.pm /S

Then run perl with the -I (capital i) parameter: 
perl -I C:\vCLI\Perl\site\lib\Data setup.pl

See this page for more information on non-default @INC paths: http://perlmaven.com/how-to-change-inc-to-find-perl-modules-in-non-standard-locations