次のコマンドを使用してビルドをトリガーしようとすると、次のエラーが表示されます。
curl http:// jenkins_server:port/jenkins/job/job_name/build?token = token_name
出力:
認証が必要です
<-次のように認証されます:anonymous
あなたがいるグループ:必要な許可(ただし、許可されていない):hudson.model.Hudson.Read
...によって暗示されています:hudson.security.Permission.GenericRead
...によって暗示されています:hudson.model.Hudson.Administer
->
私には管理者権限があり、「認証トークン」も有効にしています。また、ジョブのビルド、検出、読み取りの権限も持っています。 Jenkins 1.614を使用しています。
オンラインでいくつかの投稿をチェックしましたが、自分に合ったものを見つけることができませんでした。
次のようないくつかのオプションを試しました
1)curl -X POST http:// jenkins_server:port/jenkins/job/job_name/build?token = token_name
2)curl -u user:API(長いHTMLページを印刷します)
助言がありますか。
この問題を解決するために、ビルドトークンルートプラグインをインストールします
https://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin
次に、同じように、認証トークンをセットアップします
最後に、curlを使用してリモートビルドをトリガーします(エスケープ文字「\」に注意してください)
curl http://JENKINS_URL/buildByToken/build?job=JOB_NAME\&token=TOKEN_NAME
または、ブラウザにURLを貼り付けます(エスケープ文字「\」は不要です)
http://JENKINS_URL/buildByToken/build?job=JOB_NAME&token=TOKEN_NAME
「成功」と表示された場合、リモートジェンキンスが正常にトリガーされていることを意味します。
ジョブのビルド、検出、読み取りの権限を設定する必要がないことに注意してください
動作させるためにプラグインをセットアップする必要はないと思います。単純に次のBATCH CMDを実行してください。
curl -X POST http://USER_ID_JENKINS_RECEIVER:TOKEN_OF_USER_ID_JENKINS_RECEIVER@URL_JENKINS_RECEIVER:PORT/job/NAME_OF_JOB/buildWithParameters?token=TOKEN_JOB_JENKINS_RECEIVER
SER_ID_TOKENを表示するには、jenkinsの右上にあるユーザー名に移動し、[構成]に移動して、[APIトークン]をクリックすると表示されます。
JOB_OF_JENKINS_RECEIVERでトークンを設定する必要があります
Jenkinsで匿名ユーザーへのアクセス許可がなくても完全に機能することを言わなければなりません。
テストJenkinsサーバーをセットアップした後、同じ問題が発生しました。解決策は、Jenkinsの管理者パスワードを使用して認証することでした:
curl -u admin:<mypassword> http://localhost:8080/job/Test/build?token=<mytoken>
Jenkinsへのログインに使用するものと同じユーザー名とパスワードを使用します。追加のプラグインをインストールする必要はありませんでした。
Jenkins Python API 。を試してみることをお勧めします。ジョブをトリガーするのが非常に簡単なbuild_job
アクションを提供します。
build_job(name, parameters=None, token=None)
Trigger build job.
Parameters:
name – name of job
parameters – parameters for job, or None, dict
token – Jenkins API token
私の場合、URLとトークンは正しいものでしたが、URL /ビルドをトリガーするAPIユーザーに必要な権限の1つを忘れていました。
許可には、最低限リストを含める必要があります。
私も同じ問題に直面し、解決しました。
2つのJenkins AとBがあるとします。JenkinsBにあるビルドジョブを実行する場合、Jenkins BのAPIトークンを与える必要があります。JenkinsAのAPIトークンを提供する場合、認証が表示されます発行のみ。
これは私が犯した間違いであり、必要なJenkinsに従ってAPIトークンを適切に変更すると解決しました。
Parameterized Buildプラグインをインストールする
https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build
承認トークンを使用してビルドをトリガーする場合([ジョブ]-> [構成]-> [トリガーのビルド]-> [リモートからのトリガービルド(スクリプトなど))]にアクセスできます。
curl -X POST http://server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value