使用jenkins构建自动化任务分布式任务调度平台的部署

发布时间 : 2021/03/20 19:55

配景

jenkins是一个基于Java开发的连续集成工具,通常用于监控连续重复的工作,用于主动化测试范畴再合适不外了。
本文是我使用jnekins来进行使命分发而做的一篇关于jenkins的学习使用开端入门。
通常在进行简单的长途使命调理上,我们可以使用 ssh 进行长途操作运行下令,但一旦机器增长(多机器调理)要么运行下令庞杂(多参数使命)时, ssh 就显得不那么方便了:下令写起来麻烦,参数的种种转义也很轻易出错,可读性变差。这时间通过jenkins来管理多机器调理就显得很方便了。

安装

以下以 Red Hat 发行版为例,其他安装方法可以戳标题链接察看
jenkins依靠Java7及以上版本,可以通过 java官网 安装也可以通过下令行安装
yum 安装为例
sudo yum install java

然后安装jenkins:

1
2
3
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins

2. 服务启停

安装完毕启动服务:

1
2
sudo service jenkins start/stop/restart
sudo chkconfig jenkins on //添加开机启动

假如 Java 安装没有问题,这时间应该提示 Starting Jenkins OK

服务启动后,打开 http://<serverhost>:<port> 即可看到jenkins的界面了,默认端口是 8080

3. 安装语言包汉化界面

毕竟不是学英语,汉化一下还是有须要的。
打开jenkins页面,进入 Manage Jenkins -> Manage Plugins 安装下语言插件,搜索并安装 Locale Plugin 即可。
安装完毕后回到 Manage Jenkins -> Congigure System ,在 Locale 设置项下将 Default Language 值设置为 zh_CN

节点管理

安装完成后,jenkins的安装机器默以为 master 节点,别的我们还可以给jenkins定义分外的节点,这样就可以让jenkins将使命分发到差别的机器上去。
进入系统管理->管理节点->新建节点

在上图中的 Host 处填写要绑定的节点 IP name 处为节点定义名字,设置jenkins的长途工作目次,并设置使命的并发数量( # of executors )。
添加完成以后如下图所示:

创建使命

返回jenkins页面,点击新建使命,弹出的选项中选择合适的项目种类,以自由气势派头为例:
大部分待填项都很明了,简单说明几处:
源码管理部分,可以设置一个代码库,一旦检测到代码库有变更则主动触发一次构建。支持 cvs svn 不支持 git

假如需要严格设置使命需要在哪个机器上运行,可以勾选 Restrict where this project can be run ,然后在 Label Expression 中填入节点管理中给节点设置的 Label 名。即其时填写的 Name 字段。

我的需求是让jenkins分发并运行一段 shell 脚本,因此在 增长构建步骤 中添加 Excute shell ,在 Command 中填入我要运行的 shell 下令。由于脚本需要吸收许多参数,因此还要勾选 参数化构建過逞 ,并 添加参数 选择 String parameter ,填写好参数名字并可以给参数设置默认值,在运行的下令中可以使用 ${name} 方法调用通报进来的参数。

固然,还可以 增长构建后操作步骤 ,如 收集运行陈诉 发送通知邮件 等功能,jenkins都提供了相应的插件来支持。

jenkins API

至此,一个jenkins使命就设置成功了,点击立刻构建就可以run起来了。网上许多的教程文章也就到此为止了。。作为使用svn来作为触发器的固然是没问题了,而我并没有使用源码管理器,那么要怎么触发jenkins进行构建呢?我需要的是可以使用下令行的方法进行触发。幸亏jenkins还提供了相当强盛的 REST API

首先,让我们来看一下怎样通过下令行方法触发一个要吸收参数的jenkins使命。

1
http://<serverhost>:<port>/job/<jobName>/buildWithParameters?<key=value>&<key=value>...

发送一个上述 http 请求即可触发一次jenkins构建了。

然后,假如我们需要主动获取此次构建的日记,那么只有获取了此次构建的id号才行,jenkins使命每次构建,id都市自增一次,怎样才能获取到呢?

1
http://<serverhost>:<port>/job/<jobName>/api/json

请求上述 URL ,我们可以看到关于jenkins的许多信息:

nextBuildNumber 即为下一次构建的id号。知道了构建号,再通过

1
http://<serverhost>:<port>/job/<jobName>/<buildNumber>/api/json

我们可以看到关于本次构建的许多信息:

duration :运行时间
result :运行状态

有了上述接口,我们通过主动化本领触发以及轮询使命状态都不是问题了。

有的人大概会以为 记着API也太不人性了 && 假如我不用json接口怎么办 ,实在在jenkins的页面上就提供了,看看右下角:

点开就是API页面:

不光有 json 的,另有 XML python 的,是不是很良知?

jenkins任务调度

一、概述

1、主动化摆设能简化开发過逞的代码管理,让开发职员把更多的时间专注于业务实现, 简化繁琐的上线流程和操作步骤,做到项目标快速打包和摆设,淘汰人为操作中的失误。 2、分布式使命调理平台,XXL-JOB:美团点评员工许雪里开发, 其焦点计划目的是开发敏捷、学习简单、轻量级、易扩展。 现已开放源代码并接入多家公司线上产品线,开箱即用。 源码地点:https://github.com/xuxueli/xxl-job

二、本文简介

重要是使用成熟的CI摆设工具Jenkins,联合开源的分布式使命调理框架xxl-job作为demo工程,快速搭建自己的连续集成项目,其他项目可以类似构建。

三、Jenkins摆设和设置

1、安装 1.1用特定版本的安装包安装 安装包下载页: https://pkg.jenkins.io/redhat-stable/ (留意:会有一些安装版本和jdk版本匹配的问题,一样平常CentOS 6.5 安装版本jenkins-2.7.4-1.1.noarch.rpm是OK的) 1.2、安装最新版本: 根据文档来就没问题: https://jenkins.io/doc/book/getting-started/installing/#unix-linux 1.3、启动和停止 sudo service jenkins start/stop/restart sudo chkconfig jenkins on

2、全局设置

3、 项目设置

4、构建设置具体:

1、 General设置项目名称和简介 2、源码管理设置git项目地点 3、构建触发器设置长途构!建脚本 4、构建环境设置项目构建前需要实行的一些脚本 5、构建,设置构建工具,好比maven打包,war包的上传,实行tomcat服务启动脚本 6、构建后操作公布,构建后的邮件发送等操作

4.1、简介和设置

4.2、 设置项目源码地点和访问密码

4.3、 设置Credentials

4.4、构建环境

4.5、构建 设置构建下令 (这里的maven是前面全局环境变量中设置好的)

添加构建后操作(需要前面安装好长途ssh插件才行)

4.6、设置构建后操作

此中:

Transfer SetSource files:表现要上传的当地的war包及路径,可到工作空间去看 Remove prefix:表现要上传时要去除的文件夹,即只上传war包 remote driectory:即表现实行时的路径,相当于把war包上传到这里了 exec commad:要实行的下令,这里可以重定名jar包,启动tomcat服务器

7、构建后操作:

8、回到设置主页,进行构建

9、进入构建控制台察看构建日记,假如有错误,可以直接察看到

四、xxl-job的介绍

项目地点: https://github.com/xuxueli/xxl-job 概述: XXL-JOB是一个轻量级分布式使命调理框架,其焦点计划目的是开发敏捷、学习简单、轻量级、易扩展。 现已开放源代码并接入多家公司线上产品线,开箱即用。 特性: - 1、简单:支持通过Web页面对使命进行CRUD操作,操作简单,一分钟上手; - 2、动态:支持动态修改使命状态、暂停/恢复使命,以及停止运行中使命,即时见效; - 3、调理中心HA(中心式):调理接纳中心式计划,“调理中心”基于集群Quartz实现,可保证调理中心HA; - 4、实行器HA(分布式):使命分布式实行,使命"实行器"支持集群摆设,可保证使命实行HA; - 5、使命Failover:实行器集群摆设时,使命路由策略选择"故障转移"环境下调理失败时将会平滑切换实行器进行Failover; - 6、同等性:“调理中心”通过DB锁保证集群分布式调理的同等性, 一次使命调理只会触发一次实行; - 7、自定义使命参数:支持在线设置调理使命入参,即时见效; - 8、调理线程池:调理系统多线程触发调理运行,确保调理准确实行,不被堵塞; - 9、弹性扩容缩容:一旦有新实行器机器上线要么下线,下次调理时将会重新分派使命; - 10、邮件报警:使命失败时支持邮件报警,支持设置多邮件地点群发报警邮件; - 11、状态监控:支持及时监控使命进度; - 12、Rolling实行日记:支持在线察看调理结果,而且支持以Rolling方法及时察看实行器输出的完备的实行日记; - 13、GLUE:提供Web IDE,支持在线开发使命逻辑代码,动态公布,及时编译见效,省略摆设上线的過逞。支持30个版本的历史版本回溯。 - 14、数据加密:调理中心和实行器之间的通讯进行数据加密,提高调理信息安全性; - 15、使命依靠:支持设置子使命依靠,当父使命实行结束且实行成功后将会主动触发一次子使命的实行, 多个子使命用逗号分开; - 16、推送maven中央仓库: 将会把最新稳定版推送到maven中央仓库, 方便用户接入和使用; - 17、使命注册: 实行器会周期性主动注册使命, 调理中心将会主动发现注册的使命并触发实行。同时,也支持手动录入实行器地点; - 18、路由策略:实行器集群摆设时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、同等性HASH、最不常常使用、近来最久未使用、故障转移; - 19、运行报表:支持及时察看运行数据,如使命数目、调理次数、实行器数目等;以及调理报表,如调理日期分布图,调理成功分布图等; - 20、脚本使命:支持以GLUE模式开发和运行脚本使命,包括Shell、Python等种类脚本; - 21、壅闭处置策略:调理过于密集实行器来不及处置时的处置策略,策略包括:单机串行(默认)、抛弃后续调理、覆盖之前调理; - 22、失败处置策略;调理失败时的处置策略,策略包括:失败告警(默认)、失败重试;

@EdwinTang 2016-01-27T14:16:59.000000Z 字数 806 阅读 1313

Jenkins 使用参数进行JOB调理

JENKINS JOB CI 调理


1.配景

在实际系統中,CI工作中经常由多个包的构建或摆设组成,次序构建,或独立构建都面对服从低的问题。

2.构建场景

A.此中一個包更新
包间有依靠
包间无依靠
B.多個包都需要更新

3.调理方法

1.选择参数构建
2.机动使用字符串参数
3.借用shell分别字符串
4.借用curl下令调用别的JOB

    #!/bin/bash echo $ { SELECT } | grep - q "0" if [ $ ? - eq 0 ]; then curl - X POST http : //XXX:XXX/jenkins/job/JOB_NAME/build fi sleep 2 min = 1 while (( $min == 1 )) do echo `curl --silent http://XXX:XXX/jenkins/job/JOB_NAME/lastBuild/api/json` | grep - q '"result":"SUCCESS"' if [ $ ? - eq 0 ]; then break else sleep 5 fi done for elem in $ { SELECT } do case $elem in 1 ) curl - X POST http : //XXX:XXX/jenkins/job/DDT_SIT_WS_BUILD/build ;; 2 ) curl - X POST http : //XXX:XXX/jenkins/job/DDT_SIT_NGINX_BUILD/build ;; 3 ) curl - X POST http : //XXX:XXX/jenkins/job/DDT_SIT_MAIN_BUILD/build ;; 4 ) curl - X POST http : //XXX:XXX/jenkins/job/DDT_SIT_MANAGER_BUILD/build ;; 5 ) curl - X POST http : //XXX:XXX/jenkins/job/DDT_SIT_SYNC_BUILD/build ;; esac done

本文网址: http://www.directapkdownloader.com/d/2021220195813_393_3717019666/home