获取KVM虚拟机DHCP的ip地址

获取KVM虚拟机DHCP的ip地址,第1张

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地址。

通过ip地址,ssh到某虚拟机的某端口如22。这个一般是运维人员或者管理人员最常用的方式,这种方式常见的安全认证是输入密码,也可以设置为密钥方式免密登录

通过OpenStack客户端,找到OpenStacK找到虚机管理,找到控制台登录按钮,进入控制台,使用用户密码登录即可。当然这是以web界面控制台方式,通过虚拟机所在物理机的服务端也是可以登录的。

首先 ,找到虚拟机所在的物理机及其instance信息。nova list --all-t --host <host_id>  查看指定主机上的虚拟机;nova show <vmid>  查看虚拟机的详细信息,获取flavor,instance_id。

然后 ,通过控制节点ssh到虚拟机所在物理机,使用virsh list命令查到该计算节点上所有虚机的instance信息。

最后 ,通过virsh console instance-id登录虚机。virsh console后,按下enter,输入用户名和密码登录。退出console,按下ctrl + ],即可回到计算节点。

服务端console登录方式,可以看到虚拟机停止和启动打印到屏幕上的所有信息。web界面console方式也可以看到,但只限固定大小的屏幕。前者可以复制粘贴屏幕上的信息,后者就不可以。

当然商用场景下,服务端也不是所有人可以随便登录的,web界面console方式显得更加安全和便捷。但某些特殊场景下,虚拟机所有网络被禁掉且要实现自动化时,服务端console方式能更好的胜任。

注意,console口只能被一个人登录。如果console口被其它人使用, 可以使用–force参数进行抢占。

通过console方式登录比ip方式有3个场景的优势:用户不需要知道ip信息;有可能该虚拟机ip和调试机网络不通;该虚拟机的所有网络被禁掉了。

当虚拟机服务端无法virsh console登录时,比如win *** 作系统的虚拟机,virsh console配置出错的虚拟机和已经死机的虚拟机,这些情况下都可以通过vnc  console登录。Windows虚拟机是可以通过web界面控制台方式登录的。

Windows下mstsc,远程登录界面上输入ip,如果有端口跳转,输入ip:port,填写用户名和密码即可。

参考资料

https://www.cnblogs.com/lifei02/p/9892626.html


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11411816.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存