第一個找到的是這篇:Tip: Find the IP address of a virtual machine,他的作法是取得 VM 的 MAC address ,再以 MAC address 去 arp 裡找到對應的 IP。這方法很簡單,但是有一個缺點,就是 VM 必須要有跟 host 有網路動作,arp 裡才會有這資訊。作者是用 perl 開發的,我改寫成 Python
這樣並不符合我的需求,所以又繼續找。後來找到這篇:linux kvm - Find IP of VM running KVM - Super User,裏面的前幾個回答也是說要用 arp,但是最後一則回覆提供了不同的答案,他是用 virt-cat 。查了一下,virt-cat 需要安裝 libguestfs-tools ,安裝好以後,就可以用 sudo virt-cat -d your_domain /var/lib/dhcp/dhclient.eth0.leases 去查看 /var/lib/dhcp/dhclient.eth0.leases 檔案並取得 IP 了。整理一下,使用這個方法必須:
- 安裝 libguestfs-tools 以取得 virt-cat
- VM 是使用 DHCP,如果是固定 IP ,我想這在製作 image 的時候,應該就能確定了,所以這不是問題。
- 網路介面是 eth0,如果是其他的 eth1 或什麼的,就自行把 eth0 換掉就可以。
沒有留言:
張貼留言