1. 程式人生 > 實用技巧 >kolla KVM宿主機上查詢到虛擬機器IP地址

kolla KVM宿主機上查詢到虛擬機器IP地址

大致思路就是這樣:
kvm宿主機上的虛擬機器可以通過virsh list來檢視,不過IP就沒辦法查看了,這裡我們通過arp協議來將一個網段內可以ping通的ip新增到宿主機的arp快取中,通過查詢虛擬機器的mac地址來和ip做匹配,這樣就可以查到當前宿主機上正在執行的虛擬機器和它們的IP了。

指令碼例項:

#!/bin/bash 
#ping當前網段內線上的主機,以便產生arp記錄. 
for ip in 10.2.2.{1..253};do
{
ping -c1 $ip >/dev/null 2>&1
}&
done
#依次查詢arp記錄. 
running_vms
=`virsh list |grep running` echo -ne "共有`echo "$running_vms"|wc -l`個虛擬機器在執行.\n" for i in `echo "$running_vms" | awk '{ print $2 }'`;do mac=`virsh dumpxml $i |grep "mac address"|sed "s/.*'\(.*\)'.*/\1/g"` ip=`arp -ne |grep "$mac" |awk '{printf $1}'` printf "%-30s %-30s\n" $i $ip done

算節點上,在/var/lib/docker/volumes/nova_compute/_data/instances目錄中,可以看到新建立的例項

/var/lib/docker/volumes# cat ./nova_libvirt_qemu/_data/instance-00003bed.xml

cat ./nova_compute/_data/instances/1f1ff909-7f42-481c-88fd-840ffe96b74d/libvirt.xml