JENKINS_HOME in Tomcat7 einstellen?

9

Ich versuche, Jenkins in Tomcat7 unter Ubuntu einzurichten. Ich habe Tomcat7 installiert und bereitgestellt jenkins.warund sehe jetzt die Jenkins-Homepage unter http://myhost:8080/jenkins, aber es wird versucht, das Jenkins-Verzeichnis unter zu erstellen /usr/share/tomcat7/.jenkins, was aus Sicherheitsgründen nicht möglich ist. Ich habe /srv/jenkinsdie tomcat7Gruppenberechtigungen bereits erstellt und erteilt und möchte JENKINS_HOMEdiesen Pfad festlegen . Ich habe versucht, es der Tomcat-Konfiguration hinzuzufügen in /etc/tomcat7/server.xml:

<GlobalNamingResources>

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

Und ich habe auch versucht, es der automatisch erstellten Kontextdatei in hinzuzufügen ROOT/META-INF/context.xml( $CATALINA_HOME/confsoweit ich das beurteilen kann, gibt es keine ).

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

Aber auch nach dem Neustart von tomcat7 erhalte ich immer noch das gleiche Ergebnis (versuche es zu verwenden /usr/share/tomcat7/.jenkins).

Wo muss ich die Umgebungsvariable JENKINS_HOMEin Tomcat7 festlegen?

Kreuz
quelle

Antworten:

3

Es ist nicht genau die Lösung, die ich bevorzuge, aber ich habe das /usr/share/tomcat7/bin/setenv.shSkript wie in beschrieben erstellt catalina.sh.

#!
export JENKINS_HOME=/srv/jenkins

Und natürlich gab es Ausführungsberechtigungen mit chmod ugo+x setenv.sh.

Kreuz
quelle
3

Ich habe es eingestellt /etc/default/tomcat7. Fügen Sie für Ihr Beispiel diese Zeile hinzu:

JENKINS_HOME=/srv/jenkins
Beel
quelle
1

Ein symbolischer Link-Ansatz, bei dem meine Jenkins-Daten in ein gesichertes Dateisystem gelangen.

[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
quelle
1

Eine einfachere Möglichkeit besteht darin, den Kontextdeskriptor des Tomcat-Servlets ($ CATALINA_HOME / conf / config.xml) zu bearbeiten und die folgende Zeile hinzuzufügen:

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

Angezeigt in https://wiki.jenkins-ci.org/display/JENKINS/Tomcat

Joaquin
quelle
0

Gemäß der Dokumentation, die ich gelesen habe, und einigen Beispielen oben verwendet Jenkins das Home-Verzeichnis Ihres Tomcat-Benutzers und sucht in diesem Ordner nach .jenkins. Stellen Sie sicher, dass das Home-Verzeichnis Ihres Tomcat-Benutzers auf den erwarteten Wert eingestellt ist, z. B. / opt / apache / tomcat, und erstellen Sie in diesem Ordner einen .jenkins-Symlink, der darauf verweist, wo sich Ihr Jenkins-Ordner befindet.

ln -s /path/to/jenkins_home /opt/apache/tomcat/.jenkins
dragon788
quelle