参考 https://www.vmware.com/support/developer/vix-api/vix115_reference/
我在centos 7.2下使用
1) 下载linux下的开发包
wget https://download3.vmware.com/software/player/file/VMware-VIX-1.15.0-2985596.x86_64.bundle
2) 安装
sudo sh /VMware-VIX-1.15.0-2985596.x86_64.bundle
安装完成后: 可执行文件在/usr/bin 头文件在/usr/include/vmware-vix
3) 编译个例子试一下,默认例子 文档说在 /usr/share/doc/vmware-vix/VMwareVix/samples/
实际是在 /usr/share/doc/vmware-vix/samples
例子中有makefile 因些
make -j3
编译没有报错
执行: ./fhostopen --help
./fhostopen: error while loading shared libraries: libvixAllProducts.so: cannot open shared object file: No such file or directory
看来安装包没有加路径,我们自己加上 sudo vim /etc/ld.so.confi 加上/usr/lib/vmware-vix/
./fhostopen --help
Failed to connect to host (Service type VIX_SERVICEPROVIDER_VMWARE_WORKSTATION was specified, but not installed)
连接不成功正常的,因为例子比较简单,没有help,也不处理参数输入,要修改程序,指定连接的host 地址,及端口
因为vix 连接workstation时只能本地连接,所以会有上面的错误出现。
在我安装的workstation 机器上,发现有个服务,“VMware Workstation Server” 名称是VMwareHostd ,对应端口是443,所以用这个在试
使用命令行工具vmrun
vmrun -T server -h https://IP/sdk -u username -p password list
这次报错: Error: The specified version was not found
查资料说是要去改配置文件 /usr/lib/vmware-vix/vixwrapper-config.txt
但看到vmrun 的帮助说
Running a program in a virtual machine with Server on a Linux host with Linux guest
vmrun -T server -h https://myHost.com:8333/sdk -u hostUser -p hostPassword -gu guestUser -gp guestPassword runProgramInGuest "[standard] vm/myVM.vmx" /usr/bin/X11/xclock -display :0
而我的vixwrapper-config.txt中只有viserver,没有server 类型.
vix.h 中
enum {
VIX_SERVICEPROVIDER_DEFAULT = 1,
VIX_SERVICEPROVIDER_VMWARE_SERVER = 2,
VIX_SERVICEPROVIDER_VMWARE_WORKSTATION = 3,
VIX_SERVICEPROVIDER_VMWARE_PLAYER = 4,
VIX_SERVICEPROVIDER_VMWARE_VI_SERVER = 10,
VIX_SERVICEPROVIDER_VMWARE_WORKSTATION_SHARED = 11,
};
显然我要用VIX_SERVICEPROVIDER_VMWARE_SERVER ,必须要在vixwrapper-config.tx中加入server 的条目,怎么加呢?
再次读文档,发现vix api与我的需求不相符
我的需求是要采集 workstation host 与guest的信息,但vix api更多的是侧重操作虚拟机,所以不再在这上面浪费时间。
同时,在本机(运行 workstation的机)上运行vmrun -T server https://localhost/sdk -u user -p password list
得到的结果与实际不符,也不知道那里出了问题,连接到其它机上去试也是结果不符
未完....有机会再改吧