vGhetto 是一個由社群主導的專案vmrun
這個指令或者 Perl SDK 做管理svn co https://vghetto.svn.sourceforge.net/svnroot/vghetto vghetto
也可以)
.
./INSTALL
./TODO
./bitmaps/
./build/
./demo/
./installers/
./other/
./scripts/
./vGhetto.pl*
./wbin/
其中的 scripts 資料夾就是放置管理用 script 的地方vmware
這個 repository
layman -a vmware
設定之後就可以裝 SDK 了
emerge app-emulation/vmware-vsphere-cli
裝完 scripts 裡面的指令就都可以使用了
./listVMByFolder.pl --server VI_SERVER --user VI_USERNAME --password VI_PASSWORD
(VI_SERVER, VI_USERNAME, VI_PASSWORD 請自行代換或者填成 shell variable)
成功的話應該會列出這台 Server 底下的所有 VM (註
不過我一開始執行結果會出現下列訊息
Error: Server version unavailable at 'https://VI_SERVER/sdk/vimService.wsdl'
由於 vmrun
的指令都是基於 https
- openssl 的 libs 沒有裝
- https 的 certificate 是 self-signed (所以預設不被接受)
前者裝上 openssl 即可
export PERL_LWP_SSL_VERIFY_HOSTNAME=0
不過主要是利用這個可以簡單的對 VM 下指令vmrun
當然也可以啦)
./guestOpsManagement.pl --server VI_SERVER --username VI_USERNAME --vm Name_of_VirtualMachine --operation Operation_to_perform --guestusername Username_for_guestOS --working_dir /tmp --program_path program_to_start --program_args Arguments_to_program
可惜 operaion 的種類真的不多
validate | ps | startprog | kill | ls | mkdir | rmdir | rm | mv | mvdir | copyfromguest | copytoguest | env
小秘訣
因為每次都要打帳號密碼實在太麻煩/opt/vmware/vsphere/cli/apps/session/save_session.pl --savessionfile PATH_of_SESSION --server VI_SERVER