为不同的 user.home 配置 Jenkins

Posted

技术标签:

【中文标题】为不同的 user.home 配置 Jenkins【英文标题】:Configure Jenkins for different user.home 【发布时间】:2013-09-13 07:07:48 【问题描述】:

我正在运行 Jenkins 版本 1.527(我知道有一个更新的版本但它已损坏,我无法使用 1.528 中的用户界面并且没有机会升级到 1.529)

我正在尝试通过在我的启动脚本中执行此操作来更改 Jenkins 中的 user.home 系统属性:

export HOME=/new-home-dir

但是,环境变量在 jenkins 中正确显示,user.dir 显示为导出的变量,但 user.home 没有改变。

我不能使用默认功能的原因是因为我所在的企业锁定了用户的主目录,而我的用户可以在那里添加或修改文件。

任何有关更改 user.home 的帮助将不胜感激。

仅供参考 - 我在 RHEL v6.2 上运行 Jenkins

尝试的解决方案

    将 -Duser.home=/newDir 添加到 JAVA_OPTS 或 JAVA_ARGS,均无效 将 -Duser.home=/newDir 添加到构建作业中的 MAVEN_OPTS。

【问题讨论】:

您是否尝试过在用户的 .bash_profile 中使用它?请参阅 superuser.com/questions/183870/… ; ***.com/questions/4608187/… 和 hacktux.com/bash/bashrc/bash_profile 确保为您的操作系统和外壳编辑正确的文件。可以通过 echo "am in file ..." 在每个中确保 很遗憾,我无权访问这些文件。我已向 SA 请求为用户添加一个主目录,但我仍然希望看到这个问题的答案,因为 Jenkins 应该接受对 HOME 环境变量的更改。 也许你可以试试 jenkins 支持网站? 已经尝试过了,似乎没有得到太多关注,因为运行 jenkins 的人一定不能在与我相同类型的限制性环境中运行它。 哦,好吧,我想接下来要尝试的是为这个问题设置一个赏金或获取源代码并修复你自己或启动过程以更新它(如果新版本支持) 【参考方案1】:

我找到了另一个解决方法。

    转到管理 Jenkins > 配置系统 导航到全局属性 激活复选框环境变量 名称字段弹出user.home 值是你想要的路径 点击应用,保存并重启 Jenkins

这会覆盖该路径。

【讨论】:

这不是正确的做法!请在下面查看我的答案。【参考方案2】:

我也有同样的问题。您不能只添加环境变量来更改路径。您需要自行更改 jenkins 用户的主目录。

在基于 linux/unix 的系统中,在终端上运行以下命令。

以 root 用户身份登录,或者如果您不是以 root 用户身份运行,则在命令前使用 sudo,

1) 将 Jenkins 安装目录移动到您想要的位置。

  mv /var/lib/jenkins /path/to/your/location

2) 更改 Jenkins 用户主目录。

  usermod -d /path/to/your/location jenkins

现在重新启动詹金斯。您应该会看到 user.home 和 HOME 变量设置为新位置。

【讨论】:

【参考方案3】:

我遇到了同样的问题并通过两种不同的方式解决了:

1- 我第一次编辑文件startup.sh,在/tomcat/bin 内。在这个文件中,我在第一行添加了这个:JENKINS_HOME=/var/jenkins

2- 设置相同的内部环境变量。只需注意使用执行 Jenkins 的同一用户设置变量。例如,如果 Jenkings Jenkins 在 root 下运行,则需要指定环境变量与此用途。

观察:由于兼容性问题,如果您定义HUDSON_HOME 而不是JENKINS_HOME,则两个都可以正常工作。

希望对你有帮助!

【讨论】:

【参考方案4】:

我在 ubuntu 服务器上遇到了同样的问题。

以 root 用户身份登录。

停止使用 jenkins 用户运行的所有进程。

1) 停止 jenkins 服务。

  sudo service jenkins stop

2) 更改 Jenkins 用户主目录。

  usermod -d /path/to/your/location jenkins

3) 启动 jenkins 服务。

  sudo service jenkins start 

您将看到 user.home 以及 HOME 和 PWD 变量设置为新位置。

转到:管理Jenkins > 系统信息

在这里您将看到更改的变量位置

【讨论】:

【参考方案5】:

更改 JENKINS_HOME 和 user.home 是两个独立的主题。最初的问题都是关于更改 user.home 系统属性。我按照下面提到的步骤解决了这个问题(在 Jenkins 2.34 中):

转到:管理 Jenkins > 配置系统 选中“环境变量”复选框 在名称字段中输入“user.home”,在值字段中输入所需的用户主路径 保存更改,您就完成了 在我的 Jenkins 中,我遇到了 Jenkins maven 试图从错误的 user.home 路径读取 maven settings.xml 的问题。如上所述,我通过在 Jenkins 中添加“user.home”环境变量解决了这个问题。

【讨论】:

以上是关于为不同的 user.home 配置 Jenkins的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins 不同角色不同视图及不同权限设置

log4j的详细配置

Jenkins根据用户权限管理指定项目

jenkins针对不同的项目组对用户进行权限分配

jenkins用户权限配置

Jenkins Master/Slave节点环境部署配置