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

Relocating JENKINS_HOME on Windows when installed as service

为了在 C: 上释放 space,我想将我的 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. 停止 运行 詹金斯服务
  3. jenkins.exe uninstall
  4. 卸载jenkins服务
  5. 卸载詹金斯
  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 服务

此时,当我查看系统配置时,JENKINS_HOME 设置为 C:\Program Files (x86)\Jenkins2。所以似乎 必须总是 设置到 jenkins.exe.

的位置

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

谢谢!

编辑:我不是必须移动JENKINS_HOME,而是能够配置workspacebuilds 目录,将所有繁重的磁盘使用转移到 F:。我选择的设置是:

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

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

Jenkins 2.121 之前

JENKINS_HOME 是 Jenkins 的安装位置,这不是您想要更改的位置。启动 Jenkins 后,转到:

  1. 管理詹金斯
  2. 系统配置
  3. 单击第一个 "advanced" 按钮

这为您提供了文本字段,您可以在其中更改工作目录space并构建目录。这两个目录占用了大量磁盘 space。请注意,它不会移动历史记录。如果您想移动现有的 workspaces/etc,您需要手动复制它们。

Post 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

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

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

如果您使用的 jenkins 版本早于 2.0,您应该执行以下操作:

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

偶然发现这个问题是因为我在 C:/ 上的 HDD 不足,但在 D:/ 上有很多。

对我的 Jenkins 的影响完全为零。虽然我更改了这两个变量,但 Jenkins 仍然使用原来的 workspacejobs 目录,它们占用了我 C:/ 驱动器的 1/3。

一位同事向我指出了简单的解决方案,即对目录使用符号链接

关闭 Jenkins 后,在 %JENKINS_HOME% 目录中打开您的 CMD 并简单地为大目录创建两个链接:

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 目录。

另一种可能性是移动 $JENKINS_HOME.

的全部内容

它不需要编辑配置文件,并且保留构建历史。

  1. 停止 运行 服务:jenkins.exe stop

  2. 卸载服务:jenkins.exe uninstall

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

  4. 将 C:\Jenkins 重命名为其他名称,保留它作为备份。

  5. 转到 F:\Jenkins\home

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

  7. 启动詹金斯:jenkins.exe start

享受新盘space!

先设置jenkins home路径然后运行 /install jenkins.war

示例:

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

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

修改%JENKINS_HOME%中的config.xml文件(典型在C:\Program Files (x86)\Jenkins下)。 将 <workspaceDir><buildsDir> 更改为您想要的文件夹。

您可以使用以下占位符:${JENKINS_HOME}${ITEM_ROOTDIR}${ITEM_FULL_NAME}。根据 jenkins.model.Jenkins.buildsDir

下的 Features controlled by system properties 指定

我的看起来像这样:

  <workspaceDir>D:/jenkins/jobs/${ITEM_FULL_NAME}/workspace</workspaceDir>
  <buildsDir>D:/jenkins/jobs/${ITEM_FULL_NAME}/builds</buildsDir>

通过 Jenkins UI 通过 Jenkins -> Manage Jenkins -> Reload configuration from disk

重新加载配置

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

对于WINDOWS:

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

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

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

  • 从命令行卸载 Jenkins 服务 - jenkins.exe uninstall

  • 更新 jenkins.xml<env name="JENKINS_HOME" value="D:\JenkinsHome"/>

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

  • 从命令行启动 Jenkins 服务- jenkins.exe start

  • 登录 到 Jenkins http://localhost:8080

  • 导航到 Manage Jenkins > Configure System

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