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