Linux実行ホストがクラウドベースであるかどうかを検出する

Linux実行ホストがクラウドベースであるかどうかを検出する

私は現在、dmidecode -s bios-versionを実行し、主要なクラウドプロバイダに対してgrepingを実行してこれを確認しています。前任者: # From an amazon ec2 VM $ sudo dmidecode -s bios-version 4.2.amazon

これを見つけるための一般的でより安定した方法はありますか?

答え1

クラウドプロバイダーには、実行中の仮想マシンにIDを注入するための標準的なメカニズムはありません。目標が仮想環境で実行されているかどうかを検出することであれば、次のことができます。仮想何ただし、クラウドプロバイダーを他のクラウドプロバイダーと区別するための良い方法はありません。

答え2

以下は、AWS、Azure、Google Cloud、Oracleなどの一般的なベアメタルプロバイダーを検出するために使用できるコードです。クラウドが検出できない場合はNoneを返します。 https://github.com/nithinj/cloud_what

答え3


lsmodAzure の root 以外のユーザーが多くの hyperv/hv_ 参照を表示しても、aws が kvm または xen として解釈できることを示すとします。

(担当者が足りないため回答として掲載)

関連情報