
以下の方法を使用して、curl コマンド経由で Jenkins ジョブ (パラメーター化されたジョブではない) を実行 (トリガー) しようとしましたが、これらの結果が表示されます。私の Jenkins バージョンは Jenkins 2.73.3 です。
curl -X POST -u jenkins_user_name:jenkins_user_passwd http://jenkins_server/job/job_name/build
curl -X POST http://jenkins_server/job/job_name/build?token=wefiytgwiefiweihfqweiodf
同じエラーが出ます。Forbidden 403と表示されます
その後、jenkinsユーザーのAPIトークンを作成して試してみました。
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 ユーザーを適切に認証できなかったと思います。
答え1
答えが見つかりました。実際、それらの手順は正しいです。正しい手順について言及したいと思います。
Jenkins でユーザーを作成すると、そのユーザーのパスワードまたは API トークンを使用して Jenkins ジョブをトリガーできます。ただし、そのユーザーの API トークンを作成する方がはるかに優れています。ただし、どちらの方法でも問題なく動作します。
しかし、Jenkinsジョブの認証トークンを作成する必要があります
パスワードの使用
curl -I -u auto:<userpasswd> http://<jenkins_server>/job/test/build?token=wefiytgwiefiweihfqweiodf
APIトークンの使用
curl -I -u auto:<user_api_token> http://<jenkins_Server>/job/test/build?token=wefiytgwiefiweihfqweiodf
これらは結果です。jenkins ユーザー パスワードそしてJenkins ユーザー API トークン。
実際には、「-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
答え2
2023年に向けて早送り
スクリプト/bash からリモートでジョブを実行するには、2 つのトークンを渡す必要があります。
必要なもの:
- apiTokenでIDを認証します。この値はJENKINS_URL/me/configureから作成されます。ここドキュメント用
- 「リモートでビルドをトリガーする」を有効にするときに作成する別のジョブ認証トークン。
以下は 2 つのパラメータを使用してジョブを実行するサンプルです。調整することでジョブを完了できます。
PARAM1_VALUE=<param1_value>
PARAM2_VALUE=<param2_vale>
USERNAME=dummy_user_name
JENKINS_URL="http://10.xxx.x.xxx:8080"
JOB_TOKEN="<value>" # you create this token when you enable Job>Configure>Build Triggers>Trigger builds remotely
LOGIN_API_TOKEN="<value>" #get this value from JENKINS_URL/me/configure
curl -L --user $USERNAME:$LOGIN_API_TOKEN "$JENKINS_URL/job/JobName/buildWithParameters?token=$JOB_TOKEN¶m1_name=$PARAM1_VALUE¶m2_name=$PARAM2_VALUE"
答え3
これらの権限を構成するには:
- クリック
Manage Jenkins
- クリック
Configure Global Security
- 取り除く
Prevent Cross Site Request Forgery exploits
- クリック
save