用RESTAPI远程访问你的Jenkins
Jenkins提供了功能强大的远程访问API,使得用户可以通过REST风格的接口对其进行远程控制。无论是触发任务,创建任务,还是管理视图,都可以通过简单的HTTP请求来完成。Jenkins的API支持多种语言的包装器,包括Python、Java和Ruby,使开发者可以根据自己的编程环境选择合适的工具进行集成。本文详细介绍了如何通过REST API配置和管理Jenkins实例,包括如何解决跨域访问问题,如何使用Python、Java和Ruby的API包装器等内容。
Jenkins 的远程访问 API
Jenkins 为其功能提供了远程访问 API,支持多种语言接口,如 REST API、Python、Java 和 Ruby 包装接口。这使得开发者可以在不同的编程环境中远程控制 Jenkins。

CSRF 跨域保护解决方案
当直接调用 Jenkins 接口时,可能会遇到 HTTP ERROR 403 No valid crumb was included in the request 的错误。这是因为默认情况下,Jenkins 的接口不允许跨域请求。我们可以通过修改 Jenkins 的配置来解决此问题。
配置步骤
首先,进入 Jenkins 容器并修改配置文件 jenkins.sh,添加 -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true 参数。
# 进入 Jenkins 容器
$ docker exec -u root -it jenkins /bin/bash
# 修改配置文件
$ vim /usr/local/bin/jenkins.sh
然后重启 Jenkins 容器:
# 重启 Jenkins
$ docker restart jenkins
配置完成后,打开 Jenkins 的“系统管理-全局安全配置”,确认设置已生效。

常用接口介绍
Jenkins 提供了一系列的 API 接口,支持通过 HTTP 请求来进行任务的触发、创建和管理。
触发任务执行
可以通过 HTTP POST 请求触发 Jenkins 任务的执行。例如,无参任务 parallelsAlwaysFailFast 可以这样触发:
curl -X POST 'http://192.168.56.114:8080/job/parallelsAlwaysFailFast/build' --user admin:admin123
对于带参数的任务,如 pipeline_variables,需调用 buildWithParameters 接口:
curl -X POST 'http://192.168.56.114:8080/job/pipeline_variables/buildWithParameters' --user admin:admin123 --data ENV=prod
创建任务
要在 Jenkins 中创建任务,可以使用 POST 请求发送 config.xml 文件到 Jenkins 服务器。
curl -L 'http://192.168.56.114:8080/createItem?name=api_job_test'
-H 'Content-Type: application/xml'
--user admin:admin123
--data ''
Jenkins API 接口支持的 SDK
Jenkins 提供了多种 SDK 来支持 API 调用,帮助开发者在不同语言环境下更方便地操作 Jenkins。
Python API 包装器
Python 的 JenkinsAPI、Python-Jenkins、api4jenkins 和 aiojenkins 是针对 Jenkins REST API 的 Python 包装器,提供面向对象的接口,使得通过 Python 控制 Jenkins 更加简便。
Java API 包装器
jenkins-rest 是一个 Java 项目,提供对 Jenkins REST API 的访问,支持通过编程方式进行作业提交、监控等操作。
Ruby API 包装器
Jenkins API 客户端是 Ruby 的包装器,使用 JSON API 来控制 Jenkins,支持作业和视图的创建和管理。
参考
通过本文的介绍,您可以更好地利用 Jenkins 的远程访问 API 来简化持续集成的管理和操作过程。
FAQ
问:如何通过 REST API 远程访问 Jenkins?
- 答:Jenkins 提供了多种语言接口的远程访问 API,包括 REST API、Python、Java 和 Ruby 包装接口。这些接口允许开发者在不同的编程环境中远程控制 Jenkins,从而简化持续集成的管理和操作过程。
问:如何解决 Jenkins API 的 CSRF 跨域请求问题?
- 答:当直接调用 Jenkins 接口时,可能会遇到
HTTP ERROR 403 No valid crumb was included in the request的错误。这是因为 Jenkins 默认启用了 CSRF 保护。可以通过进入 Jenkins 容器,修改jenkins.sh配置文件,添加-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true参数,然后重启 Jenkins 来解决。
问:如何使用 Jenkins API 触发任务执行?
- 答:可以通过
HTTP POST请求来触发 Jenkins 任务的执行。对于无参任务,可以直接使用build接口;对于带参数的任务,需要使用buildWithParameters接口,并在请求中附加参数数据。
问:如何通过 Jenkins API 创建新任务?
- 答:可以使用
POST请求将config.xml文件发送到 Jenkins 服务器来创建新任务。请求需要包括任务名称和有效的 XML 配置数据。
问:Jenkins API 可以通过哪些 SDK 进行调用?
- 答:Jenkins 提供了多种 SDK 来支持 API 调用,包括 Python 的 JenkinsAPI、Python-Jenkins、api4jenkins 和 aiojenkins,Java 的 jenkins-rest,以及 Ruby 的 Jenkins API 客户端。这些 SDK 提供了面向对象的接口,帮助开发者在各自语言环境中操作 Jenkins 更加便捷。
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- 9个最佳Text2Sql开源项目:自然语言到SQL的高效转换工具
- 深入解析API网关策略:认证、授权、安全、流量处理与可观测性
- GraphQL API手册:如何构建、测试、使用和记录
- 自助式入职培训服务API:如何让企业管理更上一层楼?
- Python如何调用Jenkins API自动化发布
- 模型压缩四剑客:量化、剪枝、蒸馏、二值化
- 火山引擎如何接入API:从入门到实践的技术指南
- 为什么每个使用 API 的大型企业都需要一个 API 市场来增强其合作伙伴生态系统
- 构建更优质的API:2025年顶级API开发工具推荐 – Strapi
- 外部函数与内存API – Java 22 – 未记录
- FAPI 2.0 深度解析:下一代金融级 API 安全标准与实践指南
- .NET Core 下的 API 网关