(R)?ex Deployment & Configuration Management

Search

News

2014-10-26
(R)?ex 0.55.1 released. This is mainly a bugfix release with a minor new feature. See the release notes for more details.
2014-10-20
(R)?ex 0.55.0 released. Now you can create self-containing bundles of your Rex project. See the release notes for more details.
2014-10-03
Announcing first version of JobControl - the official Rex webinterface. See first steps guide for an introduction.
2014-10-03
(R)?ex 0.54.3 released. This is mainly a bugfix release but with one cool new feature. See the release page for more information.
2014-09-14
(R)?ex 0.53.1 released. See the release page for more information.
2014-09-02
We started developing a Webfrontend for Rex. Feel free to help and give feedback on Github.
2014-09-01
(R)?ex 0.52.1 released. This release is mostly a bugfix and enhancement release. See the release page for more information.
2014-07-02
For the website and build.rexify.org we are now using SSL certificates signed by CACert.org.
2014-05-31
Read the new howto to setup OpenLDAP and SSSD with Rex.

Conferences

2014-09-19

This year there is a Rex workshop on the Kieler LinuxTag. You can register for this workshop in the workshop page.

Need Help?

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

Professional support is also available.

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 believe 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 {
  pkg "apache2",
    ensure => "latest";

  service "apache2",
    ensure => "started";
};

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 {
  pkg "apache2",
    ensure => "latest";

  service "apache2",
    ensure => "started";
};

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"; };
};
comments powered by Disqus
Fork me on GitHub
Google Group / Twitter / GitHub / Mailinglist / irc.freenode.net #rex   -.ô.-   Disclaimer