在 Tomcat7 中设置 JENKINS_HOME?

在 Tomcat7 中设置 JENKINS_HOME?

我正在尝试在 Ubuntu 上的 Tomcat7 中设置 Jenkins。我安装了 Tomcat7 并部署了jenkins.war,现在我看到 Jenkins 主页位于http://myhost:8080/jenkins,但它试图在 处创建 Jenkins 目录/usr/share/tomcat7/.jenkins,但出于安全原因无法创建。我已经创建/srv/jenkins并授予了tomcat7组权限,并希望设置JENKINS_HOME为该路径。我尝试将其添加到 中的 tomcat 配置中/etc/tomcat7/server.xml

<GlobalNamingResources>

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

而且我也尝试将其添加到自动创建的上下文文件中(据我所知ROOT/META-INF/context.xml没有)。$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

答案1

这并不是我喜欢的解决方案,但我/usr/share/tomcat7/bin/setenv.sh按照中所述创建了脚本catalina.sh

#!
export JENKINS_HOME=/srv/jenkins

当然,还授予它执行权限chmod ugo+x setenv.sh

答案2

我将其设置在 中/etc/default/tomcat7。为了举例说明,请附加以下行:

JENKINS_HOME=/srv/jenkins

答案3

一种符号链接方法,其中我的 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

答案4

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

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

相关内容