[Remote EXecution]. Herramienta que facilita la ejecución de comandos en múltiples servidores remotos. Se puede definir tareas pequeñas, encadenarlas en lotes, vincularlas con servidores o grupos de servidores y ejecutarlas fácilmente desde la terminal. Incluye la herramienta rexify.
$ rex deploy --hosts="web1.ejemplo.com,web2.ejemplo.com"
$ rex deploy --debug
$ rex -T
$ rex tarea1 tarea2 tarea3
$ rex -u USER -H REMOTE_HOST -e 'say run(q{hostname})'
$ rex -u USER -H REMOTE_HOST -e 'say for run(q{ls -l})'
1.-
$ rex -e "say run 'uptime'" -H "server1 server2" -u USER -p PASS
Esta linea es equivalente a colocar en Rexfile el contenido:
$ nano Rexfile
user "USER";
password "PASS";
desc "Uptime estimate";
task "uptime", sub {
say run 'uptime';
};
Y luego simplemente lanzar:
$ rex uptime
Ejemplo de archivo de configuración
2.-
Ejemplo que solo instala y arranca nginx
$ nano Rexfile
use Rex -feature => ['1.4'];
user 'root';
task 'nginx_basic', sub {
update_package_db;
pkg 'nginx', ensure => 'present';
service 'nginx', ensure => 'started';
};
$ rex nginx_basic