我正在尝试在 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