由于工作需要,要在程序中通过http请求触发jenkins任务的构建,并且查询构建状态,在此记录下来作为备忘;

介绍

整体情况如下图所示,通过浏览器提交到web服务器的请求,会导致web服务器向Jenkins发起一次http请求,Jenkins收到请求后开始构建任务;

总的来说,为了达到远程触发Jenkins任务的目的,需要做以下操作:

  1. 安装远程授权的插件"Build Authorization Token Root Plugin"
  2. 全局设置;
  3. 生成授权token;
  4. 将Jenkins任务设置成可以远程触发;
  5. 验证远程触发是否正常;

关于Jenkins的安装和设置

为了节省时间可以在Docker环境下搭建Jenkins,有关细节请参考《docker下的Jenkins安装和体验》

接下来,开始实战;

安装插件

先安装远程授权的插件"Build Authorization Token Root Plugin"。

  1. 如下图,"系统管理"->"插件管理":

  2. 选中"Avaliable"这个Tab页,搜索插件"Build Authorization Token Root Plugin",然后安装,如下图:

设置

为了远程触发任务成功,要先做以下设置:

  1. 如下图,点击"系统管理"->"全局安全配置":

  2. 如下图,取消勾选红框中的"Prevent Cross Site Request Forgery exploits"单选框:

  3. 如下图,勾选红框中的"Allow anonymous read access",这样可以远程查询任务状态:

  4. 点击页面底部的"保存"按钮;

  5. 如下图,点击右上角的用户名称进入用户设置页面,再点击红框3中的"Add new Token"按钮;

  6. 如下图,点击红框中的"Generate"按钮,会生成token:

  7. 如下图,红框中就是生成的token,此处保存下来,稍后会用到:

接下来创建一个任务,来验证远程触发这个任务;

创建任务

  1. 创建一个自由风格的软件项目:

  2. 增加一个参数,字符串类型的,如下图所示:

  3. 如下图,Build Triggers的设置勾选第一个"Trigger builds remotely (e.g., from scripts)",红框2中填入前面生成的token:

  4. 本次任务的主要工作是在控制台输出脚本,如下图:

  5. 点击底部的"Save"按钮保存任务;

至此,相关的设置工作已经完成,我们来验证一下吧;

验证远程触发Jenkins任务

为了调整参数方便,我这里使用了postman来发起http请求,您也可以选择写代码发起;

  1. Jenkins服务器的IP地址是192.168.1.103,因此整个url地址就是:http://192.168.1.103:8080/buildByToken/buildWithParameters
  2. 请求类型是POST,请求参数有四个,如下列表所示:
参数名 参数值 说明
job hello-world Jenkins上创建的任务名
token 11ccef68782a94c7f393a1bc2247523de2 前面生成的token,远程验证使用
userName Tom 任务中增加的业务参数
cause 123456 这个参数在查询任务详情的时候可以查到
  1. 上述所有参数,在postman上填写的效果如下图所示,注意要选中红框中的tab页填写参数:
  2. 在postman页面上点击"Send"按钮发起请求,收到的响应没有body,只有header,返回码是201表示成功,如下图所示:
  3. 此时去Jenkins页面上看看,任务已经被触发,并且输出的脚本中把userName参数也成功打印了,如下图:

查询任务

有时候我们通过程序发起http请求触发了任务后,还想通过http请求获取任务的执行状态,这里介绍一下我这现在的做法:

  1. 如下图,发起GET请求,获取所有构建情况,红框中就是每次任务的id,请求请求地址是:http://192.168.1.103:8080/job/hello-world/api/json
  2. 上面已经得到了四个任务ID:1、2、3、4,接下来发四次请求查询每个任务的详情,查询4号任务的地址是:http://192.168.1.103:8080/job/hello-world/4/api/json,得到的结果如下图所示:注意上图红框中的note字段,该字段的值"123456",就是我们在POST触发任务时的cause字段,所以,这个字段只要能对上,就表示该任务就是您之前远程触发的任务了,因此请在触发的时候保证cause字段的唯一性;

至此,远程触发Jenkins任务的实战就完成了,希望能给您做自动化构建的时候提供一些参考;

jenkins 启动_通过http请求启动jenkins任务相关推荐

  1. centos7无盘启动_从无盘启动看Linux启动原理

    作者:bobyzhang,腾讯 IEG 运营开发工程师 0. 故事的开始 0.1 为什么和做什么 最近家里买了对音响,我需要一个数字播放器.一凡研究后我看上了volumio( 我打算让volumio运 ...

  2. cassss服务未启动_不要再本地启动项目调试了,试SpringBoot远程调试你会发现新大陆!...

    前言 上周末一个朋友庆生,无意间听他说起了近况,说公司项目太多了,每天一堆BUG需要修复,项目来回切换启动,真是挺烦的. 随着项目越来越多,特别是身处外包公司的朋友,每天可能需要切换两三个项目,难道一 ...

  3. mysql safe无法启动_解决mysqld_safe无法启动问题的方法

    启动mysql时报错: 141220 07:50:59 mysqld_safe mysqld from pid file /usr/local/mysql/data/vps.cbo999.com.pi ...

  4. 装完docker电脑黑屏无法启动_教你电脑启动后黑屏该怎么办

    很多朋友都想要知道开机黑屏系统的方法,毕竟在使用的过程中黑屏的出现还是比较常见的,那么到底开机黑屏要怎么操作呢?下面小编就给大家带来一些关于黑屏原因排查及修复的图文教程吧,希望大家看完之后都能够喜欢这 ...

  5. 主板有电无法启动_主板通电但启动不了是什么原因

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:主板通电但启动不了是什么原因?回答:很简单,南桥烧坏了,就会出现主板电源灯是亮着的,但其它地方就不通电了,如果还在保修期就去修一下, ...

  6. 主板有电无法启动_主板通电但是启动不了怎么办

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 以电脑为例,主板通电但是启动不了一般这种情况都是内存金手指氧化或者接触不良造成的.其解决方法是: 1.先拔掉电脑电源线,按下机箱上 ...

  7. [ci]jenkins server启动,通过jnlp的方式启动slave(容器模式)

    jenkins server启动,通过jnlp的方式启动slave. java -jar jenkins.jar 配置jnlp端口--全局安全 配置云 配置项目 执行成功 转载于:https://ww ...

  8. jenkin swindows启动_windows本地安装以及使用Jenkins

    首先保证本地已安装JDK,Jenkins是需要Java开发的,需要JDK运行环境,此处不提供,网上一大把. 一.Jenkin安装: 下载成功后,点击 jenkins.msi,按照向导安装完成,不细说 ...

  9. [jenkins] 启动错误 Failed to start LSB: Jenkins Automation Server.

    [jenkins] 启动错误 Failed to start LSB: Jenkins Automation Server. 安装好jenkins后, 首次启动失败 启动命令 失败提示 失败详情 原因 ...

最新文章

  1. Java笔记(十九) 反射
  2. Android电池电量更新 - BatteryService(转)
  3. 给Domino系统管理员的十二项建议
  4. 【LeetCode】剑指 Offer 35. 复杂链表的复制
  5. 龙蜥社区首届理事大会圆满召开!14家理事代表出席
  6. SVN客户端——SmartSVN功能详解
  7. 2022年智慧城市行业概括及现状
  8. ROS dst-nat端口映射限制访问映射IP
  9. 手把手教你爬取并下载英雄联盟所有英雄皮肤高清大图
  10. Directx 10 is not supported方法一
  11. css3(属性选择器,结构伪类选择器,伪元素选择器 ,css3盒子模型,滤镜filter, cale, 过渡transition))
  12. 【Unity 粒子系统】Lifetime Speed 相关
  13. SQL两张表筛选相同数据和不同数据
  14. UE4项目开启光线追踪
  15. Android-关于将Excel表格中的数据展示到手机屏幕上的解决方案
  16. 机器学习是什么?详解机器学习概念
  17. 怎样使用计算机求一个数的立方根,计算机求数立方根的数学教案
  18. Pycharm 警告去除
  19. php培训视频 盘多多,SEO二十期培训视频教程
  20. 2020-2-24-数据库的基本使用-1

热门文章

  1. 爬虫爬取实例与乱码的处理
  2. 基础知识之 - C# Using的用法
  3. JAVA 【引用类型】和【对象类型】在【继承】中的异同
  4. DMA(2) S3C2410 DMA详解(其它的其实类似)
  5. PHP underlying structure
  6. 从BlackHat2013中我们收获了什么
  7. Windows下搭建Android开发环境
  8. Postgresql使用coalesce实现类似oracle的NVL方法
  9. win10上如何启用或禁用Windows功能
  10. (转)Spring Boot(七):Mybatis 多数据源最简解决方案