jenkins-6-使用http请求远程构建Job

前言:平时都是登录jenkins进行构建Job,但我不不想或其它集成的时候用到,所以弄了个远程触发Job构建,是挺不错的。

当前也有Python 等语言的sdk,亦可直接使用。

场景:

  1. 想开放Job让别人构建,但又不想给别人登录jenkins,触发同步数据或其它Job。
  2. 结合python自动化写点代码丰富一下,实现构建自由(反正实现不了财务自由)。
  3. 等等

一、jenkins 全局安全设置

1.Configure Global Security-CSRF Protection 勾选兼容 (全局安全设置)

解释:一些 HTTP 代理过滤掉默认 crumb issuer 用于计算 nonce 值的信息。

如果 HTTP 代理位于您的浏览器客户端和 Jenkins 服务器之间,并且您在向 Jenkins 提交表单时收到 403 响应,则选中此选项可能会有所帮助。使用此选项使 nonce 值更容易伪造。

 出现 403 的时候不妨看看是不是没勾选?

2.API token生成 

说明:用来远程调用的认证合法,否则需要密码。推荐使用api token来远程调用构建。

API 令牌提供了一种进行经过身份验证的 CLI 或 REST API 调用的方法。有关更多详细信息,请参阅我们的 wiki
与每个令牌关联的用户名是您的 Jenkins 用户名。

保持 API 令牌安全的一些良好做法是:

  • 为每个应用程序使用不同的令牌,以便在应用程序受到威胁时,您可以单独撤销其令牌。
  • 每 6 个月重新生成一次令牌(取决于您的上下文)。我们显示一个关于代币年龄的指标。
  • 像保护您的密码一样保护它,因为它允许其他人像您一样访问 Jenkins。
每次 Jenkins 重新启动时,未使用的遗留令牌的创建日期都会重置,这意味着日期可能不准确。

二、远程构建

1.复制job的url,如下图编辑job中能看到示例,但不用保存。

JENKINS_URL/job/TestJob/build?token=TOKEN_NAME or /buildWithParameters?token=TOKEN_NAME
Optionally append &cause=Cause+Text to provide text that will be included in the recorded build cause.

 2.postman选择 Auth

输入账号和密码即可,请求响应码为201正常。

3.也可以使用curl请求,-u 账号:apiToken

curl -I -X POST \
  http://域名:端口/job/TestJob/build -u test:11b112d9cf514da3ce8f4d38928d79b592

test:为用户名   

11b112d9cf514da3ce8f4d38928d79b592:为apiToken

便可以看到jenkins在构建

posted @ 2022-03-08 22:25  广深-小龙  阅读(609)  评论(0编辑  收藏  举报