Rex
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Rex/Commands/Cloud.pm view on Meta::CPAN
private_ip_type => 'fixed';
};
=cut
sub cloud_instance_list {
return cloud_object()->list_instances(@_);
}
=head2 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"};
}
};
=cut
sub cloud_volume_list {
return cloud_object()->list_volumes();
}
=head2 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};
}
};
=cut
sub cloud_network_list {
return cloud_object()->list_networks();
}
=head2 cloud_image_list
Get a list of all available cloud images.
=cut
sub cloud_image_list {
return cloud_object()->list_images();
}
=head2 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 => {
...
};
};
=cut
sub cloud_upload_key {
return cloud_object()->upload_key();
}
=head2 get_cloud_instances_as_group
Get a list of all running instances of a cloud service. This can be used for a I<group> definition.
group fe => "fe01", "fe02", "fe03";
group ec2 => get_cloud_instances_as_group();
=cut
sub get_cloud_instances_as_group {
my @list = cloud_object()->list_running_instances();
my @ret;
for my $instance (@list) {
push( @ret, Rex::Group::Entry::Server->new( name => $instance->{"ip"} ) );
}
return @ret;
}
=head2 cloud_instance($action, $data)
This function controls all aspects of a cloud instance.
=cut
sub cloud_instance {
my ( $action, $data ) = @_;
my $cloud = cloud_object();
if ( $action eq "list" ) {
return $cloud->list_running_instances();
}
=head2 create
Create a new instance.
cloud_instance create => {
image_id => "ami-xxxxxx",
key => "ssh-key",
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.493 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )