获取KVM虚拟机DHCP的ip地址
一 基本思路
KVM虚拟机支持birdge网卡和nat模式网卡。本文只关注nat网卡。采用libvirt管理的虚拟机,会生成一个XML文件,文件内部保护具体的网卡配置,里面包含MAC地址。libvirt采用dnsmasq来提供dhcp服务,只需在dnsmasq里面找到mac和ip映射关系,即可找到虚拟机的ip.
二 具体操作过程
1 根据虚拟机命令获取虚拟机XML文件,并解析出MAC地址
virsh dumpxml vm-name | sed -n '/mac address/p'| awk -F "[']" '{print $2}'
2 根据mac查询ip
grep $mac -rn /var/lib/libvirt/dnsmasq | awk '{print $2,$3}'
3 一条命令搞定
for mac in `virsh dumpxml vm-name | sed -n '/mac address/p'| awk -F "[']" '{print $2}'`; do grep $mac -rn ./| awk '{print $2,$3}' ; done
vm-name为虚拟机名字,自行修改。如果有多个nat网卡,可以获取到多个ip,要求虚拟机开机,且正确获取IP地址。