vSphere APIでVMware をlinuxから操作する
account作って、my vmwareからdownload
というのからも別ファイルがdownloadできたけど、md5sum同じなので実体は同じだった。
基本的には/usr/bin/にinstallされたけど、いくつか(vmcontrol.plなど)は/usr/lib/vmware-vcli/apps/{general,host,performance,session,vm}
にinstallされたので適当にPATH追加しとくほうが良いかも。
AppUtilにはperl moduleが入っているだけだけど、気にせずサブディレクトリをPATHに打ち込むなら
export PATH=$PATH:`echo /usr/lib/vmware-vcli/apps/* | sed -e "s/ /:/g"`
などとしておく。
あとvcenter、ESXiサーバのSSL証明書の警告を無視するために環境変数設定しておく。
export PERL_LWP_SSL_VERIFY_HOSTNAME=0
とりあえずざっとコマンドメモ
## host 一覧 # vicfg-hostops --operation info --server vcenter.server.addr ## vm vmxのpath 一覧 # vmware-cmd -H host.server -l ## vm vmname, vmdk のpath、メモリなどの一覧 # vminfo.pl --server server.addr ## 仮想マシンの詳細 guestinfo.pl --server server.addr --operation display --vmname vm.name ## データストア使用状況 dsbrowse.pl --server vcenter.addr
引数の--server --username などは環境変数から渡すことも可能
VI_USERNAME, VI_PASSWORD など。
vmdkをmount
VMware vSphere 5.1 Virtual Disk Development Kit
VDDKのvmware-mountを使えば、vmdkファイルをmountして中身見れる。KVMのguestfish みたいな感じ
lvmの場合は工夫が必要
- https://communities.vmware.com/docs/DOC-10616
- https://xliska.wordpress.com/2010/09/29/access-lvm2-partition-on-vmware-virtual-disk/
仮想マシンはshutdown しておく必要ある(当然)。(readonlyの場合はshutdownしなくても良いかもしれないけど、 起動中のvmdkファイルをいじるとファイルシステム壊れる可能性あり)
# vmware-mount -p /path/to/file.vmdk ### vmware-mount /path/to/file.vmdk パーティション番号 マウントポイント