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.
2012-05-08 (R)?ex 0.28.0 released. Mostly a bugfix release. See ChangeLog for a complete list of changes.
2012-05-05 (R)?ex 0.27.0 released. This release adds support for Ubuntu 12.04. See ChangeLog for a complete list of changes.
2012-03-11 (R)?ex 0.26.0 released. This release adds support to run everything within a sudo environment. See ChangeLog for a complete list of changes and examples.
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.
)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'"
desc "Get uptime";
task "uptime", sub {
say run "uptime";
};
rex -H "frontend[01..15] middleware[01..05] db[01..04]" uptime
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";
};
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 {
prepare();
file "/etc/httpd/conf/httpd.conf",
source => "files/etc/httpd/conf/httpd.conf",
on_change => sub { service httpd => "reload"; };
};