如何从KVM虚拟机内检测pipe理程序主机名/ IP?

我们有一小群KVM / libvirt主机,上面有几百个虚拟机,由不同地点的一组系统pipe理员pipe理。 我遇到了一个问题,我通过SSH连接到虚拟机,但是我找不到它拥有的裸机主机的名称。 有没有人知道从虚拟机里面find裸机的名字的方法?

如果这不是KVM开箱即用的,那么我们可以在我们的所有虚拟机pipe理程序上应用哪些configuration示例来公开这些信息?

我们使用库存pipe理软件来跟踪我们的虚拟机及其裸机 – 但是它有缺陷,并且时不时地丢失了哪个主机拥有虚拟机。 我将解决这个问题 – 但是从虚拟机内部查找KVM主机的概念将会非常有用。

我知道这违背了许多共享环境中使用的安全原则,每个虚拟机都是卖给不同客户的产品 – 但是在我们拥有主机的环境中,安全性不是问题。

我非常确信这是不可能的,出于安全原因..不要直接做你想要的,通过查询客人。

但是,您可以在主机上安装可编写脚本的代理,然后使用诸如virsh list来转储虚拟机名称列表,并制定一个策略(实际上是一个策略空间策略,而不是技术策略),以确保访客的主机名完全正确匹配VM名称。

或者..像上面一样,除了使用像virsh这样的虚拟机名称和客人的IP地址,然后recursion地工作你的方式通过列表, ssh进入他们的顺序,运行某种数据收集脚本,并将其放入您的广告资源中。

这样,你就知道它运行的主机(因为你运行了virsh并获得了一个列表),而且你知道那里运行着什么。

不一定是virsh ,你可以直接用libvirtd或者Python的绑定来完成大部分/全部的工作。

如果不解决这个问题,就不可能解决这个问题,基本上,虚拟机中的某种代理将保留主机数据。 如果这些客人迁移,那么它必须通过networking以某种方式更新。

如果您使用KVMpipe理系统(有数百个虚拟机,您绝对应该)喜欢oVirt,您可以看到虚拟机在pipe理控制面板上运行的主机

在这里输入图像说明