web-dev-qa-db-ja.com

curlコマンドを使用してリモートでjenkinsジョブをトリガーする方法

以下のメソッドを使用してcurlコマンドでjenkinsジョブ(パラメーター化されたジョブではない)を実行(トリガー)しようとしましたが、これらの結果が表示されています。私のジェンキンスバージョンはジェンキンス2.73.3です

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

しかし、Forbidden 403 enter image description here

したがって、私はジョブの認証トークンを作成しました enter image description here

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

また、同じエラーが発生します。禁断の403

その後、jenkins UserのAPIトークンを作成して試してみました。 enter image description here

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

しかし、それも同じです、それは禁止された403を言います

実際、私もこの答えに従っています。 https://www.nczonline.net/blog/2015/10/triggering-jenkins-builds-by-url/ これも私には機能しません。

毎回、403禁止です。 jenkinsユーザーを適切に認証できなかったと思います。

7

答えが見つかりました。実際、これらのステップは正しいです。正しい手順について述べたいと思います。

Jenkinsでユーザーを作成します。そのユーザーパスワードまたはAPIトークンを使用して、Jenkinsジョブをトリガーできます。ただし、そのユーザーのAPIトークンを作成する方がはるかに優れています。しかし、どちらの方法も問題なく機能します。

ただし、Jenkins Jobの認証トークンを作成する必要があります

enter image description here

パスワードの使用

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

APIトークンの使用

そのJenkinsユーザーのAPIトークンを作成します enter image description here

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

これらは、jenkinsユーザーパスワードおよびjenkinsユーザーAPIトークンを使用した結果です。

enter image description here

実際には、「-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
8

これらの権限を構成するには:

  • Manage Jenkinsをクリックします
  • Configure Global Securityをクリックします
  • 削除Prevent Cross Site Request Forgery exploits
  • saveをクリックします
2
vincent wu