Ich möchte, dass die Daten von Jenkins auf Laufwerk "E:" geschrieben werden, da dies das große Laufwerk auf dem Server ist. Jenkins selbst ist auf "C:" installiert.
Wie mache ich das?
Die Standardkonfiguration, die ich gesehen habe, ist:
Arbeitsbereich-Stammverzeichnis: $ {ITEM_ROOTDIR}/Arbeitsbereich
Build Record-Stammverzeichnis: $ {ITEM_ROOTDIR}/builds
Werden die folgenden Änderungen mir helfen, das zu erreichen, was ich brauche?
Arbeitsbereich-Stammverzeichnis: E:/Jenkins/Arbeitsbereich
Build Record-Stammverzeichnis: E:/Jenkins/builds/$ {ITEM_FULL_NAME}
Was bedeutet außerdem "$ {ITEM_FULL_NAME}"?
Ich habe es herausgefunden ... Um Ihre Jenkins-Daten auf einem anderen Laufwerk zu speichern, müssen Sie Folgendes tun:
Arbeitsbereich-Stammverzeichnis: E:\Jenkins\$ {ITEM_FULL_NAME}\Arbeitsbereich
Build Record-Stammverzeichnis: E:\Jenkins\$ {ITEM_FULL_NAME}\builds
EDIT: Laut anderen Kommentaren scheint die Schaltfläche "Erweitert ..." in neueren Versionen von Jenkins entfernt worden zu sein. Wenn Ihre Version nicht verfügbar ist, lesen Sie Antwort von knorx .
Ich hatte dasselbe Problem, und selbst nachdem ich diese alte Pull-Anforderung gefunden hatte, hatte ich immer noch Probleme, das Arbeitsbereichs-Stammverzeichnis oder das Datensatzregister-Stammverzeichnis auf Systemebene anzugeben, statt für jeden Job einen benutzerdefinierten Arbeitsbereich anzugeben .
Um diese einzustellen:
Jenkins
-> Manage Jenkins
-> Configure System
Home directory
auf die Schaltfläche Advanced...
: Dieser Wert kann die folgenden Variablen enthalten:
${JENKINS_HOME}
- Absoluter Pfad des Jenkins-Home-Verzeichnisses${ITEM_ROOTDIR}
- Absoluter Pfad des Verzeichnisses, in dem Jenkins die Konfiguration und die zugehörigen Metadaten für einen bestimmten Job speichert${ITEM_FULL_NAME}
- Der vollständige Name eines Auftrags, der durch einen Schrägstrich getrennt werden kann, z. foo/bar für die Jobleiste im Ordner foo
Der Wert sollte normalerweise${ITEM_ROOTDIR}
oder${ITEM_FULL_NAME}
enthalten. Andernfalls verwenden unterschiedliche Jobs denselben Arbeitsbereich.
Sie können den Pfad der config.xml
-Datei im Standardverzeichnis ändern
<projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
<workspaceDir>D:/Workspace/${ITEM_FULL_NAME}</workspaceDir>
<buildsDir>D:/Logs/${ITEM_ROOTDIR}/Build</buildsDir>
Die benötigten Variablen werden hier im Jenkins-Wiki erklärt: https://wiki.jenkins.io/display/JENKINS/Features+controlled+by+system+properties
Die Standardvariable ITEM_ROOTDIR verweist auf ein Verzeichnis in der Jenkins-Installation. Wie Sie bereits herausgefunden haben, benötigen Sie:
Sie müssen dies heute über config.xml erreichen. Zitieren von der oben verlinkten Wiki-Seite:
Dies war früher eine UI-Einstellung, wurde aber in 2.119 entfernt, da es nicht .__ war. Unterstützung der Migration vorhandener Build-Datensätze und könnte zu .__ führen. Build-bezogene Fehler bis zum Neustart.
Sie können die Datei config.xml auch in Ihrem JENKINS_HOME-Verzeichnis bearbeiten. __ Verwenden Sie die Antwort von c32hedge als Referenz, und legen Sie den Arbeitsbereich auf den gewünschten Speicherort zwischen den Tags fest
Standardmäßig speichert Jenkins alle Daten in diesem Verzeichnis im Dateisystem.
Es gibt mehrere Möglichkeiten, das Jenkins-Home-Verzeichnis zu ändern:
JENKINS_HOME
in Ihrer Jenkins-Konfigurationsdatei (z. B. /etc/sysconfig/jenkins
unter Red Hat Linux).JENKINS_HOME
festzulegen.JENKINS_HOME
fest, bevor Sie Ihren Web-Container starten oder bevor Sie Jenkins direkt aus der WAR-Datei starten.JENKINS_HOME
fest, wenn Sie Ihren Web-Container starten oder wenn Sie Jenkins direkt aus der WAR-Datei starten.web.xml
in jenkins.war (oder das erweiterte Bild in Ihrem Web-Container). Dies wird nicht empfohlen. Dieser Wert kann nicht geändert werden, während Jenkins ausgeführt wird. Es wird hier angezeigt, um sicherzustellen, dass Ihre Konfiguration wirksam wird.Ich würde vorschlagen, die/etc/default/jenkins zu bearbeiten
vi /etc/default/jenkins
Und ändern Sie die $ JENKINS_HOME-Variable (um Zeile 23) in
JENKINS_HOME=/home/jenkins
Dann starten Sie die Jenkins mit üblich neu
/etc/init.d/jenkins start
Prost!
Wenn Sie unter "Konfigurieren" unter "Start" gehen, finden Sie eine "Hilfe", die Folgendes beschreibt:
Home-Verzeichnis/var/lib/jenkins Hilfe zur Funktion: Home-Verzeichnis
Standardmäßig speichert Jenkins alle Daten in diesem Verzeichnis im Dateisystem.
Es gibt mehrere Möglichkeiten, das Jenkins-Home-Verzeichnis zu ändern:
Edit the JENKINS_HOME variable in your Jenkins configuration file (e.g. /etc/sysconfig/jenkins on Red Hat Linux).
Use your web container's admin tool to set the JENKINS_HOME environment variable.
Set the environment variable JENKINS_HOME before launching your web container, or before launching Jenkins directly from the WAR file.
Set the JENKINS_HOME Java system property when launching your web container, or when launching Jenkins directly from the WAR file.
Modify web.xml in jenkins.war (or its expanded image in your web container). This is not recommended.
Dieser Wert kann nicht geändert werden, während Jenkins ausgeführt wird.