Script d'installation de Tomcat



Plutôt que de reproduire manuellement la procédure d'installation de Tomcat, j'ai cherché à automatiser un maximum de tâches. Le script qui en découle est encore sommaire et ne fournit pas une configuration définitive, et de toute façon par conforme à une configuration de production. De plus, ce travail est ciblé pour mon système d'exploitation habituel qui est Linux Ubuntu, avec Tomcat 6.

Procédure d'installation

Installation de Java

Le premier pré-requis est la présence de Java. J'utilise la version 6 d'OpenJDK. J'en profite aussi pour ajouter des outils associés à Java, comme la commande update-java-alternative qui peut être pratique pour détecter le répertoire d'installation du JDK.

# Installation de Java 
apt-get -y install openjdk-6-jdk
apt-get -y install java-common

Cette portion pourrait être améliorée en vérifiant au préalable la présence d'un autre JDK 6.

Installation de Tomcat

Dans cette portion, on télécharge la distribution de Tomcat, puis on l'installe dans le répertoire /usr/java. On crée en plus un lien symbolique, qui permet d'accéder au répertoire de Tomcat sans se préoccuper du numéro de version dans le nom du répertoire.

# Variables (racine du miroir et version de Tomcat)
MIRROR_HOME=http://mir2.ovh.net/ftp.apache.org/dist
TOMCAT_VERSION=6.0.20

# Téléchargement et installation de tomcat
wget $MIRROR_HOME/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz
mkdir /usr/java
tar -xvf apache-tomcat-$TOMCAT_VERSION.tar.gz -C /usr/java/
ln -s /usr/java/apache-tomcat-$TOMCAT_VERSION/ /usr/java/apache-tomcat

Installation en service

Pour l'installation de Tomcat en service, j'ai préparé un script de type init.d qu'il faut télécharger et installer. Ce script est épuré et ne tient pas compte des bonnes pratiques de mise en production.

Pour le démarrage, il lance le script startup de Tomcat avec l'utilisateur java ; pour l'arrêt, il lance le script shutdown.

#!/bin/bash
# Tomcat auto-start
#
# description: Démarrage automatique de Tomcat

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
export CATALINA_HOME=/usr/java/apache-tomcat
USER=java

# Fonction de démarrage
start()
{
  su -p -s /bin/sh - $USER $CATALINA_HOME/bin/startup.sh
}

# Fonction d'arrêt
stop()
{
  sh $CATALINA_HOME/bin/shutdown.sh
}

case $1 in
start)
  start
  ;;
stop)  
  stop
  ;;
restart)
  stop
  sleep 1
  start
  ;;
esac   
exit 0

Pour installer Tomcat, il suffit donc de copier ou télécharger ce script dans le répertoire bin de Tomcat et de faire un lien symbolique depuis /etc/init.d/tomcat.

SCRIPTS_HOME=http://download.jtips.info/scripts
wget $SCRIPTS_HOME/tomcat-init-ubuntu.sh
mv tomcat-init-ubuntu.sh /usr/java/apache-tomcat/bin/init-ubuntu.sh
ln -s /usr/java/apache-tomcat/bin/init-ubuntu.sh /etc/init.d/tomcat
chmod 755 /etc/init.d/tomcat

Enfin, pour que ce script soit pris en compte automatiquement au démarrage et à l'arrêt du serveur, on ajoute des lien symboliques dans /etc/rcN.d.

ln -s /etc/init.d/tomcat /etc/rc1.d/K80tomcat
ln -s /etc/init.d/tomcat /etc/rc2.d/S80tomcat

Installation de Log4J

Je n'aime vraiment pas utiliser JULI, et même en développement, je préfère Log4J. J'ai donc préparé un fichier de configuration élémentaire qu'il faut télécharger et installer dans le répertoire lib de Tomcat, en plus des fichiers jar de l'adaptateur Log4J.

# LOG4J
wget $MIRROR_HOME/logging/log4j/1.2.15/apache-log4j-1.2.15.tar.gz
tar -xvf apache-log4j-1.2.15.tar.gz apache-log4j-1.2.15/log4j-1.2.15.jar
mv apache-log4j-1.2.15/log4j-1.2.15.jar  /usr/java/apache-tomcat/lib/
rm -r apache-log4j-*
wget $MIRROR_HOME/tomcat/tomcat-6/v$TOMCAT_VERSION/bin/extras/tomcat-juli-adapters.jar
mv tomcat-juli-adapters.jar /usr/java/apache-tomcat/lib/
wget $MIRROR_HOME/tomcat/tomcat-6/v$TOMCAT_VERSION/bin/extras/tomcat-juli.jar
mv tomcat-juli.jar /usr/java/apache-tomcat/bin/
wget $SCRIPTS_HOME/tomcat-log4j.properties
mv tomcat-log4j.properties /usr/java/apache-tomcat/lib/log4j.properties


Script d'installation

Le script complet d'installation peut être téléchargé et utilisé librement.

wget http://download.jtips.info/scripts/tomcat-install.sh
chmod +x tomcat-install.sh
bash tomcat-install.sh