(R)?ex Deployment & Configuration Management




Work with (R)?ex at adjust! Check out their job posting for details, or contact our fellow core developer, FErki.


(R)?ex 1.4.1 released, fixing many bugs. See the release notes for more details.


(R)?ex 1.4.0 released, containing lots of goodies. See the release notes for more details.


(R)?ex 1.3.3 released, fixing a bunch of bugs. See the release notes for more details.


adjust GmbH is sponsoring the (R)?ex project with a new build server. Thank you for your support!


(R)?ex 1.3.2 released, fixing issues related to file manipulation when run on BSDs. See the release notes for more details.


(R)?ex 1.3.1 released, fixing Rex::Commands::DB related tests.


Read the second part of "Rex in practice" series about Test-driven infrastructure.


repositor.io 1.1.0 released. repositor.io is a repository management tool for apt, yum, yast and docker. This is a bugfix release with fixes for ubuntu and centos7 installation media mirroring.


(R)?ex 1.2.0 released. See the release notes for more details.


View the slides of the talk An introduction to Rex from Andy Beverley.




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 » 0.36

Release notes for 0.36


You can download OpenNebula module with the following command:

Copy to clipboard
bash# rexify --use Rex::Cloud::OpenNebula
Copy to clipboard
use 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 "";

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.

Copy to clipboard
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};

Fork me on GitHub
Google Group / Twitter / GitHub / Mailinglist / irc.freenode.net #rex   -.รด.-   Disclaimer