如何在远程调用Hudson / Jenkins作业时启用身份验证

问题描述 投票:0回答:1

如何在远程调用Hudson / Jenkins作业时启用身份验证?

我们目前正在使用Hudson v3.0.1-b2版本。

我们使用Hudson rest api远程调用Hudson作业来启动构建。

我们希望在现在远程调用Hudson作业时启用身份验证。在线阅读有一种方法可以为用户生成API令牌,并在远程调用Hudson作业时使用它。

在我们使用的Hudson版本中,我们没有看到在用户配置部分下为用户显示API令牌用户。请建议。

enter image description here

jenkins jenkins-plugins hudson hudson-plugins
1个回答
0
投票

使用参数启动构建:

参数区分大小写!

通过URL传递参数时,外壳很重要!例如,如果作业将参数定义为Message,则token = TOKEN&MESSAGE = yo将不起作用。

只需通过POST到http://server/job/myjob/buildWithParameters?PARAMETER=Value即可启动构建。所有参数都需要正确进行URL转义。要与wget一起使用,请在命令行中引用URL。

可以添加参数delay = 0sec以立即启动构建。要使用运行参数,该值应采用jobname #buildNumber格式(例如,对于foo-job#99,“&MyRunParam = foo-job%2399”)

如果您使用授权令牌来触发构建(作业 - >配置 - >'构建触发器' - >'触发器远程构建(例如,从脚本)),您可以访问:http://server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value(注意&将需要如果使用Unix shell脚本,则转义,或引用整个URL。)


如果您使用基于Matrix的安全性(在“配置全局安全性”>>“授权”下),则“远程触发器构建”选项将消失,因为假定您将使用Jenkins用户帐户对请求进行身份验证。

为此,您可以使用用户名/密码(甚至更好的用户名/ API令牌)发出HTTP请求:

卷曲-X POST“https://username:api-token@JENKINS_URL/job/Example/build

获取API用户和令牌:

http://192.168.99.20:8080地址登录jenkins。点击页面右侧的用户名(我的是管理员)。选择“配置”选项,它将带您进入http://192.168.99.20:8080/user/admin/configure页面。在“API令牌”部分中,单击“显示API令牌”按钮。请注意稍后在curl命令中使用的“用户ID”和“API令牌”。例如管理员:85703fb68927f04968630e192e4927cb


如果以上都不是您问题的解决方案,您可以尝试以下插件:https://wiki.jenkins.io/display/JENKINS/Build+Token+Root+Plugin

例子:

使用令牌TacoTuesday触发RevolutionTest作业:

buildByToken/build?job=RevolutionTest&token=TacoTuesday

使用令牌TacoTuesday触发RevolutionTest作业,并使用值Mexican提供参数Type:

buildByToken/buildWithParameters?job=RevolutionTest&token=TacoTuesday&Type=Mexican

© www.soinside.com 2019 - 2024. All rights reserved.