(R)?ex the friendly automation framework

News

2020-12-05
Rex-1.13.2

The Rex-1.13.2 release is now available on CPAN. It contains only documentation updates, mostly for the built-in template capabilities, but also fixes a few typos.

2020-11-05
Rex-1.13.1

Happy 10th birthday, Rex!

The Rex-1.13.1 release is now available on CPAN. It is focusing on CMDB bugfixes and documentation, while also fixing a missing feature flag. Upgrade is recommended for all users.

2020-10-05
Rex-1.13.0

The Rex-1.13.0 release is now available on CPAN. It adds on_no_change hooks for file management commands to trigger further actions when files are left unchanged. Upgrade is recommended for all users.

2020-09-05
Rex-1.12.2

The Rex-1.12.2 release is now available on CPAN. It fixes various regressions, as well as bugs around file management. Upgrade is highly recommended for all users.

2020-08-05
Rex-1.12.1

The Rex-1.12.1 release is now available on CPAN. It adds documentation for feature flags, and fixes a release packaging issue.

Conferences

2016-06-21

» Home » Docs » Rex book » Infrastructure » SSH as an agent

SSH as an agent

To setup an environment to work with Rex you don't have to do much. You have to install Rex on your workstation or a central administration server. For most distributions you'll find packages on the package server. If you want to build Rex from source you have to install the following dependencies.

Perl (at least version 5.8.8)

On the server side you only need a working perl installation. The version doesn't matter. And of course a working ssh server and a valid user.

Rex will connect to your servers via SSH and execute the commands you've defined in the tasks. The logic is all done by your workstation (or administration server). This means, if you query a database, dns or a CMDB inside a task your workstation will do this and not your server. This is essential for security.

Parallelism

If you have many servers you want to connect to, you usually don't want to connect sequentially. You can define the number of parallel connections Rex should use.

use Rex -feature => ['1.0'];

user "root";
password "foob4r";

group frontends => "frontend[01..50]";

parallelism 15;

task "prepare",
  group => "frontends",
  sub {
    # do something
  };

This will connect to 15 servers in parallel and executes the task.

Proudly powered by Statocles

GitHub / IRC / Twitter / Google Groups / StackShare / Mailing list / Server Fault   -.ô.-   Disclaimer