詹金斯:通过 Groovy API 设置 root url
jenkins: setting root url via Groovy API
我正在尝试通过 Groovy API 更新 Jenkins 的根目录 URL,这样我就可以编写 Jenkins master 的部署脚本而无需手动输入(旁白:为什么像 Jenkins 这样在 build/devops/automation 社区中流行的工具如此抗拒自动化?)
基于 this documentation,我相信我应该能够在脚本控制台中使用以下脚本更新 URL。
import jenkins.model.JenkinsLocationConfiguration
jlc = new jenkins.model.JenkinsLocationConfiguration()
jlc.setUrl("http://jenkins.my-org.com:8080/")
println(jlc.getUrl())
简而言之,这会实例化一个 JenkinsLocationConfiguration
对象;使用所需的值 http://jenkins.my-org.com:8080/
调用 setter setUrl
;并打印出新的 URL 以确认它已更改。
println
语句打印出我期望的结果,但在此之后,通过 Web 界面在 "Manage Jenkins" -> "Configure System" -> "Jenkins URL" 处可见的值没有如我所料更新。
我担心 Jenkins 没有正确更新该值,这可能会导致与外部 APIs 通信时出现问题。
这是修复 Jenkins 根 URL 的有效方法吗?如果不是,那是什么?否则,为什么更改没有反映在配置页面中?
您正在创建一个新的 JenkinsLocationConfiguration 对象,并更新新对象,而不是正在使用的现有对象
使用
jlc = JenkinsLocationConfiguration.get()
// ...
jlc.save()
从全局 jenkins 配置中获取一个,更新它并保存配置描述符。
我正在尝试通过 Groovy API 更新 Jenkins 的根目录 URL,这样我就可以编写 Jenkins master 的部署脚本而无需手动输入(旁白:为什么像 Jenkins 这样在 build/devops/automation 社区中流行的工具如此抗拒自动化?)
基于 this documentation,我相信我应该能够在脚本控制台中使用以下脚本更新 URL。
import jenkins.model.JenkinsLocationConfiguration
jlc = new jenkins.model.JenkinsLocationConfiguration()
jlc.setUrl("http://jenkins.my-org.com:8080/")
println(jlc.getUrl())
简而言之,这会实例化一个 JenkinsLocationConfiguration
对象;使用所需的值 http://jenkins.my-org.com:8080/
调用 setter setUrl
;并打印出新的 URL 以确认它已更改。
println
语句打印出我期望的结果,但在此之后,通过 Web 界面在 "Manage Jenkins" -> "Configure System" -> "Jenkins URL" 处可见的值没有如我所料更新。
我担心 Jenkins 没有正确更新该值,这可能会导致与外部 APIs 通信时出现问题。
这是修复 Jenkins 根 URL 的有效方法吗?如果不是,那是什么?否则,为什么更改没有反映在配置页面中?
您正在创建一个新的 JenkinsLocationConfiguration 对象,并更新新对象,而不是正在使用的现有对象
使用
jlc = JenkinsLocationConfiguration.get()
// ...
jlc.save()
从全局 jenkins 配置中获取一个,更新它并保存配置描述符。