使用脚本设置Jenkins的“全局工具配置”属性

时间:2018-08-09 06:51:31

标签: jenkins jenkins-cli jenkins-api

我正在尝试通过docker部署jenkins pod,并通过脚本配置Jenkins Jobs。使用下面的一些restAPIs

a) https://<hostname>/scriptText
b) https://<hostname>/job//build
c) https://<hostname>/job/api/json
.
.
and more

但是,当我开始构建作业时,由于错误错误而导致失败:错误:除非提供有效的用户名/密码,否则无法安装JDK。

它需要从管理Jenkins->全局工具配置-> JDK-> JDK安装

更改配置

但是没有任何restAPI可用于执行此任务。

是否可以通过编程方式更改詹金斯全局配置?

1 个答案:

答案 0 :(得分:0)

我发现的一个解决方案是,在 Global Tool Configuration 中设置用户名和密码以从oracle站点下载JDK。

为此,请使用scriptText rest api在groovy脚本下执行

  

set_username_password.groovy

import jenkins.model.*
import hudson.model.*

def inst = Jenkins.getInstance()
def desc = inst.getDescriptor("hudson.tools.JDKInstaller")
#create user account here: http://www.oracle.com/technetwork/java/javase/downloads/index.html
println desc.doPostCredential('<username>','<password>')

执行其余api
curl --user <jk_username>:<jk_password> --data-urlencode "script=$(cat set_username_password.groovy)" -X POST "https://<hostname>/scriptText"
  

参考文献:

https://github.com/glenjamin/jenkins-groovy-examples/blob/master/README.md

http://javadoc.jenkins.io/archive/jenkins-2.73/hudson/tools/JDKInstaller.DescriptorImpl.html