¿Establecer JENKINS_HOME en Tomcat7?

9

Estoy tratando de configurar Jenkins en Tomcat7 en Ubuntu. Instalé Tomcat7 y lo implementé jenkins.war, y ahora veo la página de inicio de Jenkins en http://myhost:8080/jenkins, pero está tratando de crear el directorio de Jenkins en /usr/share/tomcat7/.jenkins, que no puede por razones de seguridad. Ya he creado /srv/jenkinsy otorgado los tomcat7permisos de grupo, y quiero establecer JENKINS_HOMEesa ruta. Intenté agregarlo a la configuración de tomcat en /etc/tomcat7/server.xml:

<GlobalNamingResources>

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

Y también he intentado agregarlo al archivo de contexto creado automáticamente ROOT/META-INF/context.xml(no hay $CATALINA_HOME/confhasta donde puedo decir).

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

Pero incluso después de reiniciar tomcat7 sigo obteniendo el mismo resultado (tratando de usar /usr/share/tomcat7/.jenkins).

¿Dónde necesito establecer la variable de entorno para JENKINS_HOMEen Tomcat7?

Cruzar
fuente

Respuestas:

3

No es exactamente la solución que prefiero, pero creé el /usr/share/tomcat7/bin/setenv.shscript como se describe en catalina.sh.

#!
export JENKINS_HOME=/srv/jenkins

Y, por supuesto, le dio permisos de ejecución con chmod ugo+x setenv.sh.

Cruzar
fuente
3

Lo puse en /etc/default/tomcat7. Para su ejemplo, agregue esta línea:

JENKINS_HOME=/srv/jenkins
Beel
fuente
1

Un enfoque de enlace simbólico donde mis datos jenkins van a un sistema de archivos respaldado.

[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
fuente
1

Una forma más simple es editar el descriptor de contexto del servlet Tomcat ($ CATALINA_HOME / conf / config.xml) y agregar la siguiente línea:

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

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

Joaquin
fuente
0

De acuerdo con la documentación que he leído y un par de ejemplos anteriores, Jenkins usa el directorio de inicio de su usuario Tomcat y busca un .jenkins en esa carpeta. Asegúrese de que el directorio de inicio de su usuario Tomcat esté configurado en el valor que espera, / opt / apache / tomcat, por ejemplo, y cree un enlace simbólico .jenkins en esa carpeta que señale dónde vive su carpeta Jenkins.

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