作为服务安装时在 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
.
的位置
相关:
- How to change Jenkins default folder on Windows?
- JIRA 问题 JENKINS-13530 JENKINS_HOME ignored on Bundled Windows EXE 已关闭为 "not an issue"
这是我到目前为止尝试过的方法:
- Moved jenkins data 转 F:\Jenkins\home
- 停止 运行 詹金斯服务
- 用
jenkins.exe uninstall
卸载jenkins服务
- 卸载詹金斯
- 删除
%HOMEPATH%\.jenkins
目录
- 删除旧的 jenkins 安装目录
- 下载最新的 MSI 安装程序
v1.597
- 安装到
C:\Program Files (x86)\Jenkins2
(重命名以确保注册表或配置文件中没有过时的值)
- 将系统级环境变量
JENKINS_HOME
设置为F:\Jenkins\home
- 将用户级环境变量
JENKINS_HOME
设置为F:\Jenkins\home
- Modified
jenkins.xml
使用 <env name="JENKINS_HOME" value="F:\Jenkins\home"/>
- 启动 Jenkins 服务
此时,当我查看系统配置时,JENKINS_HOME
设置为 C:\Program Files (x86)\Jenkins2
。所以似乎 必须总是 设置到 jenkins.exe
.
的位置
也许我已经回答了我自己的问题。如果可能的话,我希望将程序和数据分开。我必须将 jenkins 安装到我的 F:\
驱动器吗?或者,有没有办法简单地拆分 jobs
目录并将其他所有内容留在 C:
上?
谢谢!
编辑:我不是必须移动JENKINS_HOME
,而是能够配置workspace 和 builds 目录,将所有繁重的磁盘使用转移到 F:
。我选择的设置是:
工作space根目录=F:/Jenkins/workspace/${ITEM_FULLNAME}
构建记录根目录 = F:/Jenkins/jobs/${ITEM_FULL_NAME}/builds
我手动迁移了这些目录,因此不必重新创建它们。在此过程中,我确实丢失了我的构建历史记录,但我现在可以接受。
Jenkins 2.121 之前
JENKINS_HOME 是 Jenkins 的安装位置,这不是您想要更改的位置。启动 Jenkins 后,转到:
- 管理詹金斯
- 系统配置
- 单击第一个 "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" 的系统环境变量来指向新位置。我使用的步骤:
- 停止托管 Jenkins 的容器(例如 Tomcat)。
- 添加指向新位置的名为 "JENKINS_HOME" 的系统环境变量。
- 重新启动托管 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 仍然使用原来的 workspace
和 jobs
目录,它们占用了我 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.
的全部内容
它不需要编辑配置文件,并且保留构建历史。
停止 运行 服务:jenkins.exe stop
卸载服务:jenkins.exe uninstall
复制 C:\Jenkins\home 到 F:\Jenkins\home
将 C:\Jenkins 重命名为其他名称,保留它作为备份。
转到 F:\Jenkins\home
重新安装服务:jenkins.exe install
启动詹金斯: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
为了在 C:
上释放 space,我想将我的 Jenkins 数据文件(特别是 \jobs
目录)从默认安装目录 C:\Program Files (x86)\Jenkins
移动到F:\Jenkins\home
。我 认为 我需要做的是将 JENKINS_HOME
环境变量设置为 F:\Jenkins\home
。但无论我尝试什么,JENKINS_HOME
环境变量始终设置为 jenkins.exe
.
相关:
- How to change Jenkins default folder on Windows?
- JIRA 问题 JENKINS-13530 JENKINS_HOME ignored on Bundled Windows EXE 已关闭为 "not an issue"
这是我到目前为止尝试过的方法:
- Moved jenkins data 转 F:\Jenkins\home
- 停止 运行 詹金斯服务
- 用
jenkins.exe uninstall
卸载jenkins服务
- 卸载詹金斯
- 删除
%HOMEPATH%\.jenkins
目录 - 删除旧的 jenkins 安装目录
- 下载最新的 MSI 安装程序
v1.597
- 安装到
C:\Program Files (x86)\Jenkins2
(重命名以确保注册表或配置文件中没有过时的值) - 将系统级环境变量
JENKINS_HOME
设置为F:\Jenkins\home
- 将用户级环境变量
JENKINS_HOME
设置为F:\Jenkins\home
- Modified
jenkins.xml
使用<env name="JENKINS_HOME" value="F:\Jenkins\home"/>
- 启动 Jenkins 服务
此时,当我查看系统配置时,JENKINS_HOME
设置为 C:\Program Files (x86)\Jenkins2
。所以似乎 必须总是 设置到 jenkins.exe
.
也许我已经回答了我自己的问题。如果可能的话,我希望将程序和数据分开。我必须将 jenkins 安装到我的 F:\
驱动器吗?或者,有没有办法简单地拆分 jobs
目录并将其他所有内容留在 C:
上?
谢谢!
编辑:我不是必须移动JENKINS_HOME
,而是能够配置workspace 和 builds 目录,将所有繁重的磁盘使用转移到 F:
。我选择的设置是:
工作space根目录=F:/Jenkins/workspace/${ITEM_FULLNAME}
构建记录根目录 = F:/Jenkins/jobs/${ITEM_FULL_NAME}/builds
我手动迁移了这些目录,因此不必重新创建它们。在此过程中,我确实丢失了我的构建历史记录,但我现在可以接受。
Jenkins 2.121 之前
JENKINS_HOME 是 Jenkins 的安装位置,这不是您想要更改的位置。启动 Jenkins 后,转到:
- 管理詹金斯
- 系统配置
- 单击第一个 "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" 的系统环境变量来指向新位置。我使用的步骤:
- 停止托管 Jenkins 的容器(例如 Tomcat)。
- 添加指向新位置的名为 "JENKINS_HOME" 的系统环境变量。
- 重新启动托管 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:/ 上有很多。
workspace
和 jobs
目录,它们占用了我 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.
的全部内容它不需要编辑配置文件,并且保留构建历史。
停止 运行 服务:
jenkins.exe stop
卸载服务:
jenkins.exe uninstall
复制 C:\Jenkins\home 到 F:\Jenkins\home
将 C:\Jenkins 重命名为其他名称,保留它作为备份。
转到 F:\Jenkins\home
重新安装服务:
jenkins.exe install
启动詹金斯:
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
我的看起来像这样:
<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