有人尝试过使用Jenkins Rest/API或其他方式来添加或更新Jenkins从节点配置中的环境变量吗?
我使用Jenkins Swarm插件创建了一个从节点(它使用JLNP连接到Jenkins主服务器),但是没有勾选环境变量复选框,Swarm客户端jar也没有创建任何环境变量(默认情况下)。用户可以手动添加,但我想知道是否有一种方法可以在从节点中添加/更新环境变量。
我想创建多个Swarm从节点(每个从节点具有不同的工具和值,例如slave01 JAVA_HOME=/path/jdk1.7.0.67和其他slave02 JAVA_HOME=/path/jdk1.8.0_45等等)。我尝试查看http://javadoc.jenkins-ci.org/hudson/model/Node.html或http://javadoc.jenkins-ci.org/hudson/model/Slave.html或http://javadoc.jenkins-ci.org/hudson/slaves/DumbSlave.html,但它们没有提供设置节点属性/环境变量的任何方法/方式。没有setNodeProperties或类似的方法(如果那是设置ENV变量/属性的正确方法的话)。
我正在寻找一种将以下变量添加到从节点的方法。 这篇帖子(由Villiam发布)反映了有人尝试使用Groovy脚本来完成相同的任务,但我不知道他如何使用相同的API to Create/Manage Nodes设置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