Virtual-Machine
libvirt 可以檢查虛擬機是否完全啟動?可以換個工具嗎?
我目前有小型 VM 來進行某些測試(它有很多好處——比如在另一個發行版 Fedora 15 上進行測試,以及在
make distcheck
沒有污染問題的情況下執行/
)。但是我想自動化測試,並且我希望能夠以程式方式(例如,使用 sh、python、c、…)執行以下操作:
qemu
從本地映像無頭啟動 VM ( )- 等到 VM 完全啟動(這是最難的部分 - 最初我想到的是魔法睡眠)
- 在主機和來賓之間同步儲存庫(此時不需要)
./autogen && make && sudo make install && sudo make distcheck
在機器上執行- 從機器下載生成的壓縮包
我開始閱讀
libvirt
,它可能允許我為此使用 API。雖然這需要客戶支持並且我找不到有關它的文件,但這種能力似乎是libvirt
.是否可以檢查機器是否完全啟動?有現成的工具可以做到這一點嗎?
**編輯:**完全啟動是指系統 rc 腳本已經完成執行/所有應該啟動的 systemd 服務已經啟動。我知道 qemu 不知道它何時發生,但我假設客人方面的支持。
Afaik,libvirt 不知道“完全啟動”是什麼意思(我也不知道)。您可以在引導期間創建一個連接到您的主機(或另一台機器)的服務。或者您可以嘗試循環連接到您的客人,例如使用 ssh。
另一種解決方案是依賴與主機通信的現有服務,例如 vdagent。您可以輕鬆編寫一個 spice-gtk python 腳本,該腳本將等到 Spice 代理通道連接(參見辣味.c 範例,狀態欄指示代理的存在)
注意,測試“make distcheck”不應該污染 / 也不應該需要 sudo。如果是這樣,它看起來像是你的makefile中的一個問題。