Impostare JENKINS_HOME in Tomcat7?


9

Sto cercando di configurare Jenkins in Tomcat7 su Ubuntu. Ho installato Tomcat7 e distribuito jenkins.war, e ora vedo la home page di Jenkins su http://myhost:8080/jenkins, ma sta tentando di creare la directory Jenkins /usr/share/tomcat7/.jenkins, che non è possibile per motivi di sicurezza. Ho già creato /srv/jenkinse concesso le tomcat7autorizzazioni di gruppo e desidero impostare JENKINS_HOMEquel percorso. Ho provato ad aggiungerlo alla configurazione di Tomcat in /etc/tomcat7/server.xml:

<GlobalNamingResources>

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

E ho anche provato ad aggiungerlo al file di contesto creato automaticamente in ROOT/META-INF/context.xml(non c'è $CATALINA_HOME/confper quanto posso dire).

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

Ma anche dopo aver riavviato tomcat7 ottengo ancora lo stesso risultato (cercando di utilizzare /usr/share/tomcat7/.jenkins).

Dove devo impostare la variabile di ambiente per JENKINS_HOMEin Tomcat7?

Risposte:


3

Non è esattamente la soluzione che preferisco, ma ho creato lo /usr/share/tomcat7/bin/setenv.shscript come descritto in catalina.sh.

#!
export JENKINS_HOME=/srv/jenkins

E ovviamente gli ha dato le autorizzazioni di esecuzione con chmod ugo+x setenv.sh.


3

L'ho inserito /etc/default/tomcat7. Per il tuo esempio, aggiungi questa riga:

JENKINS_HOME=/srv/jenkins

1

Un approccio di collegamento simbolico in cui i miei dati jenkins vanno a un file system di cui è stato eseguito il backup.

[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

1

Un modo più semplice è modificare il descrittore di contesto del servlet Tomcat ($ CATALINA_HOME / conf / config.xml) e aggiungere la seguente riga:

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

Visto in https://wiki.jenkins-ci.org/display/JENKINS/Tomcat


0

Secondo la documentazione che ho letto e un paio di esempi sopra, Jenkins utilizza la home directory dell'utente Tomcat e cerca un .jenkins in quella cartella. Assicurati che la home directory dell'utente Tomcat sia impostata su un valore che ti aspetti, ad esempio / opt / apache / tomcat, e crea un collegamento simbolico .jenkins in quella cartella che indichi dove risiede la tua cartella Jenkins.

ln -s /path/to/jenkins_home /opt/apache/tomcat/.jenkins
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.