Tomcat Installation · 5 min read · Feb 14, 2026

Tomcat installieren und Webanwendungen mit Rex bereitstellen

Tomcat installieren und Webanwendungen mit Rex bereitstellen

In diesem Tutorial zeige ich Ihnen, wie Sie Ihre Tomcat-Installationen verwalten und Webapps auf wiederholbare Weise mit Rex bereitstellen können. In diesem Tutorial verwende ich Debian Squeeze, aber Rex ist auch für andere Distributionen verfügbar.

Einführung in Rex

Rex ist ein in Perl geschriebenes Tool, das die Verwaltung und Bereitstellung vieler Server erleichtert.

Von der Website: Mit (R)?ex können Sie alle Ihre Boxen von einem zentralen Punkt aus durch den gesamten Prozess des Konfigurationsmanagements und der Softwarebereitstellung verwalten.

Der Ausgangspunkt eines Rex-Projekts ist seine Rexfile. Rex wird diese Datei analysieren und die definierten Aufgaben auf Ihren Servern ausführen. Denken Sie einfach daran, dass es wie ein Makefile ist, aber in Perl geschrieben.

Jede Rexfile ist in Aufgaben unterteilt. Sie können eine Aufgabe für jeden logischen Schritt definieren, um Ihre Server zu installieren und zu konfigurieren.

Die Software erhalten

Sie benötigen nur Rex auf Ihrer Workstation. Auf Ihren Servern ist keine zusätzliche Software erforderlich. Sie benötigen lediglich SSH-Root-Zugriff auf Ihre Server.

Sie können Rex von rexify.org/get/ herunterladen. Pakete sind für CentOS, Debian, Ubuntu, Fedora, Mageia und OpenSuSE verfügbar. Die Quellen sind von CPAN verfügbar.

Für Debian fügen Sie einfach das Rex-Repository zu Ihrem sources.list.d-Verzeichnis hinzu.

echo 'deb http://rex.linux-files.org/debian/ squeeze rex' >> /etc/apt/sources.list

Danach fügen Sie den GPG-Schlüssel zum apt-Schlüsselbund hinzu.

wget -O - http://rex.linux-files.org/DPKG-GPG-KEY-REXIFY-REPO | apt-key add -

Und installieren Sie die Software. Wir werden rex für das Kern-Tool und rex-apache-deploy für das Bereitstellungsmodul installieren.

apt-get update && apt-get install rex rex-apache-deploy

Bereiten Sie Ihre Rexfile vor und führen Sie die erste Aufgabe aus

Zuerst erstellen Sie ein Verzeichnis tomcat und wechseln in dieses.

mkdir tomcat; cd tomcat

Danach checken Sie die Rex-Beispielmodule von GitHub in das Verzeichnis lib aus. Es gibt ein tomcat- und ein apache-Modul, das uns helfen wird.

git clone https://github.com/krimdomu/rex-example-modules.git lib

Jetzt erstellen Sie die Datei Rexfile und öffnen sie mit Ihrem bevorzugten Editor. Wenn Sie vim verwenden, können Sie die folgenden Zeilen verwenden, um die Syntaxhervorhebung zu aktivieren.

:set ft=perl  
:syn on
# Datei: Rexfile
# Zuerst aktivieren Sie strict und warnings
use strict;
use warnings;
# dann alle benötigten Beispielmodule einfügen
use ALLMODS;    # dies setzt den Include-Pfad auf die Rex-Beispielmodule
use apache;     # Apache-Modul einfügen
use apache::module;
use tomcat;     # Tomcat-Modul einfügen
use tomcat::user;
use tomcat::role;
# Benutzer und Passwort zum Anmelden an Ihren Servern festlegen
user "root";
password "test";
# Passwortauthentifizierung aktivieren.
pass_auth;
# Wenn Sie die Schlüsselauthentifizierung verwenden möchten, verwenden Sie Folgendes
# und kommentieren Sie die Zeile "pass_auth" aus
# public_key "/path/to/your/public.key";
# private_key "/path/to/your/private.key";
# Definieren Sie eine Servergruppe mit dem Namen "tomcat".
# Fügen Sie alle Ihre Server, die Sie bereitstellen möchten, in diese Gruppe ein.
group tomcats => "tc01", "tc02";
desc "Installieren und Konfigurieren von Apache und 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();
   # Stellen Sie sicher, dass die Dienste beim Systemstart gestartet werden
   service apache2 => "ensure", "started";
   service tomcat6 => "ensure", "started";
};

Jetzt speichern Sie die Datei, öffnen ein Terminal und wechseln in das tomcat-Verzeichnis.

Um die erstellte Aufgabe auf Ihren Servern auszuführen, rufen Sie sie einfach wie in der nächsten Zeile gezeigt auf.

rex prepare

Wenn Sie Ihre definierten Aufgaben anzeigen möchten, können Sie dies mit der -T-Option tun.

rex -T

Apache/modjk konfigurieren

Nach der Installation von Apache und Tomcat müssen Sie Apache/modjk konfigurieren, um die Anfragen an Tomcat weiterzuleiten.

Um dies zu erreichen, erstellen Sie ein Verzeichnis namens files und speichern Sie Ihre Konfigurationsdateien dort.

mkdir files
## Datei: files/worker.properties
## Diese Datei wird von Rex verwaltet
##
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

Wie Sie hier sehen, gibt es eine spezielle Variable in der Datei. Rex hat ein integriertes Templatesystem. Und mit diesem Ausdruck erhalten Sie die IP des Netzwerkgeräts eth0.

## Datei: files/modjk.conf
## Diese Datei wird von Rex verwaltet
##
JkWorkersFile /etc/apache2/worker.properties
JkLogFile /var/log/apache2/mod_jk.log
JkShmFile /var/log/apache2/jk.shm
JkMount /* tc
# Fügen Sie den jkstatus-Mount-Punkt hinzu
JkMount /jkmanager/* jkstatus

    JkMount jkstatus

In realen Szenarien würde es auch eine server.xml geben. Aber für dieses Tutorial werden Sie die Datei nur patchen, um den AJP-Connector zu aktivieren.

Jetzt öffnen Sie Ihre Rexfile und fügen eine zweite Aufgabe configure hinzu.

desc "Apache und Tomcat konfigurieren";
task "configure", group => "tomcats", sub {
   # Standard-vhost entfernen
   unlink "/etc/apache2/sites-enabled/000-default";
   # Die Datei hochladen, aber als Vorlage parsen
   file "/etc/apache2/worker.properties",
      content   => template("files/worker.properties"),
      owner     => "root",
      group     => "root",
      mode      => 640,
      on_change => sub { apache::restart(); };
   # Die Konfigurationsdateien hochladen
   file "/etc/apache2/conf.d/modjk.conf",
      source    => "files/modjk.conf",
      owner     => "root",
      group     => "root",
      mode      => 640,
      on_change => sub { apache::restart(); };
   # server.xml patchen, um AJP-Zugriff zu ermöglichen
   # In der realen Welt verwenden Sie eine Vorlage für diese Datei
   my $content = cat "/etc/tomcat6/server.xml";
   $content =~ s/<\/Service>/\n<\/Service>/;
   file "/etc/tomcat6/server.xml",
      content   => $content,
      on_change => sub { tomcat::restart(); };
};

Jetzt können Sie die configure-Aufgabe ausführen, um Ihren Server zu konfigurieren.

rex configure

Eine Anwendung bereitstellen

Nun, nachdem Sie Ihren Server bereitgestellt und konfiguriert haben, müssen Sie die Anwendung hochladen, die der Server bereitstellen soll.

Es gibt ein Rex-Modul für einfache Bereitstellungsaufgaben namens Rex::Apache::Deploy. Sie haben es bereits installiert.

In diesem Howto werden Sie psi-probe bereitstellen. Sie können es von code.google.com herunterladen. Erstellen Sie einen Ordner namens packages, entpacken Sie das Zip-Archiv und kopieren Sie die Datei probe.war in dieses Verzeichnis.

mkdir packages  
cd packages  
wget http://psi-probe.googlecode.com/files/probe-2.2.3.zip  
unzip probe-2.2.3.zip

Jetzt öffnen Sie Ihre Rexfile und fügen die folgenden Zeilen zu den anderen use-Befehlen hinzu.

# Bereitstellungssupport für Tomcat einfügen
use Rex::Apache::Deploy "Tomcat";

Und erstellen Sie eine dritte Aufgabe namens deploy.

desc "Die Anwendung bereitstellen";
task "deploy", group => "tomcats", sub {
   # Den Kontextpfad für unsere Tomcat-Anwendung festlegen
   context_path "/psiprobe";
   # Die App bereitstellen.
   deploy "packages/probe.war",
      username => "manager",
      password => "passw0rd",
      port     => 8080;
};

Alles zusammenfügen

Jetzt können Sie alle 3 Aufgaben nacheinander ausführen, und das Ergebnis ist ein Server, der bereit ist, unseren Inhalt bereitzustellen. Schließlich können Sie ein Batch definieren, das alle Ihre Aufgaben ausführt, sodass Sie nicht so viel schreiben müssen.

Öffnen Sie Ihre Rexfile und fügen Sie die nächste Zeile hinzu.

desc "Alle Aufgaben prepare, configure und deploy ausführen";
batch all => "prepare", "configure", "deploy";

Sie können dieses Batch mit der -b-Option ausführen.

rex -b all

Jetzt, nachdem alle Aufgaben ausgeführt wurden, können Sie auf die gerade bereitgestellte Anwendung unter /psiprobe auf Ihrem Server zugreifen.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.