(R)?ex Deployment & Configuration Management

Search

News

2016-09-08

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

2016-07-16

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

2016-03-07

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

2015-09-04

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

2015-06-22

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

2015-06-17

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

2015-06-08

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

2015-05-27

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

2015-05-09

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.

2015-05-03

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

2015-03-27

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

Conferences

2016-06-21

Training

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.41

Release notes for 0.41

Common

Copy to clipboard
task "prepare", "mysystem01", sub {
    install "ntp";
    say last_command_output;
};
Copy to clipboard
task "prepare", "mysystem01", sub {
   my @env = cron env => user => list;
   cron env => user => add => {
      MYVAR => "foo",
   };
   cron env => user => delete => "MYVAR";
};

This module doesn't use rsync, so it works with sudo and Windows, too. And it is also possible to use it with templates. If a file should be used as a template, you have to name it somefile.ext.tpl.

Copy to clipboard
task "prepare", "mysystem01", sub {
   # upload directory recursively to remote system. 
   sync_up "/local/directory", "/remote/directory";

   sync_up "/local/directory", "/remote/directory", {
      # setting custom file permissions for every file
      files => {
         owner => "foo",
         group => "bar",
         mode  => 600,
      },
      # setting custom directory permissions for every directory
      directories => {
         owner => "foo",
         group => "bar",
         mode  => 700,
      },
   };

   # download a directory recursively from the remote system to the local machine
   sync_down "/remote/directory", "/local/directory";
};

To get a list of all returned information:

Copy to clipboard
use Data::Dumper;
my %hw_info = Rex::Hardware->get(qw/VirtInfo/);
print Dumper(\%hw_info);

To get the hypervisor:

Copy to clipboard
task "info", "mysystem01", sub {
   my %hw_info = Rex::Hardware->get(qw/VirtInfo/);

   say "Role: " . $hw_info{VirtInfo}->{virtualization_role};
   say "Type: " . $hw_info{VirtInfo}->{virtualization_type};
};
Copy to clipboard
task "prepare", "myserver01", sub {
   my $package = case operating_system, {
                     Debian => "vim",
                     CentOS => "vim-enhanced",
                     default => "vim",
                 };

   install $package;
};
Copy to clipboard
   $instance = cloud_instance create => {
             image_id => "ami-5187bb25",
             name     => "test01",
             key      => "thekey",
             zone     => "eu-west-1a",
             type     => "m1.large",
             security_groups => ["alltcpfoo", "default"],
          };

Documentation

Rex/Gearman

Rex/Boxes

Copy to clipboard
type: VBox
#vbox:
#   headless: 1
vms:
   -  name: mem01
      url: http://box.rexify.org/box/ubuntu-server-12.10-amd64.ova
      network:
         1:
            type: bridged
            bridge: "en0: Ethernet"
      setup: setup_memcache
   -  name: db01
      url: http://box.rexify.org/box/ubuntu-server-12.10-amd64.ova
      network:
         1:
            type: bridged
            bridge: "en0: Ethernet"
      setup: setup_db
   -  name: www01
      url: http://box.rexify.org/box/ubuntu-server-12.10-amd64.ova
      network:
         1:
            type: bridged
            bridge: "en0: Ethernet"
      setup: setup_frontend
Fork me on GitHub
Google Group / Twitter / GitHub / Mailinglist / irc.freenode.net #rex   -.รด.-   Disclaimer