(R)?ex Deployment & Configuration Management

Automate Everything, Relax Anytime

  • > Integrates seamless in your running environment
  • > Easy to use and extend
  • > Easy to learn, it's just plain Perl
  • > Apache 2.0 licensed
task prepare => sub {
   install "apache2";
   service apache2 => ensure => "started";
};
Read the Getting Started Guide

Search

News

2013-04-01
(R)?ex 0.41.0 released. This release brings a handfull of new functions that ease the use and bug fixes. See ChangeLog for more information.
There is also a new guide on howto use modules and templates online.
2013-03-20

We are proud to announce that Rex was voted under the Best Open Source solutions 2013 by initiative mittelstand. And we want to thank inovex for the support to make this happen.

2013-03-16
Talk from the German Perl Workshop just got uploaded to slideshare (german) and (english).
2013-02-24
(R)?ex 0.40.0 released. This release added a common CMDB interface and a simple CMDB on YAML file basis. Read the ChangeLog for all changes.

Conferences

Open Source Data Center Conference

17 - 18 April 2013 in Nuremberg

OSDC is about simplifying complex IT infrastructures with Open Source. A rare opportunity to meet with Open Source professionals and insiders, gather and share information over 2 days of presentations, hands-on workshops and social networking.

We are proud to anounce that Rex will have a booth on the LinuxTag. The LinuxTag will take place in Berlin from 22. - 25. May. LinuxTag is the most popuplar and important conference in the Linux and Open Source scene in Europe.

Come and join us, we will do live demostrations with a custom build portable mini datacenter.

If you want to help us for a day or two don't hesitate to contact @jfried83.

Need Help?

Rex is a pure Open Source project. So you can find community support in the following places.

Why use Rex?

If you have to do a task more than once, automate it!

Don‘t forget an installation step anymore. Automation reduces the risk of failure and let you do your real work.

Advantages

  • uses ssh, no agent required
  • seamless integration, no conflicts
  • easy to use and to extend
  • easy to learn, it‘s just plain perl

Open Source

We belive in the idea of open source. So Rex and all its parts are released under Apache 2.0 license.

You‘re invited to join the community to make Rex better and better.

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]" -e "say run 'uptime'"

The same, but with a Rexfile

desc "Get Disk Free";
task "disk_free", sub {
   my $output = run "df -h";
   say $output;
};

Now you can run your Task with this command

$ rex -H "frontend[01..15] middleware[01..05] db[01..04]" disk_free

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 "apache2";
};

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

   file "/etc/apache2/apache2.conf",
        source    => "files/etc/apache2/apache2.conf",
        on_change => sub { service apache2 => "reload"; };
};

Running under sudo?

You can also run everything with sudo. Just define the sudo password and activate sudo.

user "ubuntu";
group "frontend" => "frontend[01..05]";
sudo TRUE;

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

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

   file "/etc/apache2/apache2.conf",
        source    => "files/etc/apache2/apache2.conf",
        on_change => sub { service apache2 => "reload"; };
};
Fork me on GitHub