VMware 環境の仮想マシン IP に基づいて ESXi ホストを見つける

VMware 環境の仮想マシン IP に基づいて ESXi ホストを見つける

VMware vSphere 仮想環境では、特定の IP が配置されている仮想マシンと ESXi ホストを見つける必要がある場合があります。 VMware 仮想マシンに VMware ツールがインストールされている場合は、API を通じて IP の場所を直接見つけることができますが、環境内のすべての仮想マシンに VMware ツールがインストールされているわけではないため、MAC アドレスを通じてのみ見つけることができます。

ターゲット IP が 10.95.48.11 であると仮定すると、まず、ターゲット IP と同じレイヤー 2 ネットワーク内の仮想マシンから 10.95.48.11 に対応する MAC アドレスを取得します。

  1. [root@localhost ~]# ping 10.95.48.11 -c 2
  2. PING 10.95.48.11 (10.95.48.11) 56(84)バイトデータ。
  3. 10.95.48.11からの64 バイト: icmp_seq=1 ttl=64時間=0.141 ミリ秒
  4. 10.95.48.11からの64 バイト: icmp_seq=2 ttl=64時間=0.137 ミリ秒
  5.  
  6. --- 10.95.48.11 の ping 統計 ---  
  7. 送信パケット 2 個、受信パケット 2 個、パケット損失 0%、時間999 ミリ秒
  8. rtt最小/平均/最大/ mdev = 0.137/0.139/0.141/0.002 ミリ秒
  9. [root@localhost ~]# ip neighbor |grep 10.95.48.11
  10. 10.95.48.11 dev eth0 lladdr 00:0c:29:26:18:c8 到達可能

取得したMACアドレスは00:0c:29:26:18:c8です。

環境内の ESXi ホストの数が少ない場合は、SSH 経由で ESXi ホストに直接ログインし、1 つずつ検索することができます。

まず、仮想マシンのストレージディレクトリを入力します。データ ストアの名前は環境によって異なる場合があります。

  1. cd /vmfs/volumes/datastore1/

このディレクトリには、各仮想マシンの関連ファイルが格納されます。 1 つの仮想マシンは、次のように 1 つのディレクトリに対応します。

  1. [root@esxi-01:/vmfs/volumes/595b7497-d8849df8-8d7c-6c92bf585d10] ls -l
  2. 合計 176
  3. drwxr-xr-x 1 ルート ルート 420 9月14日 02:30 centos-68
  4. drwxr-xr-x 1 ルート ルート 1820 10月 9日 09:55 dev01-10.95.48.11
  5. drwxr-xr-x 1 ルート ルート 3080 9月14日 03:37 dev02-10.95.48.12

各仮想マシン ディレクトリの vmx ファイルには、仮想ネットワーク カード用にシステムによって生成された MAC アドレスが格納されます。たとえば、次のようになります。

  1. ethernet0.generatedAddress = "00:0c:29:26:18:c8"  
  2. ethernet0.generatedAddressOffset = "0"  

次のように、vmx ファイルから MAC アドレスを検索して、対応する仮想マシンを見つけることができます。

  1. [root@esxi-01:/vmfs/volumes/595b7497-d8849df8-8d7c-6c92bf585d10] を見つけます。 -名前  '*.vmx' | xargs grep '00:0c:29:26:18:c8'  
  2. ./dev01-10.95.48.11/dev01-10.95.48.11.vmx:ethernet0.generatedAddress = "00:0c:29:26:18:c8"

環境内に多数の ESXi ホストがある場合、1 つずつ検索するのは非常に非効率的です。 VMware が公式に提供している SDK に基づいてプログラムを作成し、対応する MAC アドレスを見つけることができます。

VMware は Python SDK を提供しています: https://github.com/vmware/pyvmomi

私たちが書いたプログラムは次のとおりです。

  1. #!/usr/bin/env python
  2. インポート atexit
  3.  
  4. pyVimから接続をインポート 
  5. pyVmomiからvmodlをインポート
  6. pyVmomiからvimをインポート
  7.  
  8. def print_vm_info(仮想マシン):
  9. virtual_machine.config.hardware.deviceデバイスの場合:
  10. (デバイスキー>= 4000)かつ(デバイスキー< 5000) の場合:
  11. if device.macAddress == '00:0c:29:26:18:c8' :
  12. print( 'device.macAddress==' , device.macAddress)
  13.  
  14. サマリー = 仮想マシン.サマリー
  15. print( "名前: " , summary.config.name )
  16. print( "テンプレート: " , summary.config.template)
  17. print( "パス: " , summary.config.vmPathName)
  18. print( "ゲスト: " , summary.config.guestFullName)
  19. print( "ホスト: " , summary.runtime.host.name )
  20.  
  21. main() を定義します:
  22. 試す:
  23. service_instance = connect .SmartConnect(host= "10.10.10.10" ,
  24. ユーザー= "[email protected]"
  25. パスワード= "123456"
  26. ポート=443)
  27.  
  28. atexit.register(接続.切断、service_instance)
  29.  
  30. コンテンツ = service_instance.RetrieveContent()
  31.  
  32. container = content.rootFolder #調べる開始 
  33. viewType = [vim.VirtualMachine] #検索するオブジェクトタイプ 
  34. recursive = True #再帰的調べるかどうか
  35. コンテナビュー = content.viewManager.CreateContainerView(
  36. コンテナ、viewType、再帰的)
  37.  
  38. 子 = containerView.view  
  39. 子供向け:
  40. print_vm_info(子)
  41.  
  42. vmodl.MethodFault をエラーとして除く:
  43. print( "vmodl の障害をキャッチしました: " + error.msg)
  44. -1を返す
  45.  
  46. 0を返す
  47.  
  48. # プログラムを起動
  49. __name__ == "__main__"の場合:
  50. 主要()

仮想マシンのデバイス キー値は 4000 ~ 5000 であり、ネットワーク デバイスを示します。ネットワーク デバイスのプロパティで MAC 情報を検索します。プログラム内の接続情報は、ESXi ホスト情報または vCenter 情報になります。 vCenter に直接接続することで、環境内のすべての ESXi ホストを検索でき、各ホストを 1 つずつ検索する必要がなくなります。

プログラムの実行結果は次のとおりです。

  1. [root@vagrant-centos65 サンプル]# python get_vm_from_mac.py
  2. ( 'device.macAddress==' '00:0c:29:26:18:c8' )
  3. ( '名前:' 'dev01-10.95.48.11' )
  4. ( 'テンプレート: ' False )
  5. ( 'パス: ' , '[データストア1] dev01-10.95.48.11/dev01-10.95.48.11.vmx' )
  6. ( 'ゲスト: ' 'CentOS 4/5/6/7 (64 ビット)' )
  7. ( 'ホスト: ' 、'esxi-01')

<<:  Amazon AWSは最近、4TBのメモリを搭載した仮想マシンをリリースした。

>>:  AWS、EC2とEBSの秒単位課金を発表

推薦する

ウェブサイトの包括的な分析能力は、SEOマスターへのもう一つの架け橋です。

ウェブサイト分析能力は、キーワード分析とマイニング能力、基本的なウェブサイトのルールとデザイン能力、...

SAP: インテリジェントなイノベーション、双方にメリットのある協力、企業のインテリジェントな変革を推進

[51CTO.comよりオリジナル記事] 疫病の影響により、企業はコスト削減と効率向上に対するより高...

WeChat 5.0はすべてのセルフメディアコンテンツを席巻し、クリックスルー率は大幅に低下するだろう

WeChatの自主メディアは短期間で急増し始め、独自の自主メディアの割合はますます希薄化しました。多...

Baidu Knowsからのすべてのウェブサイト外部リンクのソースに関する簡単な説明

私は長い間SEOを勉強していなかったため、この技術に関する知識が徐々に後退していました。最近、広州写...

WSI-49USD/E5-2670/32GBメモリ/240GB SSD/33TBフロー/10Gポート/カンザス

サーバーで遊ぶ人なら、ほとんどが wholesaleinternet.net を知っていると思います...

ショックホスティングはどうですか?シアトルデータVPSの簡単なレビュー

shockhosting は 2000 年から運営されており、実際には数年の経験を持つアメリカの企業...

Baidu SEO トレーニング ビデオ: 新規サイトの最適化 (テキスト版付き)

小説サイトを運営しても将来性がないと言う人が多い中、なぜ百度は「小説特集」を別途立ち上げたのでしょう...

テンセントクラウドとサウジアラビアの通信事業者モビリーが協力を深め、世界企業の中東での事業展開を支援

3月6日、サウジアラビアのテクノロジーイベントLEAP 2024で、テンセントクラウドがメイン会場に...

外部リンクはSEO最適化の生命線ではない

Baidu の時代では、SEO は単なる一時的な雲に過ぎません。数日前、Wuming は「外部リンク...

機電ホームが1000万ドルを投じて尚国インターネットB2B業界ポータルサイトを買収、合併と買収の波を引き起こす?

A5ウェブマスターネットワーク(admin5.com)は3月20日に報道しました:最近、国内の有名な...

「最適化」のためのさまざまな検索エンジンの好みを理解する

クモといえば、私のウェブマスターの友人のほとんどは、怒っていると同時に愛情深いです。私は蜘蛛を喜ばせ...

Qenox – 512M メモリ KVM/アトランタ/月額 7 ドル

Qenox は 2010 年に正式な会社として運営を開始し、2001 年から IDC 事業に取り組ん...

ramnode - 新しいシアトルデータセンター VPS/35% オフ

Ramnodeは設立されてまだ1年も経っていませんが、すでにLEBでトップ3に上り詰めています。十分...

Kuroit: 月額 5 ドル、ロサンゼルス/シンガポール VPS、4G メモリ/2 コア/50g NVMe/3T トラフィック/10Gbps 帯域幅/160g 防御

kuroitは現在、米国(ロサンゼルス)とシンガポールのデータセンターのVPSの特別プロモーションを...

SEO補助技術:Baiduスナップショット苦情実践

Baidu ウェブ苦情は、ユーザーが問題を報告したり、ヘルプを要求したりできるようにするためにウェブ...