■VMware vSphere CLIのインストール
ESXiをリモートからCLIで操作するvSphere CLIをCentOS6.3にインストールします。下記のサイトからLinux版のインストーラファイルをダウンロードします。
https://my.vmware.com/jp/group/vmware/details?downloadGroup=VSP510-VCLI-510&productId=285
【 ファイル名 】 VMware-vSphere-CLI-5.1.0-780721.i386.gz
下記のようにインストール作業を行います。デフォルトの状態ですとhttp_proxyおよびftp_proxy変数が設定されてないとエラーがでて先に進めませんのでインストーラを編集してエラーがデないように編集します。
# tar xvzf VMware-vSphere-CLI-5.1.0-780721.i386.gz # cd vmware-vsphere-cli-distrib # vi vmware-install.pl [2488/2489行目をコメントアウトします] if ( !( $ftpproxy && $httpproxy)) { #uninstall_file($gInstallerMainDB); #exit 1; } # ./vmware-install.pl |
ライセンスが表示されてAcceptするか聞かれますのでyesと応えます。
Do you accept? (yes/no) yes Thank you. http_proxy not set. please set environment variable 'http_proxy' e.g. export http_proxy=http://myproxy.mydomain.com:0000 . ftp_proxy not set. please set environment variable 'ftp_proxy' e.g. export ftp_proxy=http://myproxy.mydomain.com:0000 . Please wait while configuring CPAN ... Please wait while configuring perl modules using CPAN ... CPAN is downloading and installing pre-requisite Perl module "Archive::Zip" . CPAN is downloading and installing pre-requisite Perl module "Class::MethodMaker" . CPAN is downloading and installing pre-requisite Perl module "UUID" . CPAN is downloading and installing pre-requisite Perl module "Data::Dump" . CPAN is downloading and installing pre-requisite Perl module "SOAP::Lite" . CPAN is downloading and installing pre-requisite Perl module "XML::SAX" . CPAN is downloading and installing pre-requisite Perl module "XML::NamespaceSupport" . CPAN is downloading and installing pre-requisite Perl module "XML::LibXML::Common" . CPAN is downloading and installing pre-requisite Perl module "XML::LibXML" . CPAN not able to install following Perl modules on the system. These must be installed manually for use by vSphere CLI: UUID 0.03 or newer XML::LibXML::Common 0.13 or newer XML::LibXML 1.63 or newer |
上記3つのモジュールが自動でインストールできなかったので手動でインストールしてください、とでてきました。こ れは依存関係のためインストールにエラーが生じました。以下の2つをインストールすれば解消されました。
# yum install libuuid-devel # yum install libxml2-devel # ./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 |
インストール自体は成功したものの上記ライブラリが古いといわれたので手動インストールを実施します。
# cpan Compress::Zlib # cpan Compress::Raw::Zlib # cpan version # cpan IO::Compress::Base # cpan IO::Compress::Zlib::Constants # cpan LWP::Protocol::https |
これで試しにESXiののホスト情報を取得しようとしたところ以下のエラーが表示されました。
# vicfg-hostops --server 192.168.1.160 --username root --operation info Enter password: Server version unavailable at 'https://192.168.1.160:443/sdk/vimService.wsdl' \ at /usr/share/perl5/VMware/VICommon.pm line 545, <STDIN> line 1. |
調べた所、以下のコマンドで回避されました。
# export PERL_LWP_SSL_VERIFY_HOSTNAME=0 |
また、デフォルトの状態だとユーザ名およびパスワードを対話形式で指定しないといけません。個人的にはこれが面倒くさいので以下の環境変数を指定することでこれらを省略することが可能です。
環境変数名 | 内容 |
VI_USERNAME | –usernameで指定 |
VI_PASSWORD | –passwordで指定 |
上記を設定しておけばコマンドで明示的にusernameやpasswordを指定しない限り、上記が適用されます。
また、環境変数を指定せずにファイルに登録しておく方法もあります。認証情報はデフォルトで /root/.vmware/credstore/vicredentials.xmlに保存されます。
# cd /usr/lib/vmware-vcli/apps/general/ # ./credstore_admin.pl list Server User Name ERROR: File not found: /root/.vmware/credstore/vicredentials.xml. 認証情報を登録するファイルが作成されていないのでエラーが出力されます # ./credstore_admin.pl add -s [ESXi IP] -u root -p xxxxxx New entry added successfully # ./credstore_admin.pl list Server User Name 192.168.1.160 root |
vCenter Server の管理者情報を登録することで ESX/ESXi を一元管理することも可能です。
# ./credstore_admin.pl add -s [vCenter IP] -u root -p xxxxxx New entry added successfully # vicfg-hostops.pl --server <vcenterserver> -h <server> -o enter Host <server> entered into maintenance mode successfully. |
<注意>
–server で vCenter Server を指定した場合は、操作したい ESX/ESXi を –vihost(-h) で指定します
–vihost(-h) で ESX/ESXi を指定する際は vCenter Server に登録している名前 (IP アドレスやホスト名) で指定します
–vihost(-h) を使用しない場合は、vCenter Server 管理下のすべての ESX/ESXi が対象になります