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,
);