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の秒単位課金を発表

推薦する

WeChatパブリックアカウント広告プロモーションの完全ガイド!

エンタープライズシンクタンクが発表したデータによると、2016年12月時点で、 WeChatの月間ア...

justhost UK VPS はいかがでしょうか?内部環境の測定データの共有

justhost.asia は英国ロンドンにデータセンターを開設し、英国 VPS サービスを提供して...

tsukaeru: 日本で無制限のトラフィックVPS、月額5.6ドルから、ネイティブIP

tsukaeru.net株式会社は1999年にサーバーレンタル事業を開始し、2002年に正式に設立さ...

Hengchuang Technology - 香港クラウドホスト(OpenStackクラウドアーキテクチャVPS)の簡単な評価

私は香港のデータセンターでHengchuang TechnologyからVPSを取得しました。この記...

vpsnodebox 7 USD/1 GB RAM/40 GB HDD/KVM/XEN オプション

vpsnodeboxは、2017年3月にドメイン名が登録された、新設のVPSプロバイダーです。KVM...

避けるべき Kubernetes モニタリングの 4 つの落とし穴

Kubernetes は現在、マイクロサービスやコンテナベースのアプリケーションの管理とデプロイにお...

司法オンラインオークション第2フェーズ開始の背後にあるゲーム:3つの主要なルールの調整

寧波の2つの裁判所は依然としてこの件について訴訟を起こしており、裁判所は協議の結果、タオバオオークシ...

SEO トレーニング市場にはさまざまな意見があります。誰を信じるべきでしょうか?

昨今、ウェブマスターの数は急増しており、誰もが複数のウェブサイトを所有しています。このような競争の激...

中小企業によくあるインターネットマーケティングの5つの手法!

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています中小企業の...

デスクトップ検索が新時代の要素に受け入れられにくい理由

デスクトップ PC の絶対的な中核ビジネスとして、検索は常にインターネット企業やウェブマスターによる...

PRはウェブサイトの力の源です

PR価値こそがウェブサイトの力の源です。これは朱珍先生が授業でよく言う言葉です。なぜそう言うのか?実...

「ロスト・イン・タイランド」の興行収入10億ドルの奇跡と「1942」のワーテルローのマーケティング分析

映画市場には奇妙な現象がある。「大ヒット作」がまだ公開されていないにもかかわらず、大手映画レビューサ...

QQ番号キャンセル機能により、ユーザーは自身のQQアカウントをキャンセルできる。

テンセントは3月20日夜、ユーザーがQQアカウントを解約できるようにすると発表した。ユーザーはテンセ...

ZooKeeper 分散ロック キュレーター ソース コード 3: 再入可能ロック同時ロック

[[410513]]序文ロックとロックの再入を理解した後、理解すべき最も重要なことは、分散シナリオま...