Jenkins远程触发不起作用

Tec*_*ext 24 curl jenkins

我尝试使用以下命令触发构建时收到以下错误:

curl http:// jenkins_server:port/jenkins/job/job_name/build?token = token_name

输出:

需要验证

< - 您的身份验证为:您所在的匿名
群组:

您需要拥有(但没有)的权限:hudson.model.Hudson.Read
...暗示:hudson.security.Permission.GenericRead
...暗示为:hudson.model.Hudson.Administer
- >

我有管理员权限,并且还启用了"身份验证令牌".我还有Job的Build,Discover和Read权限.我正在使用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页面)

有什么建议.

小智 25

我之前安装了Build Token Root Plugin来解决这个问题

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

如果您看到Succeed,则表示触发远程Jenkins成功.

请注意,您不必在Job上设置构建,发现和读取权限

有关详细信息,请参阅 https://cloudbees.zendesk.com/hc/en-us/articles/204338790-Why-are-builds-not-being-triggered-with-Build-Token-Root-Plugin-


M. *_*cal 12

我认为没有必要设置任何类型的插件来使其工作,只需执行此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
Run Code Online (Sandbox Code Playgroud)
  • 要查看USER_ID_TOKEN,请转到jenkins右上角的用户名>转到配置>单击API令牌,它将显示.

  • 您必须在JOB_OF_JENKINS_RECEIVER上配置令牌

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


sas*_*alm 6

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

curl -u admin:<mypassword> http://localhost:8080/job/Test/build?token=<mytoken>
Run Code Online (Sandbox Code Playgroud)

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