天天看點

通過jenkins API去build一個job背景 解決方法備注

背景

檢視jenkins的api

直接通路 JENKINS_URL/job/JOB_NAME/api/ 就可以檢視jenkins的api

build一個job的話,是POST請求 JENKINS_URL/job/JOB_NAME/build

會提示:

通過jenkins API去build一個job背景 解決方法備注

這是jenkins的安全政策導緻的,需要傳遞一個crumb

 解決方法

有兩個方案,

第一種方案:

1. 先去掉jenkins的安全政策設定,如圖,去掉勾選

在jenkins全局安全設定中 取消勾選 “防止跨站點請求僞造(Prevent Cross Site Request Forgery exploits)”

通過jenkins API去build一個job背景 解決方法備注

2. 允許anonymous 通路,如下圖,勾選上

通過jenkins API去build一個job背景 解決方法備注

3. 設定token,token是針對指定job的,是以去到job中去設定

通過jenkins API去build一個job背景 解決方法備注

那麼就可以通過POST請求通路 JENKINS_URL/job/test1/build?token=TOKEN_NAME 觸發這個job了

第二種方案: 安全這塊不用去掉防止跨站點請求僞造,通過傳遞crumb來實作;但允許anonymous 通路還是要設定的

 POST請求的時候帶上這個Jenkins-Crumb(推薦這種方法)

通過jenkins API去build一個job背景 解決方法備注

 通路 JENKINS_URL/crumbIssuer/api/json 就可以擷取到你的crumb,當然不同的用戶端去通路得到的不一樣

通過jenkins API去build一個job背景 解決方法備注

備注

将文中的JENKINS_URL替換成你自己的jenkins位址,

JOB_NAME替換成job的名字;

TOKEN_NAME 替換成你自己寫的token值,如我上面的jwentest1

雖千萬人,吾往矣!

繼續閱讀