
Python调用Google Bard API 完整指南
Jenkins提供了功能强大的远程访问API,使得用户可以通过REST风格的接口对其进行远程控制。无论是触发任务,创建任务,还是管理视图,都可以通过简单的HTTP请求来完成。Jenkins的API支持多种语言的包装器,包括Python、Java和Ruby,使开发者可以根据自己的编程环境选择合适的工具进行集成。本文详细介绍了如何通过REST API配置和管理Jenkins实例,包括如何解决跨域访问问题,如何使用Python、Java和Ruby的API包装器等内容。
Jenkins 为其功能提供了远程访问 API,支持多种语言接口,如 REST API、Python、Java 和 Ruby 包装接口。这使得开发者可以在不同的编程环境中远程控制 Jenkins。
当直接调用 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 提供了多种 SDK 来支持 API 调用,帮助开发者在不同语言环境下更方便地操作 Jenkins。
Python 的 JenkinsAPI、Python-Jenkins、api4jenkins 和 aiojenkins 是针对 Jenkins REST API 的 Python 包装器,提供面向对象的接口,使得通过 Python 控制 Jenkins 更加简便。
jenkins-rest
是一个 Java 项目,提供对 Jenkins REST API 的访问,支持通过编程方式进行作业提交、监控等操作。
Jenkins API 客户端是 Ruby 的包装器,使用 JSON API 来控制 Jenkins,支持作业和视图的创建和管理。
通过本文的介绍,您可以更好地利用 Jenkins 的远程访问 API 来简化持续集成的管理和操作过程。
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 来解决。HTTP POST
请求来触发 Jenkins 任务的执行。对于无参任务,可以直接使用 build
接口;对于带参数的任务,需要使用 buildWithParameters
接口,并在请求中附加参数数据。POST
请求将 config.xml
文件发送到 Jenkins 服务器来创建新任务。请求需要包括任务名称和有效的 XML 配置数据。