首页 > 其他分享 >Jenkins的参数化构建

Jenkins的参数化构建

时间:2023-05-29 14:22:33浏览次数:35  
标签:构建 参数 服务器 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,日志,目录
From: https://www.cnblogs.com/gaoyanbing/p/17440294.html

相关文章

  • 解决Jenkins控制台日志中文乱码
    前提:Jenkins部署在Windows服务器的tomcat容器里,执行python时控制台日志中文乱码step1:设置Jenkins环境变量:系统管理→系统设置→全局属性→环境变量JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8PYTHONIOENCODING=UTF8step2:设置jenkins所在服务器环境变量:右键我的电脑→属性→高级系......
  • 记录一次jenkins远程发布github中的net core 项目
    安装jenkinshttps://www.cnblogs.com/YorkQi/p/13658531.html进入jenkins容器dockerexec-it 容器编号bash设置github的sshkey  因为jinkens拉取不能直接用账户密码apt-getupdateapt-getinstallvimssh-keygen-trsa-C"邮箱"PS: /root/.ssh/文件夹下就是你的......
  • K8s Etcd 性能慢,调整这个参数快多了!
    本文最终的解决方式很简单,就是将现有卷升级为支持更高IOPS的卷,但解决问题的过程值得推荐。我们的团队看管着大约30套自建的Kubernetes集群,最近需要针对etcd集群进行性能分析。每个etcd集群有5个成员,实例型号为 m6i.xlarge,最大支持6000IOPS。每个成员有3个卷:r......
  • 使用Driverquery命令的一些特定参数来进一步精细化您需要的驱动程序信息
    使用Driverquery命令的一些特定参数来进一步精细化您需要的驱动程序信息。以下是一些示例命令:driverquery/v:显示更详细的驱动程序信息,包括每个驱动程序的签名状态、文件路径等。driverquery/si:按照驱动程序的签名状态对结果进行排序,首先列出已签名的驱动程序。driverqu......
  • flask路由参数
    flask路由参数1.路由参数(1)stringstring接收任何没有斜杠('/')的字符串(默认)@u.route('/string/<string:name>/')defget_string(name):print(type(name))#<class'str'>returnname(2)intint 只接收整型@app.route('/in......
  • 构建之法2
    在两周的时间内,我阅读了大部分的《构建之法》,这本书的后半部分的内容对于现在的我来说,实在是太过于遥远,我还不能接受这种内容,但是在前半本书中,我还是获得了很多知识和信息,就比如“软件=程序+软件工程”这让我更好的理解了我所在专业领域的具体内容和他的构造,在这本书的第一章中,还......
  • BT169D-ASEMI单向可控硅BT169D参数、尺寸、规格
    编辑:llBT169D-ASEMI单向可控硅BT169D参数、尺寸、规格型号:BT169D品牌:ASEMI封装:TO-92正向电流:0.8A反向电压:600V引脚数量:3芯片个数:1芯片尺寸:漏电流:>10ua恢复时间:浪涌电流:30A包装方式:盘装封装尺寸:如图特性:单向可控硅工作结温:-40℃~125℃BT169D的电性参数:正向电流0.8......
  • JacaScript 中函数的参数
    在JavaScript中,函数的参数有以下几种:1.普通参数(PositionalParameters):这是最常见的函数参数类型,定义时在函数括号内指定参数名称即可。调用函数时需要传入相应的参数值,按照定义时的顺序对应传入。例如:```javascriptCopycodefunctiongreet(name,message){con......
  • Python generator 构建协程,实现异步编程(使用yield构建消息处理者和消息创造者)
    协程的定义理解Python协程可以在单个处理机或多个处理机上运行,这取决于具体实现方式。在Python中,主要有两种协程实现方式:生成器协程和asyncio协程。生成器协程只能在单个处理机上运行,因为生成器协程是通过生成器函数实现的,而生成器函数在单个线程中执行。生成器协程也称为......
  • spring boot 限制初始值大小及参数中文详解
    要加“m”说明是MB,否则就是KB了.-Xms:初始值-Xmx:最大值 -Xmn:最小值java-Xms10m-Xmx80m-jarmod.jar & 时区设置 java-jar-Duser.timezone=GMT+08mod.jar& #----------------------------------------  #核心属性  #----------------------------------------   #BANN......