通过脚本更改现有Jenkins节点上的执行程序数

问题描述 投票:4回答:3

我不能编写脚本并更改已存在的节点(非主节点)上的执行程序数。最好通过使用groovy,但如果有插件或CLI命令可以做的也很有趣。

我想要做的片段:

jenkins.model.Jenkins.instance.nodes.each { node ->
  println node.getNumExecutors()

  //How do I set the number of executors for a node?
}
jenkins jenkins-plugins jenkins-cli
3个回答
1
投票

目前这不可能 - Jenkins节点的numExecutors属性是只读的。

来自JENKINS-23534

[setNumExecutors]故意是private,因为Jenkins没有提供改变SlaveComputerSlave一旦创建的执行者数量的方法。相反,您更改配置,意味着替换现有的Slave


1
投票

您可以运行下面的脚本来修改Jenkins config.xml文件...然后只需在Manage Jenkins中“从磁盘重新加载配置”。

这适用于http://jenkins:8080/script控制台。

import groovy.xml.XmlUtil 
// the path to your jenkins config.xml
filePath = '/opt/sites/.jenkins/config.xml'
fileContents = new File(filePath).text

def config = new XmlSlurper().parseText(fileContents)

config.slaves[0].slave.each {
  it.numExecutors = 5
}

def writer = new FileWriter(filePath)
XmlUtil.serialize(config, writer)

如果要自动重新加载配置,可以添加:

Jenkins.instance.reload()

0
投票

您无法通过Jenkins API更改从属服务器上的执行程序数量,这非常痛苦。您必须删除从站并重新创建它以更改执行程序的数量,因此您需要确保首先在从站上没有运行构建。

以自动方式执行此操作的另一个选项是在Jenkins CLI中使用create-slave和delete-slave命令(转到Jenkins实例中的/ cli链接以获取CLI文档)。

© www.soinside.com 2019 - 2024. All rights reserved.