我们如何使用 bash 知道 VM 是否是 HyperV 实例?

我们如何使用 bash 知道 VM 是否是 HyperV 实例?

我知道我们可以使用以下命令检查供应商详细信息

cat /sys/devices/virtual/dmi/id/sys_vendor

但对于 Azure VM 和 HyperV VM 而言,它们是一样的 - 微软公司。

我需要一种适当/独特的方法来检查 VM 是否在 HyperV 上。

答案1

要告知 Linux 客户机中的虚拟机管理程序类型,请使用virt-what脚本。如果使用 Ansible,ansible_facts['virtualization_type']事实类似,并且也适用于非 Linux 主机。

虚拟机管理程序类型不会告诉您托管提供商。要在客户机中执行此操作,请访问任何可用的实例元数据服务。每个实现这一点的方式都不同,请使用这一点来区分它们。例如,Azure 的响应将有一个带有键compute的字典azEnvironment,指示哪个 Azure 云。

相关内容