jenkins-5-使用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.

build:无参数化构建

buildWithParameters:有参数化构建

 2.postman选择 Auth

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

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

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

4.参数化构建:buildWithParameters

curl -I -X POST \
  http://域名:端口/job/TestJob/buildWithParameters?key1=value1&key2=value2-u test:11b112d9cf514da3ce8f4d38928d79b592

test:为用户名   

11b112d9cf514da3ce8f4d38928d79b592:为apiToken

便可以看到jenkins在构建

欢迎来大家QQ交流群一起学习:482713805,博主微信+:gogsxl

### Jenkins CLI 工具使用指南 #### 下载 `jenkins-cli.jar` 为了能够利用命令行接口 (CLI) 来管理 Jenkins 实例,首先需要获取 `jenkins-cli.jar` 文件。可以通过访问 Jenkins Web UI 的特定路径来下载该文件: ```bash wget http://<JENKINS_SERVER_IP>:8080/jenkins/jnlpJars/jenkins-cli.jar ``` 这里的 `<JENKINS_SERVER_IP>` 需替换为实际运行 Jenkins 服务的服务器 IP 地址[^2]。 #### 使用基本命令 一旦拥有了 `jenkins-cli.jar` 文件,便可以执行多种操作,比如查看帮助信息了解可用命令列表: ```bash java -jar jenkins-cli.jar help ``` 这会显示所有支持的操作及其描述,有助于理解如何进一步交互与控制 Jenkins 环境[^1]。 #### 创建新作业、节点或视图 对于希望自动化配置过程的情况,可以直接通过 CLI 创建新的 Jenkins 资源。例如,创建一个新的自由风格项目(Free-style project),则需准备一个 XML 描述文件并执行如下指令: ```bash java -jar jenkins-cli.jar create-job new_job_name < job_config.xml ``` 同样地,也可以用于建立构建节点或是自定义视图结构。只需调整参数分别为 `create-node` 或者 `create-view` 即可满足不同需求[^4]。 #### 解决常见错误提示 当尝试远程调用 Jenkins API 并遇到诸如 “ERROR: No such job ‘test’” 或者权限不足的问题时,可能是因为认证设置不正确或者是目标资源不存在所引起的。确保提供了有效的凭证以及确认请求的目标确实存在于 Jenkins 中是非常重要的一步[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车尾龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值