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

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

現在、dmidecode -s bios-version を実行し、主要なクラウド ベンダーに対して grep を実行して確認しています。例: # From an amazon ec2 VM $ sudo dmidecode -s bios-version 4.2.amazon

これを見つけるための、より一般的で信頼性の高いアプローチはありますか?

答え1

クラウドベンダーが実行中の仮想マシンに識別情報を挿入する標準的なメカニズムはありません。仮想環境で実行されているかどうかを検出することが目的であれば、仮想-何コマンドがありますが、クラウドベンダーを区別する良い方法がありません。

答え2

以下は、AWS、Azure、Google Cloud、Oracle などの一般的なベアメタル ベンダーを検出できるコードです。クラウドを検出できない場合は None が返されます。 https://github.com/nithinj/cloud_what

答え3

Azure の非ルートでは
lsmod多くの hyperv/hv_ 参照が表示されますが、aws では kvm または xen として解釈できるものが表示されると想定しています。

(十分な評価がないため、回答として投稿します)

関連情報