Virtual-Machine

libvirt 可以檢查虛擬機是否完全啟動?可以換個工具嗎?

  • April 17, 2017

我目前有小型 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中的一個問題。

引用自:https://unix.stackexchange.com/questions/20847