Définir JENKINS_HOME dans Tomcat7?

9

J'essaie de configurer Jenkins dans Tomcat7 sur Ubuntu. J'ai installé Tomcat7 et déployé jenkins.war, et je vois maintenant la page d'accueil de Jenkins sur http://myhost:8080/jenkins, mais il tente de créer le répertoire Jenkins sur /usr/share/tomcat7/.jenkins, ce qu'il ne peut pas pour des raisons de sécurité. J'ai déjà créé /srv/jenkinset donné les tomcat7autorisations de groupe et je souhaite définir JENKINS_HOMEce chemin. J'ai essayé de l'ajouter à la configuration tomcat dans /etc/tomcat7/server.xml:

<GlobalNamingResources>

  <Environment name="JENKINS_HOME" value="/srv/jenkins"
       type="java.lang.String" override="false"/>
  <!-- Default settings -->

Et j'ai également essayé de l'ajouter au fichier de contexte créé automatiquement dans ROOT/META-INF/context.xml(il n'y en a pas $CATALINA_HOME/confpour autant que je sache).

<Context path="/"
        antiResourceLocking="false" >
    <Environment name="JENKINS_HOME" value="/srv/jenkins/" type="java.lang.String"/>
</Context>

Mais même après avoir redémarré tomcat7, j'obtiens toujours le même résultat (en essayant de l'utiliser /usr/share/tomcat7/.jenkins).

Où dois-je définir la variable d'environnement JENKINS_HOMEdans Tomcat7?

Traverser
la source

Réponses:

3

Ce n'est pas exactement la solution que je préfère, mais j'ai créé le /usr/share/tomcat7/bin/setenv.shscript comme décrit dans catalina.sh.

#!
export JENKINS_HOME=/srv/jenkins

Et bien sûr, lui a donné des autorisations d'exécution avec chmod ugo+x setenv.sh.

Traverser
la source
3

Je l'ai installé /etc/default/tomcat7. Pour votre exemple, ajoutez cette ligne:

JENKINS_HOME=/srv/jenkins
Beel
la source
1

Une approche de lien symbolique où mes données jenkins vont à un système de fichiers sauvegardé.

[root@lx08 tomcat6]# ln -s /data01/jenkins .jenkins
[root@lx08 tomcat6]# ls -la
total 12
drwxrwxr-x    3 root root   4096 Dec 27 13:00 .
drwxr-xr-x. 181 root root   4096 Dec 27 11:28 ..
drwxr-xr-x    2 root root   4096 Dec 27 11:28 bin
lrwxrwxrwx    1 root tomcat   12 Dec 27 11:28 conf -> /etc/tomcat6
lrwxrwxrwx    1 root root     15 Dec 27 13:00 .jenkins -> /data01/jenkins
lrwxrwxrwx    1 root root     23 Dec 27 11:28 lib -> /usr/share/java/tomcat6
lrwxrwxrwx    1 root root     16 Dec 27 11:28 logs -> /var/log/tomcat6
lrwxrwxrwx    1 root root     23 Dec 27 11:28 temp -> /var/cache/tomcat6/temp
lrwxrwxrwx    1 root root     24 Dec 27 11:28 webapps -> /var/lib/tomcat6/webapps
lrwxrwxrwx    1 root root     23 Dec 27 11:28 work -> /var/cache/tomcat6/work
[root@lx08 tomcat6]# pwd
/usr/share/tomcat6

[root@lx08 tomcat6]# export JENKINS_HOME=http://localhost:8080/jenkins
[root@lx08 tomcat6]# java -jar /usr/share/tomcat6/webapps/jenkins/WEB-INF/lib/jenkins-core-1.495.jar  "TestJob" echo hello
hello
Bjarte Brandt
la source
1

Un moyen plus simple consiste à modifier le descripteur de contexte du servlet Tomcat ($ CATALINA_HOME / conf / config.xml) et à ajouter la ligne suivante:

<Context ...>
  <Environment name="JENKINS_HOME" value="/path/to/jenkins_home/" type="java.lang.String"/>
</Context>

Consulté dans https://wiki.jenkins-ci.org/display/JENKINS/Tomcat

Joaquin
la source
0

Selon la documentation que j'ai lue et quelques exemples ci-dessus, Jenkins utilise le répertoire personnel de votre utilisateur Tomcat et recherche un .jenkins dans ce dossier. Assurez-vous que le répertoire personnel de votre utilisateur Tomcat est défini sur une valeur que vous attendez, / opt / apache / tomcat par exemple, et créez un lien symbolique .jenkins dans ce dossier pointant vers l'emplacement de votre dossier Jenkins.

ln -s /path/to/jenkins_home /opt/apache/tomcat/.jenkins
dragon788
la source