Rex::Box::Amazon(3p)

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

DESCRIPTION
This is a Rex/Boxes module to use Amazon EC2.

EXAMPLES
To use this module inside your Rexfile you can use the following commands.

 use Rex::Commands::Box;
 set box => "Amazon", {
   access_key => "your-access-key",
   private_access_key => "your-private-access-key",
   region => "ec2.eu-west-1.amazonaws.com",
   zone => "eu-west-1a",
   authkey => "default",
 };

 task "prepare_box", sub {
   box {
     my ($box) = @_;

     $box->name("mybox");
     $box->ami("ami-c1aaabb5");
     $box->type("m1.large");

     $box->security_group("default");

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

     $box->setup("setup_task");
   };
 };

If you want to use a YAML file you can use the following template.

 type: Amazon
 amazon:
   access_key: your-access-key
   private_access_key: your-private-access-key
   region: ec2.eu-west-1.amazonaws.com
   zone: eu-west-1a
   auth_key: default
 vms:
   vmone:
     ami: ami-c1aaabb5
     type: m1.large
     security_group: default
     setup: setup_task

And then you can use it the following way in your Rexfile.

 use Rex::Commands::Box init_file => "file.yml";

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

METHODS
See also the Methods of Rex::Box::Base. This module inherits all methods of it.

  new(name => $vmname)
Constructor if used in OO mode.

 my $box = Rex::Box::VBox->new(name => "vmname");

  ami($ami_id)
Set the AMI ID for the box.

  type($type)
Set the type of the Instance. For example "m1.large".

  security_group($sec_group)
Set the Amazon security group for this Instance.

  forward_port(%option)
Not available for Amazon Boxes.

  share_folder(%option)
Not available for Amazon Boxes.

  info
Returns a hashRef of vm information.