Ставим VMware Perl SDK на Debian 6.0.6. На данный момент текущая версия 5.1, доступна для скачивания тут. Скачаваем архив VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64.tar.gz, распаковываем его и пытаемся поставить.
tar xvfz VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64.tar.gz
cd vmware-vsphere-cli-distrib
perl Makefile.PL
При попытке выполнить make получаем следующие предупреждения:
Warning: prerequisite Class::MethodMaker 2.08 not found.
Warning: prerequisite Crypt::SSLeay 0.51 not found.
Warning: prerequisite SOAP::Lite 0.67 not found.
Warning: prerequisite UUID 0.03 not found. We have 0.02.
Warning: prerequisite XML::LibXML 1.58 not found.
Writing Makefile for VIPerlToolkit
Видно, что не хватает ряда библиотек и одна не той версии. Библиотеки ставим из репозитория, UUID из cpan.
apt-get install libclass-methodmaker-perl libcrypt-ssleay-perl \
libsoap-lite-perl libuuid-perl libxml-libxml-perl libdata-dump-perl \
libarchive-zip-perl
cpan UUID
При установке UIID можем получить следующее предупреждение и кучу ошибок:
Warning (usually harmless): 'YAML' not installed, will not store persistent state
UUID.xs:13: error: ‘uuid_t’ undeclared (first use in this function)
...
Поставим ещё ряд недостающих пакетов:
apt-get install libconfig-yaml-perl uuid-dev
cpan UUID
perl Makefile.PL
./vmware-install.pl
При попытке установить получаем опять ошибки:
cat: /etc/*-release: No such file or directory
sh: rpm: not found
Openssl-devel is not installed on the system.
openssl-devel 0.9.7 is required for encrypted connections.
Please install openssl-devel version 0.9.7 or greater.
sh: rpm: not found
e2fsprogs is not installed on the system
e2fsprogs 1.38 is required for UUID.
Please install e2fsprogs 1.38 or greater.
На самом деле все эти пакеты стоят в системе, дело в том, что debian не входит в список поддерживаемых ОС. Для установки нам нужно отредактировать файл bin/vmware-uninstall-vSphere-CLI.pl.
chmod u+w vmware-uninstall-vSphere-CLI.pl
vim vmware-uninstall-vSphere-CLI.pl
Найти строку:
if ( direct_command("cat /etc/*-release | grep -i ubuntu") || direct_command("cat /proc/version | grep -i ubuntu")
и заменить на
if ( direct_command("cat /etc/*-release | grep -i debian") || direct_command("cat /proc/version | grep -i debian")
После чего установка должна пройти успешно. У меня после установки выдало предупреждение, что ряд библиотек устарели.
./vmware-install.pl
The following Perl modules were found on the system but may be too old to work
with vSphere CLI:
Compress::Zlib 2.037 or newer
Compress::Raw::Zlib 2.037 or newer
version 0.78 or newer
IO::Compress::Base 2.037 or newer
IO::Compress::Zlib::Constants 2.037 or newer
LWP::Protocol::https 5.805 or newer
Enjoy,
--the VMware team
Теперь можно проверить работу, например получив список ВМ на сервере, используя команду vmware-cmd.
vmware-cmd --server <server> --username <username> --password <password> -l
При выполнении команд или демо-скриптов из SDK может возникнуть ошибка:
Server version unavailable at 'https://x.x.x.x:443/sdk/vimService.wsdl' at /usr/share/perl/5.10/VMware/VICommon.pm line 545.
Это связано с тем, что мы не можем проверить валидность сертификата ESXi хоста, как обойти эту ошибку я расскажу в другом посте.