(R)?ex or simply Rex is an
open source 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 ...
tool.
It combines
Perl
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offic ...
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 on ...
(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
Digital subscriber line (DSL; originally digital subscriber loop) is a family of technologies that are used to transmit digital data over telephone lines. In telecommunications marketing, the term DSL is widely understood to mean asymmetric dig ...
, 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 Computer data storage, stored and retrieved. Without a file system, data placed in a storage me ...
,
kernel module
In computing, a loadable kernel module (LKM) is an object file that contains code to extend the running kernel, or so-called ''base kernel'', of an operating system. LKMs are typically used to add support for new hardware (as device drivers) and/o ...
, 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 h ...
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
Infrastructure as code (IaC) is the process of managing and provisioning computer data centers through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools.
The IT infrastructure managed ...
(IaC)
*
Infrastructure as Code Tools
References
External links
* {{official website, http://rexify.org
Orchestration software
Free software programmed in Perl