經過jenkins API去build一個job

背景

查看jenkins的apijson

直接訪問 JENKINS_URL/job/JOB_NAME/api/ 就能夠查看jenkins的apiapi

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

會提示:ui

這是jenkins的安全策略致使的,須要傳遞一個crumb3d

 

 解決方法

有兩個方案,blog

第一種方案:token

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

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

2. 容許anonymous 訪問,以下圖,勾選上event

3. 設置token,token是針對指定job的,因此去到job中去設置

那麼就能夠經過POST請求訪問 JENKINS_URL/job/test1/build?token=TOKEN_NAME 觸發這個job了

 

 

第二種方案: 安全這塊不用去掉防止跨站點請求僞造,經過傳遞crumb來實現;但容許anonymous 訪問仍是要設置的

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

 訪問 JENKINS_URL/crumbIssuer/api/json 就能夠獲取到你的crumb,固然不一樣的客戶端去訪問獲得的不同

 

備註

將文中的JENKINS_URL替換成你本身的jenkins地址,

JOB_NAME替換成job的名字;

TOKEN_NAME 替換成你本身寫的token值,如我上面的jwentest1

相關文章
相關標籤/搜索