(R)?ex the friendly automation framework

News

2020-03-05
Rex-1.8.2

The Rex-1.8.2 release is now available on CPAN, fixing a bug related to task hooks.

2020-02-05
Rex-1.8.1

The Rex-1.8.1 release is now available on CPAN, improving release automation, packaging, and documentation.

2020-01-05
Rex-1.8.0

The Rex-1.8.0 release is now available on CPAN, adding initial support to manage Void Linux systems.

2019-12-05
Rex-1.7.1

The Rex-1.7.1 release is now available on CPAN, fixing a Windows testing issue, and updating some docs.

2019-11-05
Rex-1.7.0

The Rex-1.7.0 release is now available on CPAN.

Conferences

2016-06-21

Need Help?

Rex is a pure open source project, you can find community support in the following places:

Professional support is also available.

» Home » Docs » Release notes » Release notes for 0.36

Release notes for 0.36

General

You can download OpenNebula module with the following command:

⁠bash # rexify --use Rex::Cloud::OpenNebulause strict;
⁠use warnings;
⁠
⁠use Rex::Commands::Cloud;
⁠use Rex::Cloud::OpenNebula;
⁠use Data::Dumper;
⁠
⁠user "root";
⁠
⁠cloud_service "OpenNebula";
⁠cloud_auth "oneadmin", "opennebula";
⁠cloud_region "http://172.16.120.131:2633/RPC2";
⁠
⁠task "list-os", sub {
⁠    print Dumper get_cloud_operating_systems;
⁠};
⁠
⁠task "create", sub {
⁠    my $params = shift;
⁠    my $vm     = cloud_instance create => {
⁠        image => "template-1",
⁠        name  => $params->{name},
⁠    };
⁠
⁠    print Dumper($vm);
⁠};
⁠
⁠task "start", sub {
⁠    my $params = shift;
⁠    cloud_instance start => $params->{name};
⁠};
⁠
⁠task "stop", sub {
⁠    my $params = shift;
⁠    cloud_instance stop => $params->{name};
⁠};
⁠
⁠task "terminate", sub {
⁠    my $params = shift;
⁠    cloud_instance terminate => $params->{name};
⁠};
⁠
⁠task "list", sub {
⁠    print Dumper cloud_instance_list;
⁠};

With this function you can run a specific task on a given host and get the output as a return value.

⁠task "prepare", "server5", sub {
⁠
⁠    # do something    my $free_mem = run_task "get_free_mem", on => "server3";
⁠    if ( $free_mem < 100 ) {
⁠        say "Less than 100 MB free mem on server3";
⁠
⁠        # create a new server instance on server5 to unload server3    }
⁠};
⁠
⁠task "get_free_mem", sub {
⁠    return memory->{free};
⁠};

Proudly powered by Statocles

Google Group / Twitter / GitHub / Mailinglist / irc.freenode.net #rex   -.ô.-   Disclaimer