Я знаю, что мы можем проверить данные поставщика, используя следующую команду
cat /sys/devices/virtual/dmi/id/sys_vendor
Но в случае виртуальной машины Azure и виртуальной машины HyperV это то же самое - Microsoft Corporation.
Мне нужен правильный / уникальный способ чтобы проверить, подключена ли виртуальная машина к HyperV.
Чтобы указать тип гипервизора в гостевой системе Linux, используйте сценарий virt-what
. При использовании Ansible факт ansible_facts['virtualization_type']
аналогичен и также работает на хостах, отличных от Linux.
Тип гипервизора не говорит вам о хостинг-провайдере. Чтобы сделать это в гостевой системе, войдите в любой доступный сервис метаданных экземпляра. Каждый реализует это по-своему, используйте это, чтобы отличить их друг от друга. Например, ответ Azure будет иметь словарь compute
с ключом azEnvironment
, указывающим, какое облако Azure.