Определите, является ли исполняемый хост Linux облачным или нет

Определите, является ли исполняемый хост Linux облачным или нет

В настоящее время я проверяю, запуская 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

(пишу в качестве ответа, так как у меня недостаточно репутации)

Связанный контент