I have VirtualBox set up on a server. It was set up as a Bridged VM, and has an IP address. It's now running in headless mode, started with "VBoxHeadless -s PuppetMaster".
How can I find out what IP the VM is using VBoxManage?
I have VirtualBox set up on a server. It was set up as a Bridged VM, and has an IP address. It's now running in headless mode, started with "VBoxHeadless -s PuppetMaster".
How can I find out what IP the VM is using VBoxManage?
I could find my Headless VB with the combination of following commands:
# 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
But even easier: in linux, you can connect to the VB:
# Default VirtualBox Listening Port: 3389
rdesktop -N hostingserver:3389
This command will open a shell window, and you'll have direct access to the Headless VB, where you can retrieve your Headless VB IP: ip addr
Install guest additions and (assuming linux is the guest) you can run the following:
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}'
You can get it directly using this command:
VBoxManage list bridgedifs
Not sure if VBoxManage can give you that information directly. What you can do is run the following command to see the network card configuration.
VBoxManage showvminfo PuppetMaster | egrep ^NIC
That will if nothing else will provide you with the MAC address, allowing you to find out the actual ip address by other means.
From virtualbox.org forum --
VBoxManage guestproperty get <vm-name> "/VirtualBox/GuestInfo/Net/0/V4/IP" | cut -f2 -d " "