Tomcat Deployment · 5 min read · Feb 14, 2026
Installer Tomcat et déployer des applications Web avec Rex
Installer Tomcat et déployer des applications Web avec Rex
Dans ce tutoriel, je vais vous montrer comment gérer vos installations Tomcat et comment déployer des Webapps de manière répétable avec Rex. Dans ce tutoriel, j’utiliserai Debian Squeeze, mais Rex est également disponible pour d’autres distributions.
Introduction à Rex
Rex est un outil, écrit en Perl, pour faciliter l’administration et le déploiement de nombreux serveurs.
Depuis le site Web : Avec (R)?ex, vous pouvez gérer toutes vos machines depuis un point central à travers le processus complet de gestion de configuration et de déploiement de logiciels.
Le point de départ d’un projet Rex est son Rexfile. Rex va analyser ce fichier et exécuter les tâches définies sur vos serveurs. Pensez-y comme à un Makefile, mais écrit en Perl.
Chaque Rexfile est divisé en tâches. Vous pouvez définir une tâche pour chaque étape logique pour installer et configurer vos serveurs.
Obtenir le logiciel
Vous n’avez besoin de Rex que sur votre station de travail. Aucun logiciel supplémentaire n’est nécessaire sur vos serveurs. Vous avez juste besoin d’un accès root ssh à vos serveurs.
Vous pouvez télécharger Rex depuis rexify.org/get/. Des paquets sont disponibles pour CentOS, Debian, Ubuntu, Fedora, Mageia et OpenSuSE. Les sources sont disponibles sur CPAN.
Pour Debian, ajoutez simplement le dépôt Rex à votre répertoire sources.list.d.
echo 'deb http://rex.linux-files.org/debian/ squeeze rex' >> /etc/apt/sources.listAprès cela, ajoutez la clé GPG au trousseau de clés apt.
wget -O - http://rex.linux-files.org/DPKG-GPG-KEY-REXIFY-REPO | apt-key add -Et installez le logiciel. Nous allons installer rex pour l’outil principal et rex-apache-deploy pour le module de déploiement.
apt-get update && apt-get install rex rex-apache-deployPréparer votre Rexfile et exécuter la première tâche
Tout d’abord, créez un répertoire tomcat et changez-y.
mkdir tomcat; cd tomcatAprès cela, récupérez les modules d’exemple Rex depuis github dans le répertoire lib. Il y a un module tomcat et apache qui nous aidera.
git clone https://github.com/krimdomu/rex-example-modules.git libMaintenant, créez le fichier Rexfile et ouvrez-le avec votre éditeur préféré. Si vous utilisez vim, vous pouvez utiliser les lignes suivantes pour activer la coloration syntaxique.
:set ft=perl
:syn on# Fichier : Rexfile
# d'abord activez strict et warnings
use strict;
use warnings;
# ensuite incluez tous les modules d'exemple nécessaires
use ALLMODS; # cela définit le chemin d'inclusion vers les modules d'exemple rex
use apache; # inclure le module apache
use apache::module;
use tomcat; # inclure le module tomcat
use tomcat::user;
use tomcat::role;
# définissez l'utilisateur et le mot de passe pour vous connecter à vos serveurs
user "root";
password "test";
# activez l'authentification par mot de passe.
pass_auth;
# si vous souhaitez utiliser l'authentification par clé, utilisez ce qui suit
# et commentez la ligne "pass_auth"
# public_key "/path/to/your/public.key";
# private_key "/path/to/your/private.key";
# définissez un groupe de serveurs nommé "tomcat".
# mettez tous vos serveurs que vous souhaitez déployer dans ce groupe.
group tomcats => "tc01", "tc02";
desc "Installer et configurer Apache et 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();
# assurez-vous que les services démarrent au démarrage du système
service apache2 => "ensure", "started";
service tomcat6 => "ensure", "started";
};Maintenant, enregistrez le fichier, ouvrez un terminal et changez dans le répertoire tomcat.
Pour exécuter la tâche créée sur vos serveurs, appelez-la comme indiqué dans la ligne suivante.
rex prepareSi vous souhaitez voir vos tâches définies, vous pouvez le faire avec l’option -T.
rex -TConfigurer Apache/modjk
Après l’installation d’apache et tomcat, vous devez configurer apache/modjk pour rediriger les requêtes vers tomcat.
Pour ce faire, créez un répertoire appelé files et enregistrez vos fichiers de configuration là-bas.
mkdir files## Fichier : files/worker.properties
## ce fichier est géré par 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=ajp13Comme vous le voyez ici, il y a une variable spéciale dans le fichier. Rex a un système de templating intégré. Et avec cette expression, vous obtiendrez l’ip du périphérique réseau eth0.
## Fichier : files/modjk.conf
## ce fichier est géré par rex
##
JkWorkersFile /etc/apache2/worker.properties
JkLogFile /var/log/apache2/mod_jk.log
JkShmFile /var/log/apache2/jk.shm
JkMount /* tc
# Ajoutez le point de montage jkstatus
JkMount /jkmanager/* jkstatus
JkMount jkstatus
Dans des scénarios réels, il y aurait aussi un server.xml. Mais pour ce tutoriel, vous allez simplement patcher le fichier pour activer le connecteur AJP.
Maintenant, ouvrez votre Rexfile et ajoutez une deuxième tâche configure.
desc "Configurer Apache et Tomcat";
task "configure", group => "tomcats", sub {
# supprimez le vhost par défaut
unlink "/etc/apache2/sites-enabled/000-default";
# téléchargez le fichier, mais analysez le fichier comme un modèle
file "/etc/apache2/worker.properties",
content => template("files/worker.properties"),
owner => "root",
group => "root",
mode => 640,
on_change => sub { apache::restart(); };
# téléchargez les fichiers de configuration
file "/etc/apache2/conf.d/modjk.conf",
source => "files/modjk.conf",
owner => "root",
group => "root",
mode => 640,
on_change => sub { apache::restart(); };
# patcher server.xml pour permettre l'accès ajp
# dans un usage réel, utilisez un modèle pour ce fichier
my $content = cat "/etc/tomcat6/server.xml";
$content =~ s/<\/Service>/ \n<\/Service>/;
file "/etc/tomcat6/server.xml",
content => $content,
on_change => sub { tomcat::restart(); };
};Maintenant, vous pouvez exécuter la tâche configure pour configurer votre serveur.
rex configureDéployer une application
Eh bien, après avoir déployé et configuré votre serveur, vous devez télécharger l’application que le serveur doit servir.
Il existe un module Rex pour les tâches de déploiement simples appelé Rex::Apache::Deploy. Vous l’avez déjà installé.
Dans ce guide, vous allez déployer psi-probe. Vous pouvez le télécharger depuis code.google.com. Créez un dossier appelé packages, extrayez l’archive zip et copiez le fichier probe.war dans ce répertoire.
mkdir packages
cd packages
wget http://psi-probe.googlecode.com/files/probe-2.2.3.zip
unzip probe-2.2.3.zipMaintenant, ouvrez votre Rexfile et ajoutez les lignes suivantes aux autres commandes use.
# inclure le support de déploiement pour tomcat
use Rex::Apache::Deploy "Tomcat";Et créez une troisième tâche appelée deploy.
desc "Déployer l'application";
task "deploy", group => "tomcats", sub {
# définissez le chemin de contexte pour notre application tomcat
context_path "/psiprobe";
# déployez l'application.
deploy "packages/probe.war",
username => "manager",
password => "passw0rd",
port => 8080;
};Mettre le tout ensemble
Maintenant, vous pouvez exécuter les 3 tâches l’une après l’autre et le résultat est un serveur prêt à servir notre contenu. Enfin, vous pouvez définir un lot qui exécute toutes vos tâches, afin que vous n’ayez pas besoin d’écrire autant.
Ouvrez votre Rexfile et ajoutez la ligne suivante à la fin.
desc "Exécuter toutes les tâches prepare, configure et deploy";
batch all => "prepare", "configure", "deploy";Vous pouvez exécuter ce lot avec l’option -b.
rex -b allMaintenant, après que toutes les tâches aient été exécutées, vous pouvez accéder à l’application juste déployée sous /psiprobe sur votre serveur.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.