Curl

如何通過curl命令遠端觸發jenkins作業

  • October 25, 2018

我嘗試使用以下方法通過 curl 命令執行(觸發)jenkins 作業(不是參數化作業),但它顯示了這些結果。我的詹金斯版本是詹金斯 2.73.3

curl -X POST -u jenkins_user_name:jenkins_user_passwd http://jenkins_server/job/job_name/build

但它說禁止403 在此處輸入圖像描述

因此,我為作業創建了一個身份驗證令牌 在此處輸入圖像描述

curl -X POST http://jenkins_server/job/job_name/build?token=wefiytgwiefiweihfqweiodf

它也給出了同樣的錯誤。它說禁止 403

之後,我為 jenkins 使用者創建了一個 API 令牌並進行了嘗試。 在此處輸入圖像描述

curl -X POST -u auto:testingdae6dc22a73048e6d596e7b0 http://jenkins_server/job/job_name/build?token=wefiytgwiefiweihfqweiodf

但它也一樣,上面寫著 Forbidden 403

實際上我也遵循了這個答案。https://www.nczonline.net/blog/2015/10/triggering-jenkins-builds-by-url/ 這對我也不起作用。

每次都是403禁止。我想我無法正確驗證詹金斯使用者。

找到了答案。其實這些步驟都是對的。我想提一下正確的步驟。

在 Jenkins 中創建一個使用者,您可以使用該使用者密碼或 API 令牌來觸發 Jenkins 作業。但是為該使用者創建一個 API 令牌要好得多。但兩種方式都可以正常工作。

但是您必須為 Jenkins Job 創建一個身份驗證令牌

在此處輸入圖像描述

使用密碼

curl -I -u auto:<userpasswd> http://<jenkins_server>/job/test/build?token=wefiytgwiefiweihfqweiodf

使用 API 令牌

為該 Jenkins 使用者創建 API 令牌 在此處輸入圖像描述

curl -I -u auto:<user_api_token> http://<jenkins_Server>/job/test/build?token=wefiytgwiefiweihfqweiodf

這些是結果,使用jenkins user Passwordjenkins user API token

在此處輸入圖像描述

實際上,您也可以發送此請求,而無需“-I”。

curl -u auto:<jenkins_user_token> http://<jenkins_server>/job/test/build?token=wefiytgwiefiweihfqweiodf

curl -u auto:<jenkins_user_password> http://<jenkins_server>/job/test/build?token=wefiytgwiefiweihfqweiodf

引用自:https://serverfault.com/questions/888176