昨日の記事の VM Meetup Tokyo #1 で行った LT について
時間的制約により省いた話やあまりにどうしようもない与太話(と訂正)
open-vm-tools での IP 取得の話 (訂正)
スライド中では getifaddrs() のみしか書いてなかったですが、
もう1個 libdnet 経由の intf_open() から取得する方法があります。
この切り替えはソースのビルドオプションによって異なっており、
最新の rpm/deb だと libdnet 経由で取得する方法が正しいみたいです。
コード的にはこのファイル。
思い切り読み違えていました… orz
あの後コード追っかけてて見つけたよ…C 言語難しい…
続足りない IP
1NIC に 128IP 割り当てても 103 までしか渡っていないという話はありましたが、
同じように 複数 IP つけた NIC を増やせば NIC 数 × 103 で増えていくかというとそうでもない。
MOB で見てみると
先頭 NIC は複数 IP ついているが…
2個目以降の NIC は先頭の 1IP アドレスしか渡ってこない…
1NIC x 103IP + 15NIC x 1IP = 118 IP が MAX?
IPv6 はそのうちにでも…
vmomi で VMware Tools の IP を取得する
pyvmomi で言うと以下。
# * は適当なシーケンス番号 # Primary IP SI.content.rootFolder.childEntity[*].vmFolder.childEntity[*].guest.ipAddress # IP List SI.content.rootFolder.childEntity[*].vmFolder.childEntity[*].guest.net[*].ipAddress
ManagedObjectReference:VirtualMachine の下にあるので、適時読み替えれば hostFolder からも辿れるかと。
Primary IP は tools.conf で指定できる Primary NIC の IP アドレスで、特に指定していなければ IP List の先頭の NIC の IP アドレスのはず。
IP List の方は = vSphere Web Client とかで見えるアレ(hover すると見えるやつ)
以前、Primary NIC と IP List の先頭とが異なるケースを見たことあるが再現しない…
古い Ver. だったからかな?
vmomi で esxcli を叩く話
*vmomi で ESXi の esxcli 叩ける…と思ったら、どうも言語間で仕様差があるらしく、
rbvmomi/govmomi では実装されているが、pyvmomi では実装されていないらしい。
経緯としては giuhub の issues に。
Add support for Support for esxcli like the Ruby bindings · Issue #34 · vmware/pyvmomi · GitHub
VMware 内部で自動生成されたコードの仕様が不明なので VMware にアシストして欲しいが、諸般の事情により仕様公開は止められているというように見える。
果たして…
とりあえず pyvmomi 単独で esxcli を叩くことはできず、
該当 issue の最下部に書いてある wrapper を噛ますと叩けるようになるらしい(未検証)
同じに見えてこんなところに言語間仕様差が。