【问题标题】:How to change workspace and build record Root Directory on Jenkins?如何在 Jenkins 上更改工作空间并构建记录根目录?
【发布时间】:2016-04-23 14:28:51
【问题描述】:

我希望将 Jenkins 的数据写入驱动器“E:”,因为这是服务器上的大驱动器。 Jenkins 本身安装在“C:”上。

我该怎么做?

我看到的默认配置是:

工作区根目录: ${ITEM_ROOTDIR}/workspace
构建记录根目录: ${ITEM_ROOTDIR}/builds

以下更改能否帮助我实现所需?

工作区根目录: E:/Jenkins/workspace
构建记录根目录: E:/Jenkins/builds/${ITEM_FULL_NAME}

另外,“${ITEM_FULL_NAME}”是什么意思?

【问题讨论】:

    标签: jenkins workspace


    【解决方案1】:

    我想通了。 为了将您的 Jenkins 数据保存在其他驱动器上,您需要执行以下操作:

    工作区根目录: E:\Jenkins\${ITEM_FULL_NAME}\workspace
    构建记录根目录: E:\Jenkins\${ITEM_FULL_NAME}\构建

    【讨论】:

    • ITEM_ROOTDIR 发生了什么?
    • @IgorGanapolsky Jenkins 帮助解释了 ITEM_ROOTDIRITEM_FULL_NAME 之间的区别。看我的回答。
    • 看起来这个选项从 jenkins UI 中消失了,改用stackoverflow.com/a/51394813/1194180
    【解决方案2】:

    可以修改默认目录下config.xml文件的路径

    <projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
    <workspaceDir>D:/Workspace/${ITEM_FULL_NAME}</workspaceDir>
    <buildsDir>D:/Logs/${ITEM_ROOTDIR}/Build</buildsDir>
    

    【讨论】:

    • 查看 ${JENKINS_HOME}/config.xml 并相应地更改 ,保存,然后通过 UI 从磁盘重新加载配置。您可以在 systeminfo UI 中查看结果
    【解决方案3】:

    编辑:对于其他 cmets,“高级...”按钮似乎已在更新的 Jenkins 版本中被删除。如果您的版本没有,请参阅knorx's answer

    我遇到了同样的问题,即使在找到 this old pull request 之后,我仍然无法找到在系统级别指定工作区根目录或构建记录根目录的位置,而不是为每个作业指定自定义工作区。

    设置这些:

    1. 导航到Jenkins -> Manage Jenkins -> Configure System
    2. 在顶部的Home directory 下,单击Advanced... 按钮:
    3. 现在工作区根目录和构建记录根目录的字段出现:
    4. 单击每个选项左侧的帮助气泡时显示的信息非常有指导意义。特别是(来自工作区根目录帮助):

      该值可能包含以下变量:

      • ${JENKINS_HOME} — Jenkins 主目录的绝对路径
      • ${ITEM_ROOTDIR} — Jenkins 存储给定作业的配置和相关元数据的目录的绝对路径
      • ${ITEM_FULL_NAME} — 给定作业的全名,可以用斜杠分隔,例如foo/bar 文件夹 foo 中的作业栏


      该值通常应包含${ITEM_ROOTDIR}${ITEM_FULL_NAME},否则不同的作业最终将共享同一个工作区。

    【讨论】:

    • 对于我来说,Jenkins 忽略了工作空间根目录的变化,即使在重新启动从属服务器之后也是如此
    • @Rolle 你解决了吗?
    • 看起来他们在某个时候删除了“高级”按钮。直接在 config.xml 文件中查看@adil ameen 的答案。
    【解决方案4】:

    您需要的变量在 jenkins wiki 中进行了解释:https://wiki.jenkins.io/display/JENKINS/Features+controlled+by+system+properties

    默认变量 ITEM_ROOTDIR 指向 jenkins 安装中的一个目录。正如您已经发现的那样:

    • 工作区根目录: E:/myJenkinsRootFolderOnE/${ITEM_FULL_NAME}/workspace
    • 构建记录根目录:E:/myJenkinsRootFolderOnE/${ITEM_FULL_NAME}/builds

    现在您需要通过 config.xml 来实现这一点。引用上面链接的 wiki 页面:

    这曾经是一个 UI 设置,但在 2.119 中被删除,因为它没有 支持现有构建记录的迁移,并可能导致 与构建相关的错误,直到重新启动。

    【讨论】:

      【解决方案5】:

      我建议编辑 /etc/default/jenkins

      vi /etc/default/jenkins
      

      并将 $JENKINS_HOME 变量(大约第 23 行)更改为

      JENKINS_HOME=/home/jenkins
      

      然后像往常一样重启 Jenkins

      /etc/init.d/jenkins start
      

      干杯!

      【讨论】:

        【解决方案6】:

        您还可以编辑 JENKINS_HOME 目录中的 config.xml 文件。 使用 c32hedge 的响应作为参考,并将工作区位置设置为标签之间您想要的任何位置

        【讨论】:

          【解决方案7】:

          默认情况下,Jenkins 将其所有数据存储在文件系统的这个目录中。

          有几种方法可以更改 Jenkins 主目录:

          • 编辑 Jenkins 配置文件中的 JENKINS_HOME 变量(例如,Red Hat Linux 上的 /etc/sysconfig/jenkins)。
          • 使用 Web 容器的管理工具设置 JENKINS_HOME 环境变量。
          • 在启动 Web 容器之前或直接从 WAR 文件启动 Jenkins 之前设置环境变量 JENKINS_HOME
          • 在启动 Web 容器或直接从 WAR 文件启动 Jenkins 时设置 JENKINS_HOME Java 系统属性。
          • 修改 jenkins.war 中的 web.xml(或您的 Web 容器中的扩展图像)。不建议这样做。 在 Jenkins 运行时无法更改此值。 此处显示它是为了帮助您确保您的配置生效。

          【讨论】:

            【解决方案8】:

            如果您进入“主页”下的“配置”,则会有一条“帮助”说明,说明如何:

            主目录 /var/lib/jenkins 功能帮助:主目录

            默认情况下,Jenkins 将其所有数据存储在文件系统的这个目录中。

            有几种方法可以更改 Jenkins 主目录:

            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. 
            

            在 Jenkins 运行时无法更改此值。 此处显示以帮助您确保您的配置生效。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-03-28
              • 2014-07-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多