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.list

Aprè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-deploy

Pré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 tomcat

Aprè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 lib

Maintenant, 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 prepare

Si vous souhaitez voir vos tâches définies, vous pouvez le faire avec l’option -T.

rex -T

Configurer 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=ajp13

Comme 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 configure

Dé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.zip

Maintenant, 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 all

Maintenant, 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.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.