サーバーにVirtualBoxをセットアップしています。ブリッジされたVMとしてセットアップされ、IPアドレスを持っています。 "VBoxHeadless -s PuppetMaster"で始まるヘッドレスモードで実行されています。
VMがVBoxManageを使用しているIPを確認するにはどうすればよいですか?
ヘッドレスVB=を以下のコマンドの組み合わせで見つけることができました。
# Update arp table
for i in {1..254}; do ping -c 1 192.168.178.$i & done
# Find vm name
VBoxManage list runningvms
# Find MAC: subsitute vmname with your vm's name
VBoxManage showvminfo vmname
# Find IP: substitute vname-mac-addr with your vm's mac address in ':' notation
arp -a | grep vmname-mac-addr
しかし、さらに簡単です:Linuxでは、VBに接続できます。
# Default VirtualBox Listening Port: 3389
rdesktop -N hostingserver:3389
このコマンドはシェルウィンドウを開き、ヘッドレスVBに直接アクセスできます。ここでヘッドレスを取得できますVB IP:ip addr
ゲストの追加をインストールします(Linuxがゲストであると想定)。以下を実行できます。
VBoxManage --nologo guestcontrol yourVirtualMachineName execute --image "/sbin/ifconfig" --username yourUser --password yourPassword --wait-exit --wait-stdout -- -a
VBoxManage guestproperty enumerate {`VBoxManage list runningvms | awk -F"{" '{print $2}'` | grep IP | awk -F"," '{print $2}' | awk '{print $2}'
次のコマンドを使用して直接取得できます。
VBoxManage list bridgedifs
VBoxManageがその情報を直接提供できるかどうかはわかりません。次のコマンドを実行して、ネットワークカードの構成を確認できます。
VBoxManage showvminfo PuppetMaster | egrep ^NIC
それ以外にMACアドレスが提供されない場合は、他の方法で実際のIPアドレスを見つけることができます。
virtualbox.org フォーラムから-
VBoxManage guestproperty get <vm-name> "/VirtualBox/GuestInfo/Net/0/V4/IP" | cut -f2 -d " "