Tomcat Rex · 5 min read · Feb 14, 2026
Instalar Tomcat y Desplegar Aplicaciones Web con Rex
Instalar Tomcat y Desplegar Aplicaciones Web con Rex
En este tutorial te mostraré cómo gestionar tus instalaciones de Tomcat y cómo desplegar Webapps de manera repetible con Rex. En este tutorial usaré Debian Squeeze, pero Rex también está disponible para otras distribuciones.
Introducción a Rex
Rex es una herramienta, escrita en Perl, para facilitar la administración y el despliegue de muchos servidores.
Desde el sitio web: Con (R)?ex puedes gestionar todas tus máquinas desde un punto central a través del proceso completo de gestión de configuración y despliegue de software.
El punto de partida de un proyecto Rex es su Rexfile. Rex analizará este archivo y ejecutará las tareas definidas en tus servidores. Solo piénsalo como un Makefile, pero está escrito en Perl.
Cada Rexfile se divide en tareas. Puedes definir una tarea para cada paso lógico para instalar y configurar tus servidores.
Obtener el Software
Solo necesitas Rex en tu estación de trabajo. No se necesita software adicional en tus servidores. Solo necesitas acceso ssh root a tus servidores.
Puedes descargar Rex desde rexify.org/get/. Los paquetes están disponibles para CentOS, Debian, Ubuntu, Fedora, Mageia y OpenSuSE. Las fuentes están disponibles en CPAN.
Para Debian, solo agrega el repositorio de Rex a tu directorio sources.list.d.
echo 'deb http://rex.linux-files.org/debian/ squeeze rex' >> /etc/apt/sources.listDespués de eso, agrega la clave GPG al llavero de apt.
wget -O - http://rex.linux-files.org/DPKG-GPG-KEY-REXIFY-REPO | apt-key add -Y instala el software. Instalaremos rex para la herramienta principal y rex-apache-deploy para el módulo de despliegue.
apt-get update && apt-get install rex rex-apache-deployPrepara tu Rexfile y ejecuta la primera tarea
Primero crea un directorio tomcat y cámbiate a él.
mkdir tomcat; cd tomcatDespués de eso, descarga los Módulos de Ejemplo de Rex desde github en el directorio lib. Hay un módulo de tomcat y apache que nos ayudarán.
git clone https://github.com/krimdomu/rex-example-modules.git libAhora crea el archivo Rexfile y ábrelo con tu editor favorito. Si estás usando vim, puedes usar las siguientes líneas para habilitar la resaltación de sintaxis.
:set ft=perl
:syn on# Archivo: Rexfile
# primero habilita strict y warnings
use strict;
use warnings;
# luego incluye todos los módulos de ejemplo necesarios
use ALLMODS; # esto establece la ruta de inclusión a los módulos de ejemplo de rex
use apache; # incluye el módulo apache
use apache::module;
use tomcat; # incluye el módulo tomcat
use tomcat::user;
use tomcat::role;
# establece el usuario y la contraseña para iniciar sesión en tus servidores
user "root";
password "test";
# habilita la autenticación por contraseña.
pass_auth;
# si deseas usar autenticación por clave, usa lo siguiente
# y comenta la línea "pass_auth"
# public_key "/ruta/a/tu/public.key";
# private_key "/ruta/a/tu/private.key";
# define un grupo de servidores llamado "tomcat".
# coloca todos tus servidores que deseas desplegar en ese grupo.
group tomcats => "tc01", "tc02";
desc "Instalar y Configurar Apache y Tomcat";
task "prepare", group => "tomcats", sub {
apache::setup();
apache::module::setup({name => "jk"});
tomcat::setup();
tomcat::role::add_manager();
tomcat::user::add_manager({
username => "manager",
password => "passw0rd",
});
apache::restart();
tomcat::restart();
# asegúrate de que los servicios se inicien al arrancar el sistema
service apache2 => "ensure", "started";
service tomcat6 => "ensure", "started";
};Ahora guarda el archivo, abre una terminal y cámbiate al directorio tomcat.
Para ejecutar la tarea creada en tus servidores, simplemente llámala como se muestra en la siguiente línea.
rex prepareSi deseas ver tus tareas definidas, puedes hacerlo con la opción -T.
rex -TConfigurar Apache/modjk
Después de la instalación de apache y tomcat, necesitas configurar apache/modjk para redirigir las solicitudes a tomcat.
Para hacer esto, crea un directorio llamado files y guarda tus archivos de configuración allí.
mkdir files## Archivo: files/worker.properties
## este archivo es gestionado por rex
##
worker.list=tc,jkstatus
worker.tomcat.port=8009
worker.tomcat.host=<%+ $::Network->{"networkconfiguration"}->{"eth0"}->{"ip"} %>
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1
worker.tomcat.reference=worker.template
worker.tc.type=lb
worker.tc.balance_workers=tomcat
worker.tc.sticky_session=false
worker.jkstatus.type=status
worker.template.type=ajp13Como puedes ver aquí, hay una variable especial en el archivo. Rex tiene un sistema de plantillas incorporado. Y con esta expresión obtendrás la ip del dispositivo de red eth0.
## Archivo: files/modjk.conf
## este archivo es gestionado por rex
##
JkWorkersFile /etc/apache2/worker.properties
JkLogFile /var/log/apache2/mod_jk.log
JkShmFile /var/log/apache2/jk.shm
JkMount /* tc
# Agrega el punto de montaje jkstatus
JkMount /jkmanager/* jkstatus
JkMount jkstatus
En escenarios del mundo real también habría un server.xml. Pero para este tutorial solo vas a parchear el archivo para habilitar el conector AJP.
Ahora abre tu Rexfile y agrega una segunda tarea de configuración.
desc "Configurar Apache y Tomcat";
task "configure", group => "tomcats", sub {
# elimina el vhost predeterminado
unlink "/etc/apache2/sites-enabled/000-default";
# sube el archivo, pero analiza el archivo como una plantilla
file "/etc/apache2/worker.properties",
content => template("files/worker.properties"),
owner => "root",
group => "root",
mode => 640,
on_change => sub { apache::restart(); };
# sube los archivos de configuración
file "/etc/apache2/conf.d/modjk.conf",
source => "files/modjk.conf",
owner => "root",
group => "root",
mode => 640,
on_change => sub { apache::restart(); };
# parchea server.xml para permitir acceso ajp
# en el uso del mundo real, usa una plantilla para este archivo
my $content = cat "/etc/tomcat6/server.xml";
$content =~ s/<\/Service>/ \n<\/Service>/;
file "/etc/tomcat6/server.xml",
content => $content,
on_change => sub { tomcat::restart(); };
};Ahora puedes ejecutar la tarea de configuración para configurar tu servidor.
rex configureDesplegando una Aplicación
Bien, después de haber desplegado y configurado tu servidor, necesitas subir la aplicación que el servidor debe servir.
Hay un módulo de Rex para tareas de despliegue simples llamado Rex::Apache::Deploy. Ya lo has instalado.
En este tutorial desplegarás psi-probe. Puedes descargarlo desde code.google.com. Crea una carpeta llamada packages, extrae el archivo zip y copia el archivo probe.war en ese directorio.
mkdir packages
cd packages
wget http://psi-probe.googlecode.com/files/probe-2.2.3.zip
unzip probe-2.2.3.zipAhora abre tu Rexfile y agrega las siguientes líneas a los otros comandos de uso.
# incluye soporte de despliegue para tomcat
use Rex::Apache::Deploy "Tomcat";Y crea una tercera tarea llamada deploy.
desc "Desplegar la aplicación";
task "deploy", group => "tomcats", sub {
# establece la ruta del contexto para nuestra aplicación tomcat
context_path "/psiprobe";
# despliega la app.
deploy "packages/probe.war",
username => "manager",
password => "passw0rd",
port => 8080;
};Juntándolo Todo
Ahora puedes ejecutar las 3 tareas una tras otra y el resultado es un servidor listo para servir nuestro contenido. Por último, puedes definir un batch que ejecute todas tus tareas, para que no necesites escribir tanto.
Abre tu Rexfile y agrega la siguiente línea al final.
desc "Ejecutar todas las tareas prepare, configure y deploy";
batch all => "prepare", "configure", "deploy";Puedes ejecutar este batch con la opción -b.
rex -b allAhora, después de que todas las tareas se hayan ejecutado, puedes acceder a la aplicación recién desplegada en /psiprobe en tu servidor.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.