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
の環境変数をどこに設定する必要がありますか?
/etc/default/Tomcat7
。例として、次の行を追加します。
JENKINS_HOME=/srv/jenkins
それは私が好むソリューションではありませんが、/usr/share/Tomcat7/bin/setenv.sh
で説明されているようにcatalina.sh
スクリプトを作成しました。
#!
export JENKINS_HOME=/srv/jenkins
そしてもちろんchmod ugo+x setenv.sh
で実行権限を与えました。
より簡単な方法は、Tomcatサーブレットのコンテキスト記述子($ CATALINA_HOME/conf/config.xml)を編集して、次の行を追加することです。
<Context ...>
<Environment name="JENKINS_HOME" value="/path/to/jenkins_home/" type="Java.lang.String"/>
</Context>
私の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
私が読んだドキュメントと上記の2つの例によると、JenkinsはTomcatユーザーのホームディレクトリを使用して、そのフォルダーで.jenkinsを検索します。 Tomcatユーザーのホームディレクトリが/ opt/Apache/Tomcatなどの期待する値に設定されていることを確認し、そのフォルダーにJenkinsフォルダーが存在する場所を指す.jenkinsシンボリックリンクを作成します。
ln -s /path/to/jenkins_home /opt/Apache/Tomcat/.jenkins