Tomcat Rex · 5 min read · Feb 14, 2026
Instalar Tomcat E Implantar Aplicações Web Com Rex
Instalar Tomcat E Implantar Aplicações Web Com Rex
Neste tutorial, eu vou mostrar como gerenciar suas instalações do Tomcat e como implantar Webapps de uma maneira repetível com Rex. Neste tutorial, eu vou usar Debian Squeeze, mas o Rex também está disponível para outras distribuições.
Introdução ao Rex
Rex é uma ferramenta, escrita em Perl, para facilitar a administração e implantação de muitos servidores.
Do site: Com (R)?ex você pode gerenciar todas as suas máquinas a partir de um ponto central através do processo completo de gerenciamento de configuração e implantação de software.
O ponto de partida de um projeto Rex é seu Rexfile. Rex irá analisar este arquivo e executar as tarefas definidas em seus servidores. Pense nisso como um Makefile, mas escrito em Perl.
Cada Rexfile é dividido em tarefas. Você pode definir uma tarefa para cada passo lógico para instalar e configurar seus servidores.
Obter o Software
Você só precisa do Rex em sua estação de trabalho. Nenhum software adicional é necessário em seus servidores. Você só precisa de acesso ssh root aos seus servidores.
Você pode baixar o Rex de rexify.org/get/. Pacotes estão disponíveis para CentOS, Debian, Ubuntu, Fedora, Mageia e OpenSuSE. As fontes estão disponíveis no CPAN.
Para Debian, basta adicionar o repositório Rex ao seu diretório sources.list.d.
echo 'deb http://rex.linux-files.org/debian/ squeeze rex' >> /etc/apt/sources.listDepois disso, adicione a chave GPG ao keyring do apt.
wget -O - http://rex.linux-files.org/DPKG-GPG-KEY-REXIFY-REPO | apt-key add -E instale o software. Vamos instalar o rex para a ferramenta principal e rex-apache-deploy para o módulo de implantação.
apt-get update && apt-get install rex rex-apache-deployPrepare seu Rexfile e execute a primeira tarefa
Primeiro, crie um diretório tomcat e mude para ele.
mkdir tomcat; cd tomcatDepois disso, faça checkout dos Módulos de Exemplo do Rex do github para o diretório lib. Há um módulo tomcat e apache que nos ajudará.
git clone https://github.com/krimdomu/rex-example-modules.git libAgora crie o arquivo Rexfile e abra-o com seu editor favorito. Se você estiver usando vim, pode usar as seguintes linhas para habilitar a realce de sintaxe.
:set ft=perl
:syn on# Arquivo: Rexfile
# primeiro habilite strict e warnings
use strict;
use warnings;
# então inclua todos os módulos de exemplo necessários
use ALLMODS; # isso define o caminho de inclusão para os módulos de exemplo do rex
use apache; # incluir módulo apache
use apache::module;
use tomcat; # incluir módulo tomcat
use tomcat::user;
use tomcat::role;
# defina usuário e senha para login em seus servidores
user "root";
password "test";
# habilite autenticação por senha.
pass_auth;
# se você quiser usar autenticação por chave, use o seguinte
# e comente a linha "pass_auth"
# public_key "/path/to/your/public.key";
# private_key "/path/to/your/private.key";
# defina um grupo de servidores chamado "tomcat".
# coloque todos os seus servidores que você deseja implantar nesse grupo.
group tomcats => "tc01", "tc02";
desc "Instalar e Configurar Apache e 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();
# certifique-se de que os serviços iniciem na inicialização do sistema
service apache2 => "ensure", "started";
service tomcat6 => "ensure", "started";
};Agora salve o arquivo, abra um terminal e mude para o diretório tomcat.
Para executar a tarefa criada em seus servidores, basta chamá-la como mostrado na próxima linha.
rex prepareSe você quiser visualizar suas tarefas definidas, pode fazer isso com a opção -T.
rex -TConfigurar Apache/modjk
Após a instalação do apache e tomcat, você precisa configurar apache/modjk para redirecionar as solicitações para o tomcat.
Para fazer isso, crie um diretório chamado files e salve seus arquivos de configuração lá.
mkdir files## Arquivo: files/worker.properties
## este arquivo é gerenciado pelo 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 você pode ver aqui, há uma variável especial no arquivo. Rex tem um sistema de template embutido. E com essa expressão você obterá o ip do dispositivo de rede eth0.
## Arquivo: files/modjk.conf
## este arquivo é gerenciado pelo rex
##
JkWorkersFile /etc/apache2/worker.properties
JkLogFile /var/log/apache2/mod_jk.log
JkShmFile /var/log/apache2/jk.shm
JkMount /* tc
# Adicione o ponto de montagem jkstatus
JkMount /jkmanager/* jkstatus
JkMount jkstatus
Em cenários do mundo real, haveria um server.xml também. Mas para este tutorial, você só vai corrigir o arquivo para habilitar o conector AJP.
Agora abra seu Rexfile e adicione uma segunda tarefa de configuração.
desc "Configurar Apache e Tomcat";
task "configure", group => "tomcats", sub {
# remova o vhost padrão
unlink "/etc/apache2/sites-enabled/000-default";
# faça upload do arquivo, mas analise o arquivo como um template
file "/etc/apache2/worker.properties",
content => template("files/worker.properties"),
owner => "root",
group => "root",
mode => 640,
on_change => sub { apache::restart(); };
# faça upload dos arquivos de configuração
file "/etc/apache2/conf.d/modjk.conf",
source => "files/modjk.conf",
owner => "root",
group => "root",
mode => 640,
on_change => sub { apache::restart(); };
# corrija server.xml para permitir acesso ajp
# no uso do mundo real, use um template para este arquivo
my $content = cat "/etc/tomcat6/server.xml";
$content =~ s/<\/Service>/ \n<\/Service>/;
file "/etc/tomcat6/server.xml",
content => $content,
on_change => sub { tomcat::restart(); };
};Agora você pode executar a tarefa de configuração para configurar seu servidor.
rex configureImplantando uma Aplicação
Bem, depois de ter implantado e configurado seu servidor, você precisa fazer upload da aplicação que o servidor deve servir.
Há um módulo Rex para tarefas de implantação simples chamado Rex::Apache::Deploy. Você já o instalou.
Neste tutorial, você irá implantar o psi-probe. Você pode baixá-lo de code.google.com. Crie uma pasta chamada packages, extraia o arquivo zip e copie o arquivo probe.war para esse diretório.
mkdir packages
cd packages
wget http://psi-probe.googlecode.com/files/probe-2.2.3.zip
unzip probe-2.2.3.zipAgora abra seu Rexfile e coloque as seguintes linhas nos outros comandos de uso.
# incluir suporte à implantação para tomcat
use Rex::Apache::Deploy "Tomcat";E crie uma terceira tarefa chamada deploy.
desc "Implantar a aplicação";
task "deploy", group => "tomcats", sub {
# defina o caminho do contexto para nossa aplicação tomcat
context_path "/psiprobe";
# implante o app.
deploy "packages/probe.war",
username => "manager",
password => "passw0rd",
port => 8080;
};Juntando tudo
Agora você pode executar todas as 3 tarefas uma após a outra e o resultado é um servidor pronto para servir nosso conteúdo. Por fim, você pode definir um lote que executa todas as suas tarefas, para que você não precise escrever tanto.
Abra seu Rexfile e anexe a próxima linha a ele.
desc "Executar todas as tarefas prepare, configure e deploy";
batch all => "prepare", "configure", "deploy";Você pode executar esse lote com a opção -b.
rex -b allAgora, após todas as tarefas serem executadas, você pode acessar a aplicação recém implantada em /psiprobe em seu servidor.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.