Detecte se um host de execução Linux é baseado em nuvem ou não

Detecte se um host de execução Linux é baseado em nuvem ou não

Atualmente estou verificando executando dmidecode -s bios-version e comparando com os principais fornecedores de nuvem. Ex: # From an amazon ec2 VM $ sudo dmidecode -s bios-version 4.2.amazon

Existe uma abordagem genérica e mais confiável para descobrir isso?

Responder1

Não existe um mecanismo padrão pelo qual os fornecedores de nuvem injetem identificação nas máquinas virtuais em execução. Se o seu objetivo é detectar se você está ou não executando em um ambiente virtual, você pode usar ovirt-o quecomando, mas não há uma boa maneira de diferenciar um fornecedor de nuvem de outro.

Responder2

Aqui está um trecho de código com o qual você pode detectar os fornecedores bare metal populares como AWS, Azure, Google Cloud e Oracle. Isso retornará None se não conseguir detectar a nuvem. https://github.com/nithinj/cloud_what

Responder3

Mesmo que o não-root
lsmodno Azure mostre muitas referências hyperv/hv_, presumo que o aws mostrará algo que pode ser interpretado como kvm ou xen

(postando como resposta porque não tenho representante suficiente)

informação relacionada