GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  REX::COMMANDS::CLOUD (3)

.ds Aq ’

NAME

Rex::Commands::Cloud - Cloud Management Commands

CONTENTS

DESCRIPTION

With this Module you can manage different Cloud services. Currently it supports Amazon EC2, Jiffybox and OpenStack.

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

SYNOPSIS



 use Rex::Commands::Cloud;

 cloud_service "Amazon";
 cloud_auth "your-access-key", "your-private-access-key";
 cloud_region "ec2.eu-west-1.amazonaws.com";

 task "list", sub {
   print Dumper cloud_instance_list;
   print Dumper cloud_volume_list;
 };

 task "create", sub {
   my $vol_id = cloud_volume create => { size => 1, zone => "eu-west-1a", };

   cloud_instance create => {
       image_id => "ami-xxxxxxx",
       name    => "test01",
       key    => "my-key",
       volume  => $vol_id,
       zone    => "eu-west-1a",
     };
 };

 task "destroy", sub {
   cloud_volume detach => "vol-xxxxxxx";
   cloud_volume delete => "vol-xxxxxxx";

   cloud_instance terminate => "i-xxxxxxx";
 };



EXPORTED FUNCTIONS

    cloud_service($cloud_service)

Define which cloud service to use.
Services
Amazon
Jiffybox
OpenStack

cloud_auth($param1, CW$param2, ...)

Set the authentication for the cloudservice.

For example for Amazon it is:



 cloud_auth($access_key, $secret_access_key);



For JiffyBox:



 cloud_auth($auth_key);



For OpenStack:



 cloud_auth(
  tenant_name => tenant,
  username    => user,
  password    => password,
 );



    cloud_region($region)

Set the cloud region.

    cloud_instance_list

Get all instances of a cloud service.



 task "list", sub {
   for my $instance (cloud_instance_list()) {
     say "Arch  : " . $instance->{"architecture"};
     say "IP   : " . $instance->{"ip"};
     say "ID   : " . $instance->{"id"};
     say "State : " . $instance->{"state"};
   }
 };



There are some parameters for this function that can change the gathering of ip addresses for some cloud providers (like OpenStack).



 task "list", sub {
   my @instances = cloud_instance_list
                      private_network => private,
                      public_network  => public,
                      public_ip_type  => floating,
                      private_ip_type => fixed;
 };



    cloud_volume_list

Get all volumes of a cloud service.



 task "list-volumes", sub {
   for my $volume (cloud_volume_list()) {
     say "ID     : " . $volume->{"id"};
     say "Zone    : " . $volume->{"zone"};
     say "State   : " . $volume->{"state"};
     say "Attached : " . $volume->{"attached_to"};
   }
 };



    cloud_network_list

Get all networks of a cloud service.



 task "network-list", sub {
   for my $network (cloud_network_list()) {
     say "network  : " . $network->{network};
     say "name    : " . $network->{name};
     say "id     : " . $network->{id};
   }
 };



    cloud_image_list

Get a list of all available cloud images.

    cloud_upload_key

Upload public SSH key to cloud provider



 private_key ~/.ssh/mykey
 public_key  ~/.ssh/mykey.pub;

 task "cloudprovider", sub {
   cloud_upload_key;

   cloud_instance create => {
     ...
   };
 };



    get_cloud_instances_as_group

Get a list of all running instances of a cloud service. This can be used for a group definition.



 group fe  => "fe01", "fe02", "fe03";
 group ec2 => get_cloud_instances_as_group();



cloud_instance($action, CW$data)

This function controls all aspects of a cloud instance.

    create

Create a new instance.



 cloud_instance create => {
     image_id => "ami-xxxxxx",
     key    => "ssh-key",
     name    => "fe-ec2-01",  # name is not necessary
     volume  => "vol-yyyyy",  # volume is not necessary
     zone    => "eu-west-1a",  # zone is not necessary
     floating_ip  => "89.39.38.160" # floating_ip is not necessary
   };



    start

Start an existing instance



 cloud_instance start => "instance-id";



    stop

Stop an existing instance



 cloud_instance stop => "instance-id";



    terminate

Terminate an instance. This will destroy all data and remove the instance.



 cloud_instance terminate => "i-zzzzzzz";



    get_cloud_regions

Returns all regions as an array.

cloud_volume($action , CW$data)

This function controlls all aspects of a cloud volume.

    create

Create a new volume. Size is in Gigabytes.



 task "create-vol", sub {
   my $vol_id = cloud_volume create => { size => 1, zone => "eu-west-1a", };
 };



    attach

Attach a volume to an instance.



 task "attach-vol", sub {
   cloud_volume attach => "vol-xxxxxx", to => "server-id";
 };



    detach

Detach a volume from an instance.



 task "detach-vol", sub {
   cloud_volume detach => "vol-xxxxxx", from => "server-id";
 };



    delete

Delete a volume. This will destroy all data.



 task "delete-vol", sub {
   cloud_volume delete => "vol-xxxxxx";
 };



    get_cloud_floating_ip

Returns first available floating IP



 task "get_floating_ip", sub {

   my $ip = get_cloud_floating_ip;

   my $instance = cloud_instance create => {
      image_id => edffd57d-82bf-4ffe-b9e8-af22563741bf,
      name => instance1,
      plan_id => 17,
      floating_ip => $ip
    };
 };



    cloud_network

    create

Create a new network.



 task "create-net", sub {
   my $net_id = cloud_network create => { cidr => 192.168.0.0/24, name => "mynetwork", };
 };



    delete

Delete a network.



 task "delete-net", sub {
   cloud_network delete => 18a4ccf8-f14a-a10d-1af4-4ac7fee08a81;
 };



    get_cloud_availability_zones

Returns all availability zones of a cloud services. If available.



 task "get-zones", sub {
   print Dumper get_cloud_availability_zones;
 };



    get_cloud_plans

Retrieve information of the available cloud plans. If supported.

    get_cloud_operating_systems

Retrieve information of the available cloud plans. If supported.

    cloud_object

Returns the cloud object itself.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 REX::COMMANDS::CLOUD (3) 2016-03-07

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.