Rex::Box::Base(3p)

NAME
Rex::Box::Base - Rex/Boxes Base Module

DESCRIPTION
This is a Rex/Boxes base module.

METHODS
These methods are shared across all other Rex::Box modules.

  info
Returns a hashRef of vm information.

  name($vmname)
Sets the name of the virtual machine.

  setup(@tasks)
Sets the tasks that should be executed as soon as the VM is available through SSH.

  storage('path/to/vm/disk')
Sets the disk path of the virtual machine. Works only on KVM

  import_vm()
This method must be overwritten by the implementing class.

  stop()
Stops the VM.

  destroy()
Destroy the VM.

  start()
Starts the VM.

  ip()
Return the ip:port to which rex will connect to.

  status()
Returns the status of a VM.

Valid return values are "running" and "stopped".

  provision_vm([@tasks])
Executes the given tasks on the VM.

  cpus($count)
Set the amount of CPUs for the VM.

  memory($memory_size)
Sets the memory of a VM in megabyte.

  network(%option)
Configure the network for a VM.

Currently it supports 2 modes: nat and bridged. Currently it supports only one network card.

 $box->network(
   1 => {
     type => "nat",
   },
 }

 $box->network(
   1 => {
     type => "bridged",
     bridge => "eth0",
   },
 );

  forward_port(%option)
Set ports to be forwarded to the VM. This is not supported by all Box providers.

 $box->forward_port(
   name => [$from_host_port, $to_vm_port],
   name2 => [$from_host_port_2, $to_vm_port_2],
   ...
 );

  list_boxes
List all available boxes.

  url($url)
The URL where to download the Base VM Image. You can use self-made images or prebuild images from <http://box.rexify.org/>.

  auth(%option)
Configure the authentication to the VM.

 $box->auth(
   user => $user,
   password => $password,
   private_key => $private_key,
   public_key => $public_key,
 );

  options(%option)
Addition options for boxes

 $box->options(
   opt1 => $val1,
   opt2 => $val2,
 );