【发布时间】:2024-04-14 07:45:01
【问题描述】:
有没有人尝试过使用 Jenkins Rest/API 或任何其他方式在 Jenkins 从站配置中添加或更新 ENVIRONMENT 变量的方法。
使用 Jenkins Swarm 插件,我创建了一个从站(它使用 JLNP 连接到 Jenkins 主站),但环境变量(未勾选复选框)并且没有由 Swarm 客户端 jar 创建的环境变量(默认情况下)。用户可以手动添加 if reqd 但我正在寻找是否有办法在从属设备中添加/更新 ENV 变量。
我想创建多个 swarm slave(其中每个 slave 有不同的工具,具有不同的值,即 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 但它没有提供任何方法/方式来设置节点的属性/ENV 变量。没有 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 shelljava -jar jenkins-cli.jar -s http://localhost:8080 groovysh
【问题讨论】:
标签: jenkins environment-variables jenkins-plugins master-slave