Jenkins 从属环境变量刷新
Posted
技术标签:
【中文标题】Jenkins 从属环境变量刷新【英文标题】:Jenkins Slave Environment Variable Refresh 【发布时间】:2012-01-21 08:45:28 【问题描述】:我有一个具有JAVA_HOME
环境变量的 Jenkins Slave(一台 Windows PC)。我更新了 Slave 上的 Java 版本,所以我也更新了环境变量。
当我通过 Jenkins Web 界面查看这个 Slave 的系统属性时,JAVA_HOME
属性被报告为旧的。
在 Windows PC 上运行 echo %PATH%
会显示正确的值。
在从站的 Jenkins 节点脚本控制台上运行 println System.getenv("PATH")
会显示旧的 JAVA_HOME 值。
我已尝试再次删除和添加 Slave 并重新启动 Jenkins 服务器。仍然没有更新旧值。
有什么想法吗?
【问题讨论】:
【参考方案1】:无需重启。
管理 Jenkins -> 管理节点和云 单击所需的从站。然后从面板中选择“断开连接”。
Slave 将自动重新连接。如果没有,请点击“启动”。
这将刷新环境变量,包括“PATH”。
【讨论】:
【参考方案2】:你可以更新你的 Jenkins 版本,它会解决它。否则这对我有用(Jenkins 1.6,构建/测试节点:MacOSX Mojave):
首先使用以下命令在您的构建/测试节点中安装 java 8:
brew update
brew cask install caskroom/versions/java8
然后在 Jenkins web 面板中点击你的构建/测试节点,然后点击 Configure 然后点击 Advanced... 按钮,这将显示多个文本字段。然后在 JavaPath 字段中添加您的 java 8 的路径。
对我来说这条路是这样的:
/Library/Java/JavaVirtualMachines/jdk1.8.X_XXX.jdk/Contents/Home/bin/java
注意:记得将 X_XXX
替换为您之前的 java 8 版本。
然后保存。
然后断开构建/测试节点并再次连接。这应该可以解决问题。
Source
【讨论】:
【参考方案3】:这是 Jenkins 中的一个错误:https://issues.jenkins-ci.org/browse/JENKINS-27739
3种解决方法(我都亲自确认过):
-
将 Jenkins 更新到 >=1.617(推荐)
重启 Jenkins master
删除 Jenkins slave,然后重新添加
【讨论】:
感谢您向我们指出错误报告。更新到 >=1.617 解决了这个问题 有没有办法使用 Jenkins Rest/API 在 slave 的配置中添加/更新 ENV 变量? 你不需要完全删除slave!只需重新启动从代理就足够了。 同意@JohnBjareholt,很明显服务器正在缓存slave建立的环境,即使环境是由远程机器上slave的启动脚本加载的(没有更改服务器配置奴隶)。重新启动奴隶并没有为我解决这个问题。有趣的是,服务器重启会重新加载这些环境设置(甚至是从服务器的启动脚本中声明的那些)。【参考方案4】:重启slave,这解决了我的配置问题。
【讨论】:
【参考方案5】:Hudson/Jenkins 不使用从属环境变量,因为它支持多个 java 版本,因此您可以在 GUI 中配置 java home 环境变量。
您需要做的是转到 Manage Hudson/Jenkins,然后选择 Manage Nodes。从列表中选择要配置的节点,然后选择配置。在底部有一个节点属性部分。选中工具位置复选框。单击添加,然后在下拉列表中选择您的 JDK 并添加新路径。
【讨论】:
添加到节点的路径而不是从属的环境就可以了,谢谢。 问题仍未得到解答。我需要我的奴隶以某种方式“即时”更新 PATH 变量。 @AlexOkrushko 您是否找到了一种自动更新从属配置的方法,专门用于添加/更新 ENV 变量? @ArunSangal 这是很久以前的事了,但我想我已经做了类似的事情,如下面的答案所述。 @AlexOkrushko - 使用 Jenkins REST/API 是可能的,我取得了一些成功,我将分享我的发现。就我而言,我正在使用 Ansible + Jenkins Swarm Plugin 创建从站(但它不会创建 ENV 变量)。我打算使用第一部分创建从属,然后调用第二个 Jenkins 作业(它将配置新创建的从属以嵌入/添加/更新任何 ENV 变量)。以上是关于Jenkins 从属环境变量刷新的主要内容,如果未能解决你的问题,请参考以下文章