0
我有Jenkins集群,有1-Master with 2-Executor and 1-Agent with 2-Executor
,现在如何使用java或groovy脚本获取Jenkins集群中执行者的总数?Jenkins集群中执行者的数量
我有Jenkins集群,有1-Master with 2-Executor and 1-Agent with 2-Executor
,现在如何使用java或groovy脚本获取Jenkins集群中执行者的总数?Jenkins集群中执行者的数量
如果你有机会到脚本控制台,您可以运行这样的事情:
final jenkins = Jenkins.instance
jenkins.computers.inject(0) { acc, item ->
acc + item.numExecutors
}
如果您在沙盒管道运行这一点,你必须有管理员列入白名单的方法在进程内脚本批准(或通过使用白名单的插件)在http://jenkinsUrl/scriptApproval/。您将无法使用inject
,因为现在的JENKINS-26481,但您的管道脚本可能看起来像:
final jenkins = Jenkins.instance
int executorCount = 0
for (def computer in jenkins.computers) {
executorCount += computer.numExecutors
}
// Rest of pipeline
如果您在管道沙盒不运行,你可以访问这些对象没有白名单。
'进口jenkins.model.Jenkins 节点{ 最终詹金斯= Jenkins.instance jenkins.computers.inject(0){ACC,项 - > ACC + item.getNumExecutors() } DEF输出= SH脚本:“java -jar /home/user1/earms/hazelcast/TestbedThreads.jar”,returnStdout:true}' 当我尝试运行上面的代码与管道..我收到以下异常:'org.jenkinsci。 plugins.scriptsecurity.sandbox.RejectedAccessException: 脚本不得使用方法jenkins.model.Jenkins getComputers' – User12345
,我试图批准以下:Jenkins-> ManageJenkins->进程脚本批准─>批准jenkins.model.jenkins。但不是工作king..could你请帮我解决这个问题.. – User12345
@ User12345你运行使用脚本控制台(http:// jenkinsUrl /脚本),或通过管道脚本?如果您正在运行沙盒脚本,则需要获得许可才能执行此操作。 – mkobit