(R)?ex or simply Rex is an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
remote execution,
configuration management and
software deployment
Software deployment is all of the activities that make a software system available for use.
The general deployment process consists of several interrelated activities with possible transitions between them. These activities can occur on the p ...
tool.
It combines
Perl
Perl is a family of two High-level programming language, high-level, General-purpose programming language, general-purpose, Interpreter (computing), interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it ...
and
Secure Shell
The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution.
SSH applications are based ...
(SSH) for a portable, centralistic approach to its problem domain.
''Rex'' is an acronym for "Remote Execution".
History
Rex originated from the need of a flexible, parallel remote execution application with software deployment and configuration management capabilities. Unsatisfied with available implementations in 2010, the author of Rex, Jan Gehring, decided to implement a Perl-based tool to cope with his requirements.
Design

Rex is a stand-alone application executing either a single command or so-called ''tasks''. Tasks are specified on the command line and are defined in ''Rexfiles''. A Rexfile takes a similar role for remote execution as a Makefile does for application installation.
It is defined via a small
DSL, but is essentially a Perl script. Therefore, it can contain arbitrary Perl as well.
For code reuse, configuration instructions are placed in modules which can be included by a Rexfile. A template system for configuration files is available.
For Rex to be able to work, the managed targets must provide a running SSH server and a Perl 5 interpreter.
Rex serves a variety of applications. Examples are user & group,
cron,
filesystem
In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
,
kernel module, process and
virtual machine
In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized har ...
management.
Public recognition
Rex is discussed on conferences and in related press releases.
It was voted under the Best Open Source solutions 2013 b
Initiative Mittelstand
See also
*
Comparison of open-source configuration management software
*
Infrastructure as code (IaC)
*
Infrastructure as Code Tools
References
External links
* {{official website, http://rexify.org
Orchestration software
Free software programmed in Perl