What is (R)?ex

With (R)?ex you can manage all your boxes from a central point through the complete process of configuration management and software deployment.

Start exploring (R)?ex with this First Steps Guide.

We are always open for new suggestions and whishes. If you miss a feature just drop us a request.

Latest News

2012-02-17 (R)?ex 0.25.3 released. Fixed a few bugs . See ChangeLog for more information.

2012-02-15 (R)?ex 0.25.2 released. Added commands to rexify to use the new community recipe directory. See for more information.

2012-02-13 (R)?ex 0.24.1 released. Added support to use Rex as library. Added inline templates. See Gitub / New 0.24 for a complete list and examples.

2012-01-14 (R)?ex 0.23.0 released. Added support for Redhat Enterprise Linux 5 & 6.

2012-01-12 (R)?ex 0.22.0 released. Added before / after jobs and other things. See Gitub / New 0.22

2011-12-13 Many thanks to Diogo Leal for his talk at Hack'n Rio. He has uploaded his slides to Slideshare

2011-12-01 Uploaded the lightning Talk from linuxday.at to Slideshare. (German language)

2011-10-22 (R)?ex 0.21.0 released. Added SCM module. Improved user module, and more. See Gitub / New 0.21

Features

Need Help?

Some Examples

Uptime?

This command line example will execute "uptime" on all the given hosts (frontend01, frontend02, ...).

rex -H "frontend[01..15] middleware[01..05] db[01..04]" "say run 'uptime'"

The same, but with a Rexfile

desc "Get uptime";
task "uptime", sub {
   say run "uptime";
};
rex -H "frontend[01..15] middleware[01..05] db[01..04]" uptime

Simple Website Deployment

This example will sync all files (and directories) in html to /var/www/rexify.org/html on the server rexify.org.


user "my-user";
password "my-password";

pass_auth;

desc "Upload website";
task "upload", "rexify.org", sub {

   sync "html/*", "/var/www/rexify.org/html";

};

Keep Your Configuration In Sync

This example will install the Apache Webserver on 5 servers and keep the configuration in sync. If the configuration file was changed it will automatically reload apache.

If this task gets executed against a virgin host (where no apache is installed) it will first install it.


user "root";

group "frontend" => "frontend[01..05]";

desc "Prepare Frontend Server";
task "prepare", group => "frontend", sub {

   install package => "apache2";

};

desc "Keep Configuration in sync";
task "configure", group => "frontend", sub {

   needs "prepare";

   file "/etc/httpd/conf/httpd.conf",
        source => "files/etc/httpd/conf/httpd.conf",
        on_change => service(httpd => "reload");

};
Fork me on GitHub