
В настоящее время я проверяю, запуская dmidecode -s bios-version и выполняя grepping по основным поставщикам облачных услуг. Пример:
# From an amazon ec2 VM $ sudo dmidecode -s bios-version 4.2.amazon
Существует ли какой-то универсальный и более надежный подход к поиску этой информации?
решение1
Не существует стандартного механизма, с помощью которого поставщики облачных услуг вводят идентификацию в работающие виртуальные машины. Если ваша цель — определить, работаете ли вы в виртуальной среде, вы можете использоватьвирт-чтокоманду, но не существует надежного способа отличить одного поставщика облачных услуг от другого.
решение2
Вот фрагмент кода, с помощью которого можно обнаружить популярных поставщиков bare metal, таких как AWS, Azure, Google Cloud и Oracle. Он вернет None, если не сможет обнаружить облако. https://github.com/nithinj/cloud_what
решение3
Даже если не-root-пользователь
lsmod
в Azure показывает множество ссылок hyperv/hv_, я предполагаю, что aws покажет что-то, что можно интерпретировать как kvm или xen
(пишу в качестве ответа, так как у меня недостаточно репутации)