NAME

Rex - Remote Execution

DESCRIPTION

Rex is a command line tool which executes commands on remote servers. Define tasks in Perl and execute them on remote servers or groups of servers.

Rex can be used to:

  • Deploy web applications to servers sequentially or in parallel.

  • Automate common tasks.

  • Provision servers using Rex's builtin tools.

You can find examples and howtos on http://rexify.org/

GETTING HELP

SYNOPSIS

 # In a Rexfile:
 use Rex -feature => [qw/1.3/];

 user "root";
 password "ch4ngem3";

 desc "Show Unix version";
 task "uname", sub {
    say run "uname -a";
 };

 1;

 # On the command line:
 bash# rex -H server[01..10] uname

See rex for more information about how to use rex on the command line.

See Rex::Commands for a list of all commands you can use.

CLASS METHODS

get_current_connection

This function is deprecated since 0.28! See Rex::Commands::connection.

Returns the current connection as a hashRef.

server

The server name

ssh

1 if it is a ssh connection, 0 if not.

is_ssh

Returns 1 if the current connection is a ssh connection. 0 if not.

is_local

Returns 1 if the current connection is local. Otherwise 0.

is_sudo

Returns 1 if the current operation is executed within sudo.

get_sftp

Returns the sftp object for the current ssh connection.

connect

Use this function to create a connection if you use Rex as a library.

use Rex;
use Rex::Commands::Run;
use Rex::Commands::Fs;

Rex::connect(
  server    => "remotehost",
  user      => "root",
  password   => "f00b4r",
  private_key => "/path/to/private/key/file",
  public_key  => "/path/to/public/key/file",
);

if(is_file("/foo/bar")) {
  print "Do something...\n";
}

my $output = run("uptime");

CONTRIBUTORS

Many thanks to the contributors for their work. Please see CONTRIBUTORS file for a complete list.

LICENSE

Rex is a free software, licensed under: The Apache License, Version 2.0, January 2004