背景

查看jenkins的api

直接访问 JENKINS_URL/job/JOB_NAME/api/ 就可以查看jenkins的api

build一个job的话,是POST请求 JENKINS_URL/job/JOB_NAME/build

会提示:

这是jenkins的安全策略导致的,需要传递一个crumb

解决方法

有两个方案,

第一种方案:

1. 先去掉jenkins的安全策略设置,如图,去掉勾选

在jenkins全局安全设置中 取消勾选 “防止跨站点请求伪造(Prevent Cross Site Request Forgery exploits)”

2. 允许anonymous 访问,如下图,勾选上

3. 设置token,token是针对指定job的,所以去到job中去设置

那么就可以通过POST请求访问 JENKINS_URL/job/test1/build?token=TOKEN_NAME 触发这个job了

第二种方案: 安全这块不用去掉防止跨站点请求伪造,通过传递crumb来实现;但允许anonymous 访问还是要设置的

POST请求的时候带上这个Jenkins-Crumb(推荐这种方法)

访问 JENKINS_URL/crumbIssuer/api/json 就可以获取到你的crumb,当然不同的客户端去访问得到的不一样

备注

将文中的JENKINS_URL替换成你自己的jenkins地址,

JOB_NAME替换成job的名字;

TOKEN_NAME 替换成你自己写的token值,如我上面的jwentest1

通过jenkins API去build一个job的更多相关文章

  1. jenkins插件set build description使用规则

    配置前要注意的点: 先安装插件:set build description 安装该插件后,在[Post-build Actions]栏目中会多出description setter功能,可以实现构建完 ...

  2. 利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解

    本文转载自利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解 导语 由于最近工作需要利用 Jenkins 远程 API 操作 Jenkins 来完成一些列操作,就抽空研究 ...

  3. 学霸笔记系列 - Python Selenium项目实战(一)—— 怎么去验证一个按钮是启用的(可点击)?

    Q: 使用 Python Selenium WebDriver 怎么去验证一个按钮是启用的(可点击)? A:Selenium WebDriver API 里面给出了解决方法is_enabled() 使 ...

  4. python3 jenkins api操作

    一.安装依赖包 pip install python-jenkins 二.常用操作 0.调用jenkins(以下用的server都是这里的环境) import jenkins server = jen ...

  5. 如何去设计一个自适应的网页设计或HTMl5

    如何去设计一个自适应的网页设计或HTMl5 如今移动互联网随着3G的普及,越来越火爆,更多需求跟随而来!APP应用市场和APP应用数量成倍成倍的增长!从而给移动互联网带来新的挑战! 移动设备正超过桌面 ...

  6. Jenkins下载历史Build版本的归档文件

    /root/.jenkins/jobs/zgg-crm-pre/builds//com.zgg$crm/archive/com.zgg/crm/0.0.1/crm-0.0.1.war https:// ...

  7. 使用faker去构造一个User-Agent

    faker可以仿造各种各样的信息,可以使用faker去构造一个User-Agent from faker import Factory f = Factory.create() 'User-Agent ...

  8. mac 10.13 build 一个 redis desktop manager

    build 的东西比较多,性能差的电脑编译会很久. 下载地址:https://redisdesktop.com/download 本来想下载一个,但是发现只有 windows 是免费的,不过官网提供了 ...

  9. shell中调用jenkins API批量运行历史任务

    shell中调用jenkins API批量运行jenkins带参数的任务: #!/bin/sh #startdate=20150127 startdate=20150201 while [ " ...

随机推荐

  1. vue 前端框架 目录

    vue 前端框架 目录   vue-目录 ES6基础语法 vue基础语法 Vue.js的组件化思想 —上 Vue.js的组件化思想 —下 Vue + Vue-Router结合开发 SublimeSer ...

  2. 巧克力分配问题——C语言

    某品牌巧克力使用500克原料可制作55小块巧克力,请编程实现:输入原料重量(以千克为单位),计算出制作巧克力的块数(四舍五入).然后对这些巧克力进行分包,小盒放11块,大盒放24块,问各分装多少大盒多 ...

  3. playframework 一步一步来 之 日志(一)

    日志模块是一个系统中必不可少的一部分,它可以帮助我们写程序的时候查看错误信息,利于调试和维护,在业务面,它也可以记录系统的一些关键性的操作,便于系统信息的监控和追踪. play的日志是基于logbac ...

  4. chrom中 background 调用pop.js

    //监听快捷键 chrome.commands.onCommand.addListener(function(command) { if (command == "cleanKey" ...

  5. oracle 为什么没有权限的用户也可以用sysdba登录

    我随便创建了一个用户,create user lisi identified by lisi; 当我用sqlplus登录的时候: cmd ->  sqlplus lisi/lisi  进不去   ...

  6. 【project】【Maven】dynamic web module 3.1 requires 1.7

    Maven导入和新建java web 项目时可能报的错. 解决方案: 1.保证 在eclipse 构建 web中关于java版本有三处需要修改统一:  右击项目,选择“propertie”===> ...

  7. Rsync常见错误和问题

    五.常见问题 以下是为配置rsync时的常见问题: 问题一:@ERROR: chroot failedrsync error: error starting client-server protoco ...

  8. JS图片验证码

    !(function(window, document) { var size = 5;//设置验证码长度 function GVerify(options) { //创建一个图形验证码对象,接收op ...

  9. Go语言正则模块

    基本使用 import "bytes" import "fmt" import "regexp" func main() { //这个测试一 ...

  10. FreeRTOS移植到STM32上的移植过程

    所有的单片机都是顺序执行的,而对于多任务而言就显得力不从心了,虽然在一些小项目中可以通过定时器来实现,但这种实现方式没有实时性,一旦任务需要在规定时间内做出响应,那只能通过实时操作系统来完成了.在很多 ...