在Tomcat7中设置JENKINS_HOME?

我试图在Ubuntu上的Tomcat7中设置Jenkins。 我安装了Tomcat7并部署了jenkins.war ,现在我在http://myhost:8080/jenkins看到Jenkins的主页,但是它试图在/usr/share/tomcat7/.jenkins上创buildJenkins目录,出于安全原因。 我已经创build了/srv/jenkins并赋予了tomcat7组权限,并且想要将JENKINS_HOME设置JENKINS_HOMEpath。 我试过把它添加到/etc/tomcat7/server.xml的tomcatconfiguration中:

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

我也试着将它添加到ROOT/META-INF/context.xml的自动创build的上下文文件中(据我所知,没有$CATALINA_HOME/conf )。

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

但即使重新启动tomcat7我仍然得到相同的结果(试图使用/usr/share/tomcat7/.jenkins )。

我需要在Tomcat7中为JENKINS_HOME设置环境variables?

这不完全是我更喜欢的解决scheme,但我创build了catalina.sh描述的/usr/share/tomcat7/bin/setenv.sh脚本。

 #! export JENKINS_HOME=/srv/jenkins 

当然用chmod ugo+x setenv.sh给它执行权限。

我把它设置在/etc/default/tomcat7 。 对于你的例子,追加这一行:

 JENKINS_HOME=/srv/jenkins 

一个符号链接的方法,我的jenkins数据去备份文件系统。

 [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 

一个简单的方法是编辑Tomcat servlet的上下文描述符($ CATALINA_HOME / conf / config.xml)并添加下面一行:

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

https://wiki.jenkins-ci.org/display/JENKINS/Tomcat中查&#x770B;

根据我读过的文档和上面的几个例子,Jenkins使用你的Tomcat用户的主目录并在那个文件夹中search一个.jenkins。 确保您的Tomcat用户的主目录设置为您期望的值,例如/ opt / apache / tomcat,并在该文件夹中创build一个指向您的Jenkins文件夹所在位置的.jenkins符号链接。

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