Curl 詹金斯远程触发器不工作

Curl 詹金斯远程触发器不工作,curl,jenkins,Curl,Jenkins,当我尝试使用以下命令触发生成时,出现以下错误: 卷曲 输出: 需要身份验证 安装参数化构建插件 如果您正在使用授权令牌触发生成(作业->配置->“生成触发器”->“远程触发生成(例如,从脚本)”),您可以访问: curl-X POSThttp://server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value我以前安装Build Token根插件来解决这个问题 然后,同样地,设置身份验证令牌 最后,使用curl触发远程构建(注

当我尝试使用以下命令触发生成时,出现以下错误:

卷曲

输出:

需要身份验证


安装参数化构建插件

如果您正在使用授权令牌触发生成(作业->配置->“生成触发器”->“远程触发生成(例如,从脚本)”),您可以访问:


curl-X POSThttp://server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value

我以前安装Build Token根插件来解决这个问题

然后,同样地,设置身份验证令牌

最后,使用curl触发远程构建(注意转义字符“\”)

curlhttp://JENKINS_URL/buildByToken/build?job=JOB_NAME\&令牌=令牌\名称

或将URL粘贴到浏览器(无需转义字符“\”)

http://JENKINS_URL/buildByToken/build?job=JOB_NAME&token=TOKEN_NAME

如果你看到成功,这意味着触发远程詹金斯成功

请注意,您不必在作业上设置生成、发现和读取权限

有关更多信息,您可以参考 我建议你试试。它提供了一个非常容易触发作业的
build\u作业
操作

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

在设置测试Jenkins服务器后,我遇到了同样的问题。解决方案是使用我的Jenkins管理员密码进行身份验证:

curl -u admin:<mypassword> http://localhost:8080/job/Test/build?token=<mytoken>
curl-u管理员:http://localhost:8080/job/Test/build?token=

使用与登录Jenkins相同的用户名和密码。无需安装其他插件。

我认为无需设置任何类型的插件即可使其正常工作,只需执行以下操作:

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
  • 要查看您的用户ID令牌,请转到jenkins右上角的用户名>转到配置>单击API令牌,它将显示出来

  • 您必须在JENKINS接收器的作业上配置令牌


我不得不说,它在Jenkins上运行得非常完美,没有对匿名用户的任何权限。

在1.625.3上,让匿名阅读访问几乎所有对我有用的内容


更新:我想我应该澄清一下,因为这被否决了。我能够重现那个错误消息,当我打开匿名用户对所有访问类型的读取访问时,问题就解决了。只是说…

在我的例子中,我的URL和令牌是正确的,但是忘记了触发URL/build的API用户所需的一个权限

权限必须至少包括以下列表:

  • 全面阅读
  • 工作建设
  • 作业阅读
  • 工作空间

    • 我也面临同样的问题并解决了它

      考虑一下,您有2个Jenkins A和B。如果您想执行Jenkins B中的构建作业,那么您必须提供Jenkins B的API令牌。如果您提供Jenkins A的API令牌,它将仅显示身份验证问题

      这是我所犯的错误,一旦我根据要求的Jenkins正确更改了API令牌,它就得到了解决。

      这对我来说很有用:

      tokenuser=您需要使用该用户登录,并检查令牌配置->管理员用户

      用户=用户名

      curl -XPOST --silent --show-error --user user:tokenuser "http://ipserver/jenkins/buildByToken/build?job=JOBNAME&token=7RJWiIwD5cW3S6QjwF7a"
      
      例如:

      curl -XPOST --silent --show-error --user desarrollador:b9611288e4159ea9fb7857faeadd06fe "http://ipserver/jenkins/buildByToken/build?job=DeployGF&token=7RJWiIwD5cW3S6QjwF7a"
      

      插件已经安装,正如我在帖子中提到的,我尝试了建议的语法,但不起作用。我也犯了同样的错误。既然JenTing的建议对我有效,现在,我同意,但谢谢你的建议!此API可能会在某个时候派上用场。:)我真的很沮丧尝试不同的事情。我肯定我在其他一些链接上也看到了这个令牌根插件的建议,我确实注意到这个插件已经安装在我的系统上,但看起来我当时忽略了语法(在阅读你的答案时,不知何故,我注意到了正确的语法。:P非常感谢,伙计!:)我松了一口气!:)感谢您指出需要转义字符。这对我来说是缺失的。我在尝试集成gitlab和jenkins时遇到了同样的问题。我正在使用gitlab inbuild特性测试推送触发器。这让我想起了上面的错误。在我的工作中可以做些什么来解决这个问题case@TaraPrasadGurung我用GitLab用webhook触发Jenkins,一切都很顺利。你能详细描述一下错误抛出的原因吗?我在尝试集成gitlab和jenkins时遇到了同样的问题。我正在使用gitlab inbuild特性测试推送触发器。这让我想起了上面的错误。在我的案例中,当我提供了一个CSRF面包屑头时,可以做些什么来解决它,在这里详细介绍;