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