Установить JENKINS_HOME в Tomcat7?

9

Я пытаюсь настроить Jenkins в Tomcat7 в Ubuntu. Я установил 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).

Где мне нужно установить переменную среды для JENKINS_HOMETomcat7?

Пересекать
источник

Ответы:

3

Это не совсем то решение, которое я предпочитаю, но я создал /usr/share/tomcat7/bin/setenv.shсценарий, как описано в catalina.sh.

#!
export JENKINS_HOME=/srv/jenkins

И, конечно, дал ему права на выполнение chmod ugo+x setenv.sh.

Пересекать
источник
3

Я установил это /etc/default/tomcat7. Для вашего примера добавьте эту строку:

JENKINS_HOME=/srv/jenkins
Beel
источник
1

Подход с использованием символических ссылок, при котором мои данные 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
Бьярте Брандт
источник
1

Более простым способом является редактирование дескриптора контекста сервлета 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

Joaquin
источник
0

Согласно документации, которую я прочитал, и нескольким примерам выше, Дженкинс использует домашний каталог вашего пользователя Tomcat и ищет .jenkins в этой папке. Убедитесь, что в домашнем каталоге пользователя Tomcat установлено ожидаемое вами значение, например / opt / apache / tomcat, и создайте в этой папке символическую ссылку .jenkins, указывающую, где находится ваша папка Jenkins.

ln -s /path/to/jenkins_home /opt/apache/tomcat/.jenkins
dragon788
источник