Tuesday, May 20, 2014

RemoteBox - Manage VirtualBox on Servers

http://remotebox.knobgoblin.org.uk/

What is RemoteBox?

RemoteBox is a VirtualBox client. In essence, you can remotely administer (ie over the network) an installation of VirtualBox on a server, including its guests and interact with them as if they were running locally. VirtualBox is installed on 'the server' machine and RemoteBox runs on 'the client' machine. RemoteBox provides a complete GTK graphical interface with a look and feel very similar to that of VirtualBox's native GUI. If you're familiar with other virtualization software, such as VMWare ESX, then think of RemoteBox as the "poor man's" VI client.

Why is this useful?

VirtualBox is intended to be used as a desktop virtualization solution. That is, you install it on a machine and use VirtualBox locally. This means that the guests on the local machine will consume resources, taking them away from other tasks. Additionally, the guests will not be available to other machines or will be unavailable if the local machine is off. RemoteBox changes this by allowing you to run the guests on another machine (ie the server) but still interfact with them as if they were installed locally. This free's up resources on your local machine, allows you to interact with the same guests from multiple machines (eg a desktop and a laptop) and the guests can continue to run, even when the client machine is off. The guest's can also take advantage of the additonal CPU, memory and storage that a servers tend to have. As VirtualBox and RemoteBox are both cross-platform it allows you to use different operating systems for the client and server. For example, you may prefer to use VirtualBox on a Linux server but wish to interact with the guests from a Mac OS X client machine.

How does it work?

VirtualBox includes a special web service which exposes its API over the network using a protocol called SOAP. RemoteBox also speaks SOAP and communicates with VirtualBox to perform the various tasks such as creating or powering on guests, etc. When guests are 'powered on', they are started up in a mode called headless. This essentially means the guest's display is 'hidden' but is accessible using the Remote Desktop Protocol (RDP). RemoteBox uses an RDP client to show the display of a guest, locally on the client machine and is completely interactive.

What does RemoteBox run on?

The RemoteBox client is known to run on Linux, Solaris, Mac OS X and various modern flavours of BSD. VirtualBox offically runs on Linux, Solaris, Mac OS X and Windows as well as 'unofficially' on FreeBSD. The client and server machines do not need to be running the same operating system. For example, you may have VirtualBox installed on a Windows server but interfact with the guests from a FreeBSD client.

Feature Summary

RemoteBox Window Image
  • Open source VirtualBox client with a graphical (GTK) interface
  • Remote management of VirtualBox and its guests
  • No web server such as Apache or IIS is required to run RemoteBox
  • No compilation is required - written entirely in Perl
  • View and interact with the guest's display via RDP, including sound and clipboard
  • Create and edit guests
  • Configure processor, display, input devices, audio, I/O ports, and shared folders
  • Set the guest BIOS configuration including the BIOS image
  • Set advanced options such as HPET, Page Fusion, Large Pages, CPU Hotplugging, CPU Throttling etc
  • Attach USB devices and set USB device filters
  • Stop, start, pause and save guest states
  • Provision and attach storage including hard disks, CDs/DVDs and floppy disks
  • Configure networking including host only networks with DHCP servers
  • Supports guest snapshots
  • Compatible with VirtualBox running on Linux, Windows, Mac OS X and Solaris
  • RemoteBox runs on Linux, *BSD and Mac OS X
  • And much more...