作为服务安装时,在Windows上重新定位JENKINS_HOME

时间:2015-01-19 22:33:15

标签: windows jenkins

要释放C:上的空间,我想将我的Jenkins数据文件(特别是\jobs目录)从默认安装目录C:\Program Files (x86)\Jenkins移至F:\Jenkins\home。我认为我需要做的是将JENKINS_HOME环境变量设置为F:\Jenkins\home。但无论我尝试什么,JENKINS_HOME环境变量始终设置为jenkins.exe的位置。

相关:

以下是我迄今为止所做的尝试:

  1. Moved jenkins data到F:\ Jenkins \ home
  2. 停止正在运行的jenkins服务
  3. 使用jenkins.exe uninstall
  4. 卸载jenkins服务
  5. 卸载jenkins
  6. 删除%HOMEPATH%\.jenkins目录
  7. 删除旧的jenkins安装目录
  8. 下载最新的MSI安装程序v1.597
  9. 已安装到C:\Program Files (x86)\Jenkins2(已重命名以确保注册表或配置文件中没有陈旧值)
  10. 将系统级环境变量JENKINS_HOME设置为F:\Jenkins\home
  11. 将用户级环境变量JENKINS_HOME设置为F:\Jenkins\home
  12. Modified jenkins.xml使用<env name="JENKINS_HOME" value="F:\Jenkins\home"/>
  13. 启动Jenkins服务
  14. 此时,当我查看系统配置时,JENKINS_HOME设置为C:\Program Files (x86)\Jenkins2。所以似乎必须始终设置为jenkins.exe的位置。

    也许我已经回答了我自己的问题。如果可能的话,我希望将程序和数据分开。我必须在我的F:\驱动器上安装jenkins吗?或者,有没有办法简单地拆分jobs目录并将其他所有内容保留在C:上?

    谢谢!

    编辑:我必须移动JENKINS_HOME,而是能够配置工作区构建目录,将所有繁重的磁盘使用量移至F:。我选择的设置是:

    工作区根目录= F:/Jenkins/workspace/${ITEM_FULLNAME} 构建记录根目录= F:/Jenkins/jobs/${ITEM_FULL_NAME}/builds

    我手动迁移这些目录,因此不必重新创建它们。在这个过程中,我确实失去了我的构建历史,但我现在还可以。

8 个答案:

答案 0 :(得分:17)

Pre Jenkins 2.121

JENKINS_HOME是安装Jenkins的地方,这不是你想要改变的地方。启动Jenkins后,请转到:

  1. 管理Jenkins
  2. 系统配置
  3. 点击第一个&#34;高级&#34;按钮
  4. 这为您提供了文本字段,您可以在其中更改工作区的目录并构建目录。这些是使用大量磁盘空间的两个目录。请注意,它不会移动历史记录。如果要移动现有工作区/等,则需要手动复制它们。

    发布2.121 您必须设置属性(而不是通过UI)。要使用的系统属性是jenkins.model.Jenkins.buildsDir。

    https://jenkins.io/doc/upgrade-guide/2.121/#ui-option-for-custom-builds-and-workspace-directories-on-the-master-has-been-removed https://wiki.jenkins.io/display/JENKINS/Features+controlled+by+system+properties

答案 1 :(得分:6)

另一种可能性是移动$ JENKINS_HOME的全部内容。

它不需要编辑配置文件,它保留了构建历史记录。

  1. 停止正在运行的服务:value is not None

  2. 卸载服务:jenkins.exe stop

  3. 将C:\ Jenkins \ home复制到F:\ Jenkins \ home

  4. 将C:\ Jenkins重命名为其他内容,将其保留为备份。

  5. 转到F:\ Jenkins \ home

  6. 重新安装服务:jenkins.exe uninstall

  7. 启动Jenkins:jenkins.exe install

  8. 享受新的磁盘空间!

答案 2 :(得分:5)

对于Jenkins 2.0,只需要添加一个名为“JENKINS_HOME”的系统环境变量,该变量指向新位置。我使用的步骤:

  1. 停止托管Jenkins的容器(例如Tomcat)。
  2. 添加一个名为“JENKINS_HOME”的系统环境变量,指向新位置。
  3. 重新启动托管Jenkins的容器。

答案 3 :(得分:3)

对于WINDOWS:

从中复制所有数据 C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins.jenkins D:\Jenkins\home

转到Jenkins安装的文件夹C:\Program Files\Jenkins

  • 从命令行-jenkins.exe stop

    停止运行的Jenkins服务
  • 从命令行-jenkins.exe uninstall

    卸载 Jenkins服务
  • 更新 jenkins.xml<env name="JENKINS_HOME" value="D:\JenkinsHome"/>

  • 从命令行
  • 安装 Jenkins服务-jenkins.exe install

  • 从命令行-jenkins.exe start

    启动 Jenkins服务
  • 登录到Jenkins http://localhost:8080

  • 导航到Manage Jenkins > Configure System

验证主目录必须指向D:\ JenkinsHome

答案 4 :(得分:2)

如果您使用的旧版本超过2.0,请执行以下操作:

1)打开jenkins - &gt;管理Jenkins - &gt;配置系统。检查主目录的路径。 2)停止jenkins服务。 3)将jenkins主目录复制到您要移动的其他驱动器或位置。 4)从程序文件中打开jenkins.xml并修改值<env name="JENKINS_HOME" value="d:\Jenkins"/>将d:\ Jenkins更改为新路径。 5)重启Jenkins服务。 6)测试你的工作:)

答案 5 :(得分:2)

首先设置jenkins主路径,然后运行/ install jenkins.war

示例:

set JENKINS_HOME=D:\
java -jar jenkins.war --httpPort=8091 -path=D:\<some-folder-name>\

答案 6 :(得分:1)

偶然发现这个问题,因为我在C:/上的硬盘短缺,但在D:/上有很多。

The answer of Jeanne Boyarsky对我的詹金斯影响不大。虽然我更改了这两个变量,但Jenkins仍然使用了原来的workspacejobs目录,这些目录占用了我的C:/驱动器的1/3。

一位同事向我指出了简单地使用符号链接作为目录的简单解决方案。

关闭Jenkins后,打开CMD目录上的%JENKINS_HOME%,只需为大目录创建两个链接:

pushd %JENKINS_HOME%
:: save the old directories
ren workspace workspace.old
ren jobs jobs.old
:: now create the links
mklink /D /J workspace D:\jenkins\workspace
mklink /D /J jobs D:\jenkins\jobs
:: copy the original jobs to the new location
xcopy jobs.old\* jobs\ /sy

在此之后,重启你的Jenkins。如果一切正常,您可以安全地删除.old目录。

答案 7 :(得分:1)

遇到相同的问题,并且不想更改整个%JENKINS_HOME%的位置,我遇到了answer by adil ameen

修改config.xml中的%JENKINS_HOME%文件(通常在C:\ Program Files(x86)\ Jenkins下)。 将<workspaceDir><buildsDir>更改为所需的文件夹。

您可以使用以下占位符:${JENKINS_HOME}${ITEM_ROOTDIR}${ITEM_FULL_NAME}。根据{{​​1}}

Features controlled by system properties的规定

我的看起来像这样:

jenkins.model.Jenkins.buildsDir

通过 <workspaceDir>D:/jenkins/jobs/${ITEM_FULL_NAME}/workspace</workspaceDir> <buildsDir>D:/jenkins/jobs/${ITEM_FULL_NAME}/builds</buildsDir> -> Jenkins-> Manage Jenkins

通过Jenkins UI重新加载配置

如果您将旧作业复制到新位置,甚至可以保留构建历史记录。