web-dev-qa-db-ja.com

Tomcat7でJENKINS_HOMEを設定しますか?

UbuntuのTomcat7でJenkinsをセットアップしようとしています。 Tomcat7をインストールしてjenkins.warをデプロイしたところ、http://myhost:8080/jenkinsにJenkinsホームページが表示されましたが、/usr/share/Tomcat7/.jenkinsにJenkinsディレクトリを作成しようとしていますが、セキュリティ上の理由からできません。私はすでに/srv/jenkinsを作成し、Tomcat7グループ権限を付与しており、JENKINS_HOMEをそのパスに設定したいと考えています。 /etc/Tomcat7/server.xmlのTomcat構成に追加してみました。

<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の環境変数をどこに設定する必要がありますか?

9
C. Ross

/etc/default/Tomcat7。例として、次の行を追加します。

JENKINS_HOME=/srv/jenkins
3
Beel

それは私が好むソリューションではありませんが、/usr/share/Tomcat7/bin/setenv.shで説明されているようにcatalina.shスクリプトを作成しました。

#!
export JENKINS_HOME=/srv/jenkins

そしてもちろんchmod ugo+x setenv.shで実行権限を与えました。

3
C. Ross

より簡単な方法は、Tomcatサーブレットのコンテキスト記述子($ 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 で表示

1
Joaquin

私のjenkins-dataがバックアップされたファイルシステムに行くシンボリックリンクアプローチ。

[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
Bjarte Brandt

私が読んだドキュメントと上記の2つの例によると、JenkinsはTomcatユーザーのホームディレクトリを使用して、そのフォルダーで.jenkinsを検索します。 Tomcatユーザーのホームディレクトリが/ opt/Apache/Tomcatなどの期待する値に設定されていることを確認し、そのフォルダーにJenkinsフォルダーが存在する場所を指す.jenkinsシンボリックリンクを作成します。

ln -s /path/to/jenkins_home /opt/Apache/Tomcat/.jenkins
0
dragon788