Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Rex::Commands::Box(3) User Contributed Perl DocumentationRex::Commands::Box(3)

NAME
       Rex::Commands::Box - Functions /	Class to manage	Virtual	Machines

DESCRIPTION
       This is a Module	to manage Virtual Machines or Cloud Instances in a
       simple way. Currently it	supports Amazon, KVM and VirtualBox.

       Version <= 1.0: All these functions will	not be reported.

SYNOPSIS
	use Rex::Commands::Box;

	set box	=> "VBox";

	group all_my_boxes => map { get_box($_->{name})->{ip} }	list_boxes;

	task mytask => sub {

	  box {
	    my ($box) =	@_;
	    $box->name("boxname");
	    $box->url("http://box.rexify.org/box/base-image.box");

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

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

	    $box->forward_port(ssh => [2222, 22]);

	    $box->share_folder(myhome => "/home/myuser");

	    $box->auth(
	     user => "root",
	     password => "box",
	    );

	    $box->setup(qw/task_to_customize_box/);

	  };

	};

EXPORTED FUNCTIONS
   new(name => $box_name)
       Constructor if used in OO mode.

	my $box	= Rex::Commands::Box->new(name => "box_name");

   box(sub {})
       With this function you can create a new Rex/Box.	The first parameter of
       this function is	the Box	object.	With this object you can define	your
       box.

	box {
	  my ($box) = @_;
	  $box->name("boxname");
	  $box->url("http://box.rexify.org/box/base-image.box");

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

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

	  $box->forward_port(ssh => [2222, 22]);

	  $box->share_folder(myhome => "/home/myuser");

	  $box->auth(
	   user	=> "root",
	   password => "box",
	  );

	  $box->setup(qw/task_to_customize_box/);
	};

   list_boxes
       This function returns an	array of hashes	containing all information
       that can	be gathered from the hypervisor	about the Rex/Box. This
       function	doesn't	start a	Rex/Box.

	use Data::Dumper;
	task "get_infos", sub {
	  my @all_boxes	= list_boxes;
	  print	Dumper(\@all_boxes);
	};

   get_box($box_name)
       This function tries to gather all information of	a Rex/Box. This
       function	also starts a Rex/Box to gather	all information	of the running
       system.

	use Data::Dumper;
	task "get_box_info", sub {
	  my $data = get_box($box_name);
	  print	Dumper($data);
	};

   boxes($action, @data)
       With this function you can control your boxes. Currently	there are 3
       actions.

       init
	   This	action can only	 be used if you're using a YAML	file to
	   describe your Rex/Boxes.

	    task "prepare_boxes", sub {
	      boxes "init";
	    };

       start
	   This	action start one or more Rex/Boxes.

	    task "start_boxes",	sub {
	      boxes "start", "box1", "box2";
	    };

       stop
	   This	action stop one	or more	Rex/Boxes.

	    task "stop_boxes", sub {
	      boxes "stop", "box1", "box2";
	    };

perl v5.24.1			  2016-07-16		 Rex::Commands::Box(3)

NAME | DESCRIPTION | SYNOPSIS | EXPORTED FUNCTIONS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Rex::Commands::Box&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help