VMware提供的可编程接口
VMware提供的可編程接口,何謂Vmrun命令?其實(shí)這并不是什么神秘的東西,相信部分朋友使用過Vmware workstation來安裝過一些虛擬機(jī)吧。如果你足夠細(xì)心的話,你會(huì)發(fā)現(xiàn)在這個(gè)軟件的安裝目錄下能找到一個(gè)Vmrun.exe可執(zhí)行文件。如果你從命令行敲入vmrun.exe(當(dāng)然你得切換到workstation的根目錄下),你會(huì)驚奇的發(fā)現(xiàn)很多該命令提供了很多的參數(shù),這些參數(shù)的功能成為了Host機(jī)器與Guest機(jī)器之間的功能強(qiáng)大的連接橋梁。那么,先一睹下到底有哪些VMware提供的可編程接口命令可供我們玩轉(zhuǎn)。
1、POWER COMMANDS
如下圖:
從上可以看出,這些命令參數(shù)可以完成開啟或者關(guān)閉虛擬機(jī)等操作~
比如關(guān)機(jī)命令可以使用:vmrun start "D:Windows7Win7.vmx"來啟動(dòng)虛擬機(jī),其中start后面的是要啟動(dòng)的虛擬機(jī)系統(tǒng)的配置文件的位置
其他的幾個(gè)類似,故不再贅述
2、SNAPSHOT COMMANDS
如下圖:
顧名思義,這組命令參數(shù)主要是用于操作虛擬機(jī)系統(tǒng)的快照的。何謂快照,簡單的說就是當(dāng)前系統(tǒng)整個(gè)的狀態(tài)信息。而創(chuàng)建快照(snapshot)的目的,則是在于保存當(dāng)前系統(tǒng)的狀態(tài), 而還原快照(revertToSnapshot)則可以從當(dāng)前的系統(tǒng)狀態(tài)還原到指定快照時(shí)候的系統(tǒng)狀態(tài)。這樣做對(duì)于測試人員來說不難理解,因?yàn)闇y試必須保證處于干凈的系統(tǒng)環(huán)境,所謂干凈的測試環(huán)境則是指一個(gè)操作系統(tǒng)從被創(chuàng)建開始,只在上面安裝過與測試相關(guān)的軟件與配置,且只能做一次性的測試。而想要達(dá)到多次測試的目的,只能通過不斷的revert到干凈的測試環(huán)境那個(gè)快照點(diǎn)。
從上圖中可以看出,我們可以通過命令來查看系統(tǒng)所有的快照(listSnapshots)、為系統(tǒng)創(chuàng)建快照(snapshot)、刪除系統(tǒng)中指定快照(deleteSnapshot)、恢復(fù)到某個(gè)快照(revertToSnapshot)這幾個(gè)命令,如下所示:
創(chuàng)建快照:
vmrun snapshot "D:Windows7Win7.vmx" "snapshot1"
但是,一般情況下光是上面還是不行的,尤其是當(dāng)你想從代碼級(jí)調(diào)用該命令創(chuàng)建虛擬機(jī)快照的時(shí)候,往往需要用戶名與密碼來驗(yàn)證。那么該怎么寫呢?正確的命令如下:
vmrun -gu 你虛擬機(jī)系統(tǒng)的用戶名 -gp 你虛擬機(jī)系統(tǒng)的密碼 snapshot "D:Windows7Win7.vmx" "snapshot1" (<=快照名稱)
上面的這個(gè)命令是不是一定會(huì)成功?也不一定,如果還是失敗的話,那么請嘗試下面三個(gè)操作,如果還是解決不了你的問題的話,那么筆者保持沉默~
1)先檢測是否支持虛擬機(jī)快照的創(chuàng)建
檢測方法很簡單, 查看工作站的菜單項(xiàng)的Vm選項(xiàng)下的Snapshot子選項(xiàng),如下圖:
如果Snapshot右彈出菜單所有選項(xiàng)都灰掉的話,那么你得考慮先解決掉這個(gè)問題了
2)檢測是不是Vmtools在搗鬼
確定你的虛擬機(jī)系統(tǒng)中有沒安裝Vmtools或者是不是可以進(jìn)行更新,如果沒裝請裝之,裝了的話較好update下,關(guān)于怎么安裝或更新另請查詢。
3)加上本地系統(tǒng)用戶名與密碼驗(yàn)證
vmrun -u Host機(jī)器的用戶名 -p Host機(jī)器的密碼 -gu 虛擬機(jī)系統(tǒng)的用戶名 -gp 虛擬機(jī)系統(tǒng)的密碼 snapshot "vmx path" "snapshot1"
3、GUEST OS COMMAND
如下圖:
這組命令很有實(shí)用性,主要是可以在Host機(jī)器的下,對(duì)Guest機(jī)器(也就是虛擬機(jī)系統(tǒng))進(jìn)行一列的操作,如文件操作、進(jìn)程操作、運(yùn)行指定程序和運(yùn)行腳本等,這些命令都是需要用戶名與密碼的驗(yàn)證,也就是在命令行中加上-gu與-gp參數(shù),參見上面。
這組命令中可能需要注意的是,runProgramInGuest命令可以執(zhí)行虛擬機(jī)系統(tǒng)中的一些命令,如打開一個(gè)notepad,直接敲入如下命令:
vmrun -gu Guest系統(tǒng)用戶名 -gp Guest系統(tǒng)密碼 runProgramInGuest "D:Windows7Win7.vmx" notepad
如果想要打開虛擬機(jī)C盤根目錄下的1.txt文件,可以在運(yùn)行的程序后面加上參數(shù),如下:
vmrun -gu Guest系統(tǒng)用戶名 -gp Guest系統(tǒng)密碼 runProgramInGuest "D:Windows7Win7.vmx" notepad C:1.txt
如果你在代碼級(jí)別調(diào)用這個(gè)命令,希望你能夠始終意識(shí)到一個(gè)事實(shí),那就是上述命令默認(rèn)是等到在Guest機(jī)器運(yùn)行的程序結(jié)束后才返回。如果,親愛的你,串行的執(zhí)行一系列的命令,而前一個(gè)命令恰恰是個(gè)Long wait的程序,那么這之后的程序往往會(huì)掛住,無法執(zhí)行。如你使用上述命令打開一個(gè)文本后,那么主程序就會(huì)等到你將Guest系統(tǒng)中的notepad關(guān)閉才會(huì)返回。
那么,這個(gè)時(shí)候,你可以選擇-nowait開關(guān)命令來選擇無等待的執(zhí)行,即每個(gè)命令一執(zhí)行后就返回,不會(huì)產(chǎn)生阻塞,命令如下:
vmrun -gu Guest系統(tǒng)用戶名 -gp Guest系統(tǒng)密碼 runProgramInGuest "D:Windows7Win7.vmx" -nowait notepad C:1.txt
其他的命令,大家可以自己嘗試下,在此不再贅述。
總結(jié)
以上是生活随笔為你收集整理的VMware提供的可编程接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VMware中如何安装Ubuntu
- 下一篇: VMware如何进入BIOS方法