Ustaw JENKINS_HOME w Tomcat7?

9

Próbuję skonfigurować Jenkins w Tomcat7 na Ubuntu. Zainstalowałem Tomcat7 i wdrożyłem jenkins.war, i teraz widzę stronę główną Jenkins pod adresem http://myhost:8080/jenkins, ale próbuje utworzyć katalog Jenkins /usr/share/tomcat7/.jenkins, w którym nie jest to możliwe ze względów bezpieczeństwa. Już utworzyłem /srv/jenkinsi nadałem tomcat7uprawnienia grupie i chcę ustawić JENKINS_HOMEtę ścieżkę. Próbowałem dodać go do konfiguracji tomcat w /etc/tomcat7/server.xml:

<GlobalNamingResources>

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

Próbowałem też dodać go do automatycznie utworzonego pliku kontekstowego w ROOT/META-INF/context.xml( $CATALINA_HOME/confo ile wiem, nie ma).

<Context path="/"
        antiResourceLocking="false" >
    <Environment name="JENKINS_HOME" value="/srv/jenkins/" type="java.lang.String"/>
</Context>

Ale nawet po ponownym uruchomieniu tomcat7 nadal otrzymuję ten sam wynik (próbuję użyć /usr/share/tomcat7/.jenkins).

Gdzie muszę ustawić zmienną środowiskową dla JENKINS_HOMEw Tomcat7?

Krzyż
źródło

Odpowiedzi:

3

Nie jest to rozwiązanie, które wolę, ale stworzyłem /usr/share/tomcat7/bin/setenv.shskrypt zgodnie z opisem w catalina.sh.

#!
export JENKINS_HOME=/srv/jenkins

I oczywiście dał mu uprawnienia do wykonywania z chmod ugo+x setenv.sh.

Krzyż
źródło
3

Włączyłem to /etc/default/tomcat7. Na przykład dodaj tę linię:

JENKINS_HOME=/srv/jenkins
Beel
źródło
1

Dowiązanie symboliczne, w którym moje jenkins-data przechodzą do systemu plików z kopią zapasową.

[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
Bjarte Brandt
źródło
1

Prostszym sposobem jest edycja deskryptora kontekstu serwletu Tomcat ($ CATALINA_HOME / conf / config.xml) i dodanie następującej linii:

<Context ...>
  <Environment name="JENKINS_HOME" value="/path/to/jenkins_home/" type="java.lang.String"/>
</Context>

Oglądane na https://wiki.jenkins-ci.org/display/JENKINS/Tomcat

Joaquin
źródło
0

Zgodnie z dokumentacją, którą przeczytałem i kilkoma powyższymi przykładami, Jenkins używa katalogu domowego użytkownika Tomcat i szuka w tym folderze pliku .jenkins. Upewnij się, że katalog domowy użytkownika Tomcat jest ustawiony na oczekiwaną wartość, na przykład / opt / apache / tomcat, i utwórz w tym folderze dowiązanie symboliczne .jenkins wskazujące miejsce, w którym znajduje się folder Jenkins.

ln -s /path/to/jenkins_home /opt/apache/tomcat/.jenkins
dragon788
źródło