我正在安装 Jenkins(在 Windows 上),并且希望安装本身(jenkins.war
、jenkins.exe
插件)位于系统驱动器(C:)上,但作业和工件(位于 D:)上
这文档JENKINS_HOME
似乎表明不可能... 这是正确的吗,或者是否存在单独的变量 - 或命令行开关 - 我可以用来告诉软件对“代码”和“数据”使用单独的路径?
答案1
有一个记录选项可以分离“代码“(即jobs/jobname/config.xml
:)来自数据“ (IE; jobs/jobname/builds/...
)
使用 Jenkins 系统属性jenkins.模型.Jenkins.buildsDir。
jenkins.model.Jenkins.buildsDir
默认:
${ITEM_ROOTDIR}/builds
描述:默认情况下,给定作业的配置位于 下
$JENKINS_HOME/jobs/[JOB_NAME]/config.xml
,其构建位于 下$JENKINS_HOME/jobs/[JOB_NAME]/builds
。此选项允许您将构建存储在其他地方,这对于更细粒度的备份策略很有用,或者将构建数据存储在更快的磁盘(如 SSD)上。此值支持以下占位符:${JENKINS_HOME} – Resolves to the Jenkins home directory. ${ITEM_ROOTDIR} – The directory containing the job metadata within Jenkins home. ${ITEM_FULL_NAME} – The full name of the item, with file system unsafe characters replaced by others. ${ITEM_FULLNAME} – See above, but does not replace unsafe characters. This is a legacy option and should not be used.
例如,如果您想将构建存储在 Jenkins 主目录之外,则可以使用如下值:
/some_other_root/builds/${ITEM_FULL_NAME}
这曾经是一个 UI 设置,但在 2.119 中被删除,因为它不支持现有构建记录的迁移,并且可能导致构建相关的错误,直到重新启动。
阅读链接中的更多详细信息,了解如何实现现有配置。
用法
-Dproperty=value
系统属性通过传递给 java 命令行来启动 Jenkins 来定义。确保在 -jar 参数之前传递所有这些参数,否则它们将被忽略。示例:
java -Dhudson.footerURL=http://example.org -jar jenkins.war
警告:兼容性
我们的确是不是保证系统属性保持不变并无限期地发挥作用。这些开关通常具有实验性质,如有更改,恕不另行通知。如果您发现这些有用,请提交工单以将其提升为官方功能。
附言:我不知道“将其推广为官方功能的门票”,但我会赞成任何此类请求。
上述属性是违反直觉的(即:JENKINS_JAVA_OPTIONS):
系统属性是通过传递-Dproperty=value
给 java 命令行来启动 Jenkins 来定义的。确保传递所有这些参数前参数-jar jenkins.war
,否则它们将被忽略。
基本顺序是:
$JAVA_HOME/bin/java $JENKINS_JAVA_OPTIONS -DJENKINS_HOME=$JENKINS_HOME -jar $JENKINS_WAR $PARAMS
我还应该引导你去查看 Serverfault 上的相关答案:Jenkins[networking]配置参数是在安装时还是运行jenkins时要用到的?。有特定的“代码”相关选项指向不同的目录。以下是 war 的“$PARAMS”,所以来吧后参数-jar jenkins.war
。
相关摘要如下所列,但请检查您的二进制文件以了解选项。
C:\apps\j2>java -jar jenkins-2.303.2.war --help
Running from: C:\apps\j2\jenkins-2.303.2.war
webroot: $user.home/.jenkins
Jenkins Automation Server Engine 2.303.2
Options:
Usage: java -jar jenkins.war [--option=value] [--option=value]
--webroot = folder where the WAR file is expanded into. Default is ${JENKINS_HOME}/war
--pluginroot = folder where the plugin archives are expanded into. Default is ${JENKINS_HOME}/plugins
(NOTE: this option does not change the directory where the plugin archives are stored)
--extractedFilesFolder = folder where extracted files are to be located. Default is the temp folder
--logfile = redirect log messages to this file
--javaHome = Override the JAVA_HOME variable
--toolsJar = The location of tools.jar. Default is JAVA_HOME/lib/tools.jar
--config = load configuration properties from here. Default is ./winstone.properties
--commonLibFolder = folder for additional jar files. Default is ./lib
--extraLibFolder = folder for additional jar files to add to Jetty classloader
--usage / --help = show this message