首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过python requests.POST()触发jenkins作业时没有有效的crumb错误

问题描述: 通过Python的requests库中的POST方法触发Jenkins作业时出现"没有有效的crumb"错误。

解决方案: 这个错误通常是由于Jenkins的安全设置引起的。Jenkins引入了一个CRUMB(Cross-Site Request Forgery protection)机制,用于防止跨站点请求伪造攻击。在进行POST请求时,需要在请求头中包含有效的crumb信息,以通过安全验证。

下面是解决这个问题的步骤:

步骤一:获取Jenkins的crumb信息 为了通过Python的requests库发送POST请求,我们需要先获取有效的crumb信息。可以通过以下步骤获取crumb信息:

  1. 打开Jenkins的管理界面。
  2. 点击左侧导航栏中的"系统管理"。
  3. 在系统管理页面上,选择"系统设置"。
  4. 在系统设置页面上,找到"CSRF Protection"部分。
  5. 在"CSRF Protection"部分,勾选"Enable proxy compatibility"选项。
  6. 保存设置。

步骤二:发送POST请求时添加crumb信息 使用Python的requests库发送POST请求时,需要在请求头中添加crumb信息。以下是一个示例代码:

代码语言:txt
复制
import requests

url = "http://jenkins.example.com/job/example_job/build"
crumb_url = "http://jenkins.example.com/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,\":\",//crumb)"

# 获取crumb信息
response = requests.get(crumb_url, auth=("username", "password"))
crumb = response.content.decode().split(":")

# 发送POST请求,并添加crumb信息到请求头
headers = {crumb[0]: crumb[1]}
response = requests.post(url, headers=headers, auth=("username", "password"))

print(response.text)

请注意,上述示例代码中的"jenkins.example.com"需要替换为你的Jenkins服务器地址,"example_job"需要替换为你的具体作业名称,"username"和"password"需要替换为你的Jenkins登录凭据。

推荐腾讯云相关产品: 腾讯云提供了丰富的云计算产品,可以帮助用户实现高效、安全、可靠的云计算解决方案。以下是一些相关产品的介绍链接:

  1. 腾讯云服务器(CVM):提供弹性扩展的虚拟服务器实例,支持各类应用和场景。产品介绍链接
  2. 腾讯云对象存储(COS):提供高扩展性、低成本的对象存储服务,适用于存储和处理大规模非结构化数据。产品介绍链接
  3. 腾讯云云函数(SCF):支持事件驱动的无服务器计算服务,可实现按需运行代码的功能。产品介绍链接

以上是对于通过Python的requests库中的POST方法触发Jenkins作业时出现"没有有效的crumb"错误的完善且全面的解答。希望能对您有帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Jenkins API+Pipeline深度实践之input自动化

本文分享小Tips是在我前面的文章DevOps建设之基于钉钉OA审批流自动化上线中提到,当通过API自动触发Jenkins Pipeline流水线执行时,如果原来流水线中定义了在构建正式开始后还需要接收用户...作为参考起到了一定帮助 为了完成整个自动化input过程,具体演进流程如下 3.1 通过Crumb安全操作Jenkins Crumb指的是JenkinsCSRF token,Jenkins服务器为了阻止不安全跨域请求...当Jenkins开启CSRF保护后,可以通过固定接口获得一个安全Crumb以便于通过API操作Jenkins,以curl请求为例,请求可选方式一般是两种,如下 方法一: curl -u <username...}, { "name":"param2", "value":"valueOfParam2" } ] } 如果没有发送有效...200 如果不是,那么表示流水线还没执行到这里;如果是,就可以完美的向这个地址发送自动执行请求了 以python语言调用Jenkins api为例,用到了python-jenkins这个包,在触发构建使用

2.1K20

Kubernetes 动态创建 Jenkins Agent 压力测试

100 并发:正常执行,创建 Pod 速度很快,3~4 秒一个 200 并发:触发正常,执行时部分流水线报错。这里错误,主要是拉取 git 服务器代码受到了限制。...错误提示如下: 400 并发:有极少量调度到非 CI 节点,同样有大量拉取 git 服务器代码提示错误。 800 并发:460、461、551、552、759-776 触发失败。...通过接口不停地发送触发请求,Pod 数量最高峰在 517(=520-3),Pod 中 jnlp 与 Jenkins 连接出现问题。同时,也伴随着大量触发和构建错误。...配置建议: 限制 Jenkins 同时连接 Pod 数量,配置足够情况下,200 并发是没有问题,400 并发是可以争取。...Jenkins 需要与每一个 Pod 中 jnlp 通信,控制并发数量能有效减轻 Jenkins 负担,避免触发失败发生。 使用专用 CI 节点。

1.7K20
  • CICD:基于K8s弹性资源池配置【第二步】编写Pipeline脚本实现自动化

    上一篇文章 CI/CD:基于K8s弹性资源池配置【第一步】自动化创建JenkinsAgent节点 我们通过运行Jenkins Groovy脚本来增加了一个Jenkins Agent节点。...那么现在思考一个问题,弹性构建实现方式有多种, 如果我们实现方式是: 运行Pipeline作业启动一个Jenkins Agent 节点,然后作业结束后回收此节点。 该如何实现?...} 上面的代码没有做太多优化,存在明文密码问题,后面可以试着放到凭据中完善一下。...这里注意: 需要通过Crumb API获取value,并添加到HTTP request中header中。 使用Jenkis用户名和API token进行认证。...Agent并没有连接到Master节点,所以无法运行Pipeline) 能够看到效果是Agent自动添加和销毁。

    90820

    实现自动化构建与集成:Jenkins与SVN整合指南

    前言(非必须):配置JenkinsCSRF 在使用Jenkins时候总是保存很慢,前端报错,错误关键词:Found invalid crumb 。...第一步:Strict Crumb Issuer插件安装 进入Jenkins插件管理,Available选项,搜索Strict Crumb插件安装Strict Crumb Issuer插件,然后进入jenkins...这样我们再通过Jenkins进行打包发布访问时候就不需要加上项目名称了。...token=APPLE 7、[SVN钩子程序] 表示在提交代码后,SVN会去做什么事情,这里演示功能是: Begin:禁用 Jenkins CSRF 必须要禁用这个,不然无法通过curl命令发送触发器会出现...admin:123456,是Jenkins登录用户名和密码 curl -X post -v -u admin:123456 http: //110.43.204.225/jenkins/job/apple

    96840

    python接口自动化(十五)--参数关联接口(详解)

    简介   我们用自动化新建任务之后,要想接着对这个新建任务操作,那就需要用参数关联了,新建任务之后会有一个任务Jenkins-Crumb,获取到这个Jenkins-Crumb,就可以通过传这个任务Jenkins-Crumb...2、用fiddler抓包,抓到删除新建任务请求,从抓包结果可以看出,传data参数是Jenkins-Crumb ? 3.这个Jenkins-Crumb哪里来呢?可以看上个请求body ?...4、也就是说在新建任务时候,系统随机生成一个Jenkins-Crumb参数值,body里面带有Jenkins-Crumb这个参数。...', r.content.decode('utf-8')) # 用python3这里r.content需要解码 21 print (t[0]) 22 print (t[1]) 23 #新建任务...(2)查看jenkins主界面,没有新建任务 ? (3)点击右上方昆虫图标 ? (4)进入debug模式,代码运行到断点处停止运行 ?

    1.4K40

    jira webhook 事件触发并程序代码调用jenkins接口触发构建操作

    要解决问题 开发管理工具触发站点构建事件,事件处理中需要调用Jenkins接口开始构建动作。...我应用场景: 使用jira作为管理工具,在jira中创建自定义工作流来规定测试,上线,发布等流程,并通过自动化工具完成这一系列操作。 ?...${env}`) res.end(); return; } //获得jenkinscrumb值,没有这玩意接口就不能调用...; //parameter:jenkins job 构建要传递参数 var postData = { parameter: [...和jira都有互相调用和触发插件,但是很难完美的满足自身业务, 比如要根据不同env(构建环境)调用不同jenkins触发不同构建脚本,毕竟测试环境,产线环境脚本不太一样。

    4K30

    Jenkins集成GitLab正确姿势,实现Git代码提交触发CICD

    安装GitLab Plguin Gitlab Plugin- 这个插件允许GitLab在提交代码或打开/更新合并请求触发Jenkins构建。它还可以将构建状态发送回GitLab。...配置Jenkins Job 创建jenkins job, 源代码管理选 Git,Repository URL 填写你 gitlab 上源码 repo 地址,Credentials 是拉取代码需要用到身份认证...和 token,后面配置 gitlab webhook 会用到 ❝该步骤目的主要是为了将要通过gitlab触发jenkins job信息准备好,用于后面的配置gitlab-webhook,...新版jenkins可能遇到坑 在“Generate” 生成 token时候,如果使用是高版本 jenkins ,会出现403错误 HTTP ERROR 403 No valid crumb was...在链接那里输入之前jenkins上提供webhook url 以及“Secret token“,编辑完后保存 点击测试,如果返回200,那就成功了,去jenkins看看有没有自动构建记录 配置Jenkins

    2.6K21

    生产力工具推荐-IDE插件篇

    流程是通过Jenkins实现 借助于这两个插件,可以完美的将开发测试环境编码(code)—>部署(dev)—>调试(debug)整个流程打通,进一步提高生产力 2、Jenkins插件 2.1 插件安装...,如果检查没有权限或其他报错,建议密码使用用户token,可以通过「用户」——> 「设置」——> 「API Token」——> 「添加新Token」来获得一个api token。...当然也可以通过Crumb操作连接Jenkins,关于Crumb在我前面的文章 Jenkins API+Pipeline深度实践之input自动化中有提及 其他配置看字面意思即可,这里不再赘述 2.3...,选择Build on Jenkins就可以触发构建,点击后会弹出在Jenkins流水线线中定义好构建参数供选择和确认 展开每个Job,也可以查看每个Job历史构建及参数 此插件也支持直接在IDE查看构建控制台日志输出...,包括历史日志及正在运行Job构建日志,这样在触发构建后,就可以很方便在IDE中查看到CI流程每个步骤详细输出,和在Jenkins控制台上看是一样 3、Kubernetes插件 3.1 插件安装

    1K20

    HTTP触发Jenkins参数化构建

    Webhook触发Jenkins job,同步构建完毕后发邮件出来 但由于前端环境特殊性(测试用例要在浏览器环境跑),而测试结果也在JS手里,于是就有了异步跑完用例后怎么通知Jenkins问题 用Selenium...默认有跨站请求头伪造保护和跨域限制,而且要求登录(但支持Basic Auth) 如果经服务中转,这些都不是问题,拿到crumb通过CSRF,无脑跨域,header验证。...字段,身份证有效期为3600s(1小) P.S.关于CORS更多信息,请查看跨域资源共享 CORS 详解 XHR登录 new Image()最方便,但没办法进行Basic Auth。...触发Jenkins参数化构建 如果考虑安全风险,或者希望在跑完测试用例后做更多事情,可以由服务触发构建,PHP代码如下: header('Access-Control-Allow-Origin:*')...,请查看官方文档:Remote access API 四.写在最后 Jenkins搞定了很多细节工作,比手动实现这样一套构建服务要方便一些,但可配置度越高,控制权就越低,想要完成一些简单操作,不得不求助于插件或者通过一些绕来绕去方式

    2.3K40

    Jenkins一些笔记

    三、获取Jenkins-Crumb 在远程API调用时候,Jenkins对于某些接口要求不仅限于Authorization,还必须要有Jenkins-Crumb,这个东西之前在进行获取时候...时候,没有开启启用安全,再或者是有没有勾选上使用碎片算法。... 另,附上curl查询Jenkins-Crumb命令: curl -s ''http://admin:yourtoken@jenkins-url/crumbIssuer/api/xml?... 4.3 构建队列 在点击立即构建时候,Jenkins没有返回任何信息,但是在Jenkins内部,它是通过放到队列里等待,如果有空闲,就开始构建,否则等待,这个队列是可以获取得到...4.4 构建进度查看 需要将Jenkins构建进度移植到我们自有的平台,Jenkins构建进度通过ajax轮询实现,获取文本规则主要从response header里面的两个字段获取

    1.3K20

    解决 Jenkins 性能缓慢问题

    因此,主节点上构建数量会显着影响资源使用。在主节点上保持较少构建将为代理节点留出足够 CPU 和内存来安排和触发作业。 您可以在工作中使用“限制项目可以运行位置”选项。...因此,为确保最佳 CI/CD 功能,请考虑对 Jenkins 进行一些性能调整,并将主节点从不必要任务中解放出来。这将为您提供足够内存和 CPU 来有效调度和构建代理上触发器。...也可以通过 Jenkins 命令行手动删除构建,或者使用定期清理旧构建cron 作业。...不过,如果您安装一个复杂插件,但只使用一两个小功能,脚本可能会更有效。 如果您可以没有它,请删除该插件。有时这是一个值得权衡。...所有节点聚合堆直方图 Jenkins 性能监控工具 这可以帮助您评估性能调整有效性,并在您继续改进 Jenkins 安装为您提供指导。

    4.2K20

    面向初学者Jenkins多分支管道教程

    如果启用了此配置,则仅在提PR才会触发构建。因此,如果您正在寻找基于PRJenkins构建工作流程,这是一个不错选择。 您可以向Jenkinsfile添加条件逻辑,以根据分支需求构建作业。...从以上条件可以看出,没有手动触发Jenkins作业情况,并且每当有分支请求请求,都需要自动触发管道并为该分支运行所需步骤。...Jenkins扫描已配置Github存储库,以查找所有提升了PR分支。 下图显示了扫描三个分支作业,并且由于我没有提出任何拉取请求,Jenkins不会创建任何基于分支管道。...另外,检查管道中存储库扫描配置。 Webhooks 不会触发管道 当Webhook没有触发管道,请检查Github中Webhook交付状态代码和错误。...如果Jenkins能够接收Webhook,则日志应显示未触发作业原因。

    9.5K10

    GitLabCICD实践简介

    QA 团队 进行测试,测试通过后通知部署人员发布到生产环境。 错误发现不及时 很多 错误在项目的早期可能就存在,到最后集成时候才发现问题。...Jenkins 2 基于gitlab多分支流水线可以实现。相对配置来说gitlab更加方便一些。 定时执行构建 有时,根据时间触发作业或整个管道会有所帮助。例如,常规夜间定时构建。...使用Jenkins 2可以立即使用。可以在应执行作业或管道那一刻以cron式语法定义。 GitLab CI没有此功能。...但是,可以通过一种变通办法来实现:通过WebAPI使用同一台或另一台服务器上cronjob触发作业和管道。...Jenkins 2与存储库管理器都是松散耦合,因此在选择版本控制系统它非常灵活。此外,就像其前身一样,Jenkins 2强调了对插件支持,以进一步扩展或改善软件现有功能。

    4.6K10
    领券