Au prix de quelques configurations Tomcat, et suivant les habitudes de chacun, il peut être intéressant de séparer "CATALINA_BASE" (conf) et "CATALINA_HOME" (install Tomcat, binaires,...) pour faciliter les montées de version.
C'est ce qui est expliqué ci-dessous.
Par rapport à une installation classique simple et usuelle où on décompresse l'archive tomcat simplement (sans modification des fichiers de configuration, car tout à fait fonctionnelle telle que donnée par défaut) , cette pratique complexifie toute de même l'installation ; de plus l'arborescence initiale (et classique) du Tomcat est également bouleversée.
La variable CATALINA_HOME doit être valuée, et le chemin"$CATALINA_HOME/bin" (Linux) ou "%CATALINA_HOME%\bin" (Windows) rajouté au PATH :
... export CATALINA_HOME=<cheminVersHomeTomcat> export PATH=$PATH:$CATALINA_HOME/bin ...
SET CATALINA_HOME=<cheminVersHomeTomcat> SET PATH=%PATH%;%CATALINA_HOME%\bin
Cet exemple de scripts permet alors la séparation.
... export CATALINA_HOME=/usr/local/tomcatexport export CATALINA_BASE=/opt/tomcat export CATALINA_TMPDIR=$CATALINA_BASE/temp export CATALINA_OPTS="-Djavax.net.ssl.trustStore=/path/to/esup.keystore" export CATALINA_PID=/opt/tomcat/uportal.pid ...
./home/ENT/env.sh HOME=$CATALINA_HOME/.. BASE=$CATALINA_BASE/.. cd $HOME wget http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.36/bin/apache-tomcat-6.0.36.tar.gz tar -xzf apache-tomcat-6.0.36.tar.gz ln -s apache-tomcat-6.0.36 tomcat mkdir $CATALINA_BASE cp -r $CATALINA_HOME/conf $CATALINA_BASE mkdir $CATALINA_BASE/logs mkdir $CATALINA_BASE/temp mkdir $CATALINA_BASE/work mkdir -p $CATALINA_BASE/shared/lib mkdir -p $CATALINA_BASE/shared/classes mkdir -p $CATALINA_BASE/lib mkdir $CATALINA_BASE/common ln -s $CATALINA_HOME/lib/ $CATALINA_BASE/common/lib cp $CATALINA_HOME/conf/server.xml $CATALINA_BASE/conf/ cp $CATALINA_HOME/conf/catalina.properties $CATALINA_BASE/conf/ cp $CATALINA_HOME/conf/logging.properties $CATALINA_BASE/conf/ mkdir $BASE/webapps
Les applications sont à déployer dans $BASE/webapps. Adapter les fichiers $CATALINA_BASE/conf/server.xml, $CATALINA_BASE/conf/catalina.properties et $CATALINA_BASE/conf/logging.properties
Par rapport à l'exemple d'installation dans le fichier $CATALINA_BASE/conf/server.xml bien spécifier le bon path des contextes d'application comme ceci :
... <Context path="/portail" docBase="/opt/webapps/uPortal" reloadable="false" ...> <Resource name="jdbc/PortalDb" auth="Container" type="javax.sql.DataSource" username="USER" password="PASSWORD" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://database.ip:3306/uPortal4" maxActive="100" maxIdle="30" maxWait="10000" poolPreparedStatements="true" removeAbandoned="true" removeAbandonedTimeout="300" validationQuery="SELECT 1" logAbandoned="true" /> ... </Context> ...
Lors d'une migration de Tomcat, il suffira de:
- faire un arrêt du Tomcat,
- faire pointer le lien symbolique /usr/local/tomcat vers la nouvelle version des sources tomcat
- puis relancer.
!! Attention toutefois lors d'un changement de version majeure !!
Commentaire
Pascal Rigaux dit :
mai 14, 2013Solution alternative que nous utilisons notamment pour tous les canaux distribués en .zip / .tar.gz / .tgz
Exemple simple avec esup-portlet-sympa :
la mise à jour en 4.2 s'est fait avec une simple commande :
% git-unarchive --rebase https://sourcesup.renater.fr/frs/download.php/4156/esup-portlet-sympa-4.2.tgz
En utilisant le script https://github.com/pixel/git-unarchive
Utiliser git nous permet de passer en production avec "git pull" puis restart/deploy