1- Installation de Hudson
L'installation d'Hudson en apparence très simple, m'a demandé quelques efforts de recherche sur plusieurs erreurs rencontrées.

J'ai choisis de faire tourner Hudson avec Tomcat 5.5. Dans un premier temps, il faut donc télécharger le .war de la dernière version (1.283 dans ce tutoriel) sur le site https://hudson.dev.java.net/ .

Il suffit ensuite de copier/coller le fichier hudson.war dans le répertoire /usr/share/tomcat5.5/webapps. L'application va se déployer d'elle même.

Pour accéder à l'application, il suffit de taper http://localhost:8080/hudson dans votre navigateur préféré.

2- Erreur de permission java.security.AccessControlException
En arrivant sur la page d'accueil d'HUdson, j'obtiens l'erreur suivante :

java.security.AccessControlException: access denied (java.util.PropertyPermission org.apache.commons.discovery.log.level read)

La solution indiquée sur le site d'Hudson est de désactiver le security manager de Tomcat.

sudo vi /etc/defaults/tomcat5.5

On décommente et on met à no la propriété

TOMCAT5_SECURITY=no

On peut aussi modifier les fichiers de sécurité dans /etc/tomcat5.5/policy.d/ pour ajouter uniquement les autorisations nécessaire à Hudson...

En redémarrant tomcat, le problème devrait être réglé.

3- Erreur AWT
En retournant sur la page d'accueil d'Hudson j'ai de nouveau une erreur :

AWT n'est pas configuré correctement sur ce serveur. Peut-être devez-vous lancer votre conteneur avec "-Djava.awt.headless=true"?
java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-1.5.0-sun-1.5.0.16/jre/lib/i386/libawt.so: libmlib_image.so: cannot open shared object file: No such file or directory

Et voici une solution qui fonctionne vue sur https://bugs.launchpad.net/debian/+source/sun-java5/+bug/162232. Il faut taper les commandes suivantes :

sudo ln -s /usr/lib/jvm/java-1.5.0-sun/jre/lib/i386/libmlib_image.so /usr/lib
sudo ldconfig

=> 2ème solution non testée trouvée sur http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=446827 ''I encountered the same problem trying to get Hudson running on Tomcat 5.5 with Java 5; in the end I got it to work by adding the following lines to /etc/init.d/tomcat5.5, just before the $DAEMON invocation which starts Tomcat:''

                if [ -d $JAVA_HOME/jre/lib/i386 ]; then
                    # Workaround for Sun JVM bug
                    export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/i386/
                fi


4- Configuration du répertoire Home de Hudson
C'est dans ce répertoire que les projets seront construits, testés, déployés... Par défaut le répertoire home est /usr/share/tomcat5.5/.hudson.
Dans l'interface d'Hudson on peut le constater en cliquant sur Administrer Hudson, le répertoire Home est indiquer tout en haut.

J'ai changé ce répertoire en créant le répertoire /home/hudson.
Normalement il suffit de déclarer la variable HUDSON_HOME=/home/hudson dans les variables d'environnement. Malheureusement aucun de mes essais n'a marché :(

J'ai donc opté pour une autre solution :

sudo vi /etc/init.d/tomcat5.5

et ajouter

JAVA_OPTS="$JAVA_OPTS -DHUDSON_HOME=/home/hudson"

après la ligne

JAVA_OPTS="$JAVA_OPTS -Djava.endorsed.dirs=$CATALINA_HOME/common/endorsed -Dcatalina.base=$CATALINA_BASE -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$CATALINA_BASE/temp"

En redémarrant tomcat, la variable va être prise en compte....



Possible problème avec maven lors d'un build du projet maven : Failed to create /var/www/.m2 => voir https://hudson.dev.java.net/cannot-create-.m2.html