Jenkins的参数化构建
一、参数化构建日志
1、查看效果
有时候开发需要查看服务器日志,传统的是需要运维登录服务器拉取开发所需要的服务日志,这么做的弊端是:1、如果日志比较大,拉取耗费时间、占用服务器资源。2、占用运维不必要的工作量。3、为了服务器安全考虑,反复的登录服务器,容易被一些内部员工记住服务器密码或秘钥。
废话不多说,先来看效果:

当我们点击上面项目名后面的参数化构建(build with parameters)时,出现下面界面

当我们在N框输入所要看的日志行数,下面日期可以输时间,也可以不输(不输就默认输出现在的日志),然后点击“开始构建”,构建完毕后,就可以看到服务器上的日志显示在Jenkins控制台上

2、Jenkins上配置

然后选择“参数化构建”,然后添加两个“string parameter”,输入下面内容

然后下面的默认即可

然后在构建环境中选择“send files or excute commands over SSH after the build runs”(构建完执行命令),在SSH server中选择要查看日志的服务器
然后在执行命令的地方填上代码“tail -$N /data/tomcat/logs/catalina.out$DATE”,其中的N和DATE就是供后面传参的。

剩下的基本上默认即可

当配置完,保存后,就可以实现刚才手动构建日志的功能 了。
二、参数化构建/回滚项目
1、Jenkins配置
这个功能主要是实现构建时可以选择是构建项目还是回滚项目,接下来下贴上Jenkins上的配置。
简单说就是利用参数化构建,建立choice,choice里面建立两个变量,一个是发布新版,一个是回滚旧版。选择变量类型string parameter来传递要回滚的版本号。构建时选择运行bat脚本,写上判断语句,判断是发布还是回滚。bat脚本里也可以内置pathon脚本,把条件判断写在python脚本,运行命令写上python xx.py即可

选择参数化构建,添加参数中选择“choice”和“string parameter”,然后填上下面内容。



接下来虽然不是参数化构建的重点,但是确实构建的重点。每个公司的构建插件不一样,这里使用的是插件publish over ssh 。

上面截图的内容意思是指定Jenkins上工作目录上需要上传到远程服务器的war包,指定Jenkins服务器上构建时需要移除的目录(已构建过的以前的项目),指定远程服务器上源码存放的路径,然后在远程服务器上执行shell目录下的脚本。
下面截图是Jenkins工作目录下项目

启用步骤:
构建后操作→Add post-build action→Send build artifacts over SSH
SSH Server Name:选个一个你在系统设置里配置的配置的名字
Transfer Set Source files:需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)
Remove prefix:移除目录(只能指定Transfer Set Source files中的目录)
Remote directory:远程目录
Exec command:把你要执行的命令写在里面;也可以填写脚本路径(存放在远程服务器上的绝对路径)
(新版本的要求Transfer Set Source files和Exec command都要填写,可以不了他。老版本的允许只填写一个)
高级:
Exclude files:排除的文件(在你传输目录的时候很有用,使用通配符,例如:**/*.log,**/*.tmp,.git/)
Pattern separator:分隔符(配置Transfer Set Source files的分隔符。如果你这儿更改了,上面的内容也需要更改)
No default excludes:禁止默认的排除规则(具体的自己看帮助)
Make empty dirs:此选项会更改插件的默认行为。默认行为是匹配该文件是否存在,如果存在则创建目录存放。选中此选项会直接创建一个目录存放文件,即使是空目录。(个人理解)
Flatten files:只上传文件,不创建目录(除了远程目录)
Remote directory is a date format:远程目录建立带日期的文件夹(需要在Remote directory中配置日期格式)


2、效果
当选择deploy时就执行构建新项目,如果选择rollback时就执行回滚操作。

三、分支参数化构建
1、固定分支
有时候我们希望使用固定的几个分支来构建,那么我们把分支名填入即可。
参数化构建中选择“选项参数”,填入分支名

2,不固定分支
有时候,开发想自建分支,这样分支就会很多,而又不想合到现有主分支上测试,那么就需要自定义分支了。
第一步:安装插件

第二步:进到配置项目中,点击“参数化构建过程”,选择git parameter,输入name,然后选择parameter Type为“branch or tag”



配置完保存即可。

Jenkins的参数化构建的更多相关文章
- Jenkins:参数化构建:分支|模块|回滚|打印日志
@ 目录 多分支 安装Git Parameter Plug-In 配置参数 选择构建分支 分模块 前提 分模块build 参数配置 分模块shell脚本 mvn 的基本用法 分模块运行 Jenkins ...
- jenkins之参数化构建
事件背景: 今天一早接到一个需求,说要jenkins持续集成,输入自定义URL,然后完成回归测试,当时有点蒙,不知道如何下手,听群里的大神思路后豁然开朗,就记录了下 一.先安装插件 插件: [Buil ...
- Jenkins参数化构建插件,实现构建前输入自定义参数
插件: [Build with Parameters]:https://wiki.jenkins-ci.org/display/JENKINS/Build+With+Parameters+Plugin ...
- jenkins参数化构建过程
http://www.cnblogs.com/meitian/p/5492457.html 1,首先增加Jenkisn插件 https://wiki.jenkins-ci.org/display/JE ...
- Jenkins参数化构建
背景:每次构建项目时都需要去修改一下配置,然后保存,再去立即构建.这样修改容易修改出错误,影响到执行脚本,且每次都要去修改配置,不容易修改,操作也比较麻烦.所以决定将Jenkins修改为参数化构建.下 ...
- Jenkins 利用Build With Parameters Plugin实现Jenkins参数化构建
利用Build With Parameters Plugin实现Jenkins参数化构建 by:授客 QQ:1033553122 测试环境 Build With Parameters Plugin ...
- Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作
此前介绍过几篇关于Jenkins配置相关的文章,今天再来说说参数化构建和构建前删除已有的报告.在实际测试过程中,是需要测试几套环境的,不使用参数化构建的话,构建脚本就比较麻烦了:自然,已生成的报告,不 ...
- 使用插件实现Jenkins参数化构建
一.插件安装 1.打开插件管理,在此界面可以安装插件 二.参数化 1.在“可选插件”中查找如下两个插件然后安装,安装后重启Jenkins Build With Parameters 输入框式的参数 P ...
- Jenkins参数化构建Jenkins从文件中读取运行参数构建版本号
https://www.cnblogs.com/xiaochengzi/p/8251805.html 安装Extended Choice Parameter插件 选择‘参数化构建过程’ maven c ...
随机推荐
- 【转】WCF入门教程六[一个简单的Demo]
一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来 ...
- 严格控制GOTO语句
注意事项 1,使用顺序.选择.循环等有限的基本结构表示程序逻辑. 2,选用的控制结构只准许有一个入口和一个出口 3,程序语句组成容易识别的块,每块只有一个入口和一个出口. 4,复杂结构应该用基本控制结 ...
- linux -- Ubuntu下安装和配置Apache2
在Ubuntu中安装apache 安装指令:sudo apt-get install apache2 启动和停止apache的文件是:/etc/init.d/apache2 启动命令:sudo apa ...
- 刚刚完成了在vs2013中通过 ef连接mysql数据库的工作。感觉没有想象中的简单。试了n次终于成功。故记录成功的方法,希望可以帮到大家
分两种情况,如果你是用entity framework 5.0的时候 mysql-connector-net的版本不是很重要. MySQL For VisualStudio的版本也不重要 (这个不装就 ...
- mysql connection不断增加
程序运行以后,刷新页面,在mysql的status里面检测到Threads_connected的值不断上升. 对程序断点调试,发现,是由于下面的代码导致. class ConnectionMySQL( ...
- tiny6410nfs挂载问题
一.制作根文件系统 1.下载最新版的 busybox 地址:http://www.busybox.net/downloads/ 2.编译busybox.先make menuconfig ,修改以下:B ...
- 第四章 Spring.Net 如何管理您的类___对象的生命周期链
各位,实在不好意思,因为有事,博客几天没更新了.前面有童鞋提到,配置 Objects.xml 路径的相关问题,这些东西是 IResource 接口的一些内容.在下一章会详细介绍. 传统的Net应用中, ...
- 从头认识java-16.5 nio的数据转换
这一章节我们来讨论一些nio的数据转换. 上面一章节我们提到ByteBuffer,可是他是面向二进制数据,对于编程来说不是非常方便,因此,java添加了转换数据的工具. 1.asCharBuffer ...
- 服务器允许js跨域
header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:POST,GET'); header('Ac ...
- Hash表(hash table ,又名散列表)
直接进去主题好了. 什么是哈希表? 哈希表(Hash table,也叫散列表),是根据key而直接进行访问的数据结构.也就是说,它通过把key映射到表中一个位置来访问记录,以加快查找的速度.这个映射函 ...