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`个虚拟机在运行.
" 
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
" $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



 
原文地址:https://www.cnblogs.com/dream397/p/13613098.html