如何通过 curl 命令远程触发 jenkins 作业

Pra*_*tta 14 curl jenkins

我尝试使用以下方法通过 curl 命令执行(触发)jenkins 作业(不是参数化作业),但它显示了这些结果。我的詹金斯版本是詹金斯 2.73.3

curl -X POST -u jenkins_user_name:jenkins_user_passwd http://jenkins_server/job/job_name/build
Run Code Online (Sandbox Code Playgroud)

但它说禁止403 在此处输入图片说明

因此,我为作业创建了一个身份验证令牌 在此处输入图片说明

curl -X POST http://jenkins_server/job/job_name/build?token=wefiytgwiefiweihfqweiodf
Run Code Online (Sandbox Code Playgroud)

它也给出了同样的错误。它说禁止 403

之后,我为 jenkins 用户创建了一个 API 令牌并尝试过。 在此处输入图片说明

curl -X POST -u auto:testingdae6dc22a73048e6d596e7b0 http://jenkins_server/job/job_name/build?token=wefiytgwiefiweihfqweiodf
Run Code Online (Sandbox Code Playgroud)

但它也一样,它说禁止 403

其实我也遵循了这个答案。https://www.nczonline.net/blog/2015/10/triggering-jenkins-builds-by-url/ 这对我也不起作用。

每次,都是403禁止的。我想我无法正确验证 jenkins 用户。

Pra*_*tta 14

找到了答案。其实这些步骤是对的。我想提一下正确的步骤。

在 Jenkins 中创建一个用户,您可以使用该用户密码或 API 令牌来触发 Jenkins 作业。但是为该用户创建 API 令牌要好得多。但两种方式都可以正常工作。

但是您必须为 Jenkins Job 创建一个身份验证令牌

在此处输入图片说明

使用密码

curl -I -u auto:<userpasswd> http://<jenkins_server>/job/test/build?token=wefiytgwiefiweihfqweiodf
Run Code Online (Sandbox Code Playgroud)

使用 API 令牌

为该 Jenkins 用户创建一个 API 令牌 在此处输入图片说明

curl -I -u auto:<user_api_token> http://<jenkins_Server>/job/test/build?token=wefiytgwiefiweihfqweiodf
Run Code Online (Sandbox Code Playgroud)

这些是使用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
Run Code Online (Sandbox Code Playgroud)