詹金斯奴隶-如何添加或更新环境变量

AKS

有没有人尝试过使用Jenkins Rest / API在Jenkins从站的配置中添加或更新ENVIRONMENT变量的方法或其他任何方法。

使用Jenkins Swarm插件,我创建了一个从属服务器(它使用JLNP连接到Jenkins主服务器),但是ENVIRONMENT变量(未选中复选框),并且Swarm客户端jar没有创建ENVIRONMENT变量(默认情况下)。用户可以根据需要手动添加,但是我正在寻找是否有一种方法可以在从属中添加/更新ENV变量。

在此处输入图片说明

我想创建多个群集从站(每个从站具有不同值的不同工具,即slave01 JAVA_HOME = / path / jdk1.7.0.67和其他slave02 JAVA_HOME = / path / jdk1.8.0_45等)。

我尝试查看http://javadoc.jenkins-ci.org/hudson/model/Node.htmlhttp://javadoc.jenkins-ci.org/hudson/model/Slave.htmlhttp:// javadoc。 jenkins-ci.org/hudson/slaves/DumbSlave.html, 它没有提供任何方法/方式来设置Node的属性/ ENV变量。没有setNodeProperties或类似的东西(如果那是设置ENV变量/属性的正确方法)。

我正在寻找的是一种将以下变量添加到从属的方法。

在此处输入图片说明

这篇文章(由Villiam撰写)反映出有人尝试使用常规的方法来完成此操作,但我看不到他如何使用相同的API来设置ENV变量来创建/管理节点

Jenkins-CLI可以选择运行groovy脚本:

java -jar path/to/jenkins-cli.jar -s http://localhost:8080 groovy path/to/script

脚本:

import jenkins.model.*
import hudson.model.*
import hudson.slaves.*
Jenkins.instance.addNode(new DumbSlave("test-script","test slave description","C:\\Jenkins","1",Node.Mode.NORMAL,"test-slave-label",new JNLPLauncher(),new RetentionStrategy.Always(),new LinkedList())) 

(有关其他选项,请参见文档:http : //javadoc.jenkins-ci.org/

您还可以使用以下命令运行交互式groovy shell

java -jar jenkins-cli.jar -s http://localhost:8080 groovysh

拉法布

如果未选中“环境变量”复选框,将使用一种方法 nodeProperties.add(new EnvironmentVariablesNodeProperty)

我在部署时用于在Jenkins上设置环境变量的完整脚本如下(打算通过调用jenkins-cli.jar):

import jenkins.model.*
import hudson.model.*
import hudson.slaves.*

String node_name = args[0]
String env_key = args[1]
String env_value = args[2]

instance = Jenkins.getInstance()
if (node_name == "master") {
  node = instance
} else {
  instance.getNode(node_name)
}
props = node.nodeProperties.getAll(hudson.slaves.EnvironmentVariablesNodeProperty.class)

if(props.empty) {
  def entry = new EnvironmentVariablesNodeProperty.Entry(env_key, env_value)
  def evnp = new EnvironmentVariablesNodeProperty(entry)
  node.nodeProperties.add(evnp)
} else {
  for (prop in props) {
    prop.envVars.put(env_key, env_value)
  }
}

instance.save()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

如何设置新的詹金斯奴隶

来自分类Dev

如何通过shell脚本检查奴隶詹金斯

来自分类Java

詹金斯注入环境变量

来自分类Dev

詹金斯环境变量丢失

来自分类Dev

密码更新后詹金斯没有连接到Windows奴隶

来自分类Dev

与许多奴隶并行分布-这个概念在詹金斯中如何工作?

来自分类Dev

如何在詹金斯中设置环境变量?

来自分类Dev

詹金斯:如何获取声纳环境变量

来自分类Dev

如何在詹金斯的同一个奴隶上同时启动工作两次?

来自分类Dev

基于环境变量的詹金斯管道条件阶段

来自分类Dev

詹金斯:更改顶层环境变量

来自分类Dev

如何启动詹金斯?

来自分类Dev

解锁詹金斯-如何

来自分类Dev

如何在脚本化的詹金斯管道中动态设置环境变量?

来自分类Java

哈得逊/詹金斯插件开发:如何让其他插件的环境变量

来自分类Dev

詹金斯(Jenkins)环境变量接收流浪逗号,如何防止这种情况发生?

来自分类Dev

如何阅读詹金斯旧版本注入的环境变量

来自分类Dev

在詹金斯禁用ping奴隶

来自分类Dev

詹金斯:从奴隶推到ECR

来自分类Dev

无法启动詹金斯奴隶

来自分类Dev

詹金斯奴隶显示为离线

来自分类Dev

根据轴选择詹金斯-奴隶

来自分类Dev

詹金斯奴隶与主人随机断开

来自分类Dev

詹金斯不接受变量声明

来自分类Dev

詹金斯管道中的变量间接?

来自分类Dev

詹金斯DSL管道def变量

来自分类Dev

直接分配变量以构建詹金斯

来自分类Dev

詹金斯版本作为管道变量?

来自分类Dev

如何重建詹金斯管道