当前位置: 首页 > 后端技术 > Java

Jenkins笔记新任务

时间:2023-04-01 20:25:51 Java

@TOCJenkins笔记Jenkins笔记新任务:https://blog.csdn.net/weixin_...Jenkins笔记远程服务器配置:https://blog.csdn.net/weixin_。..Jenkins:参数构建:多分支|多模块|回滚|打印日志:https://blog.csdn.net/weixin_...1`必备条件:安装环境Docker或JDK+Maven+Git/Svn2`添加方法:从零配置,从零配置复制配置,点击左侧功能列表-新建任务,填写任务名称,点击构建maven项目,点击确定进入配置列表,配置buildhistory,设置sourcecodemanagement,这里选择git选择其中一种认证方式构建触发器:根据自己的需要设置,简单的任务不需要配置。构建环境:这里可以配置远程服务器的命令行,但是最好在Build完成后执行脚本(PostSteps),然后在PostSteps中执行远程服务脚本打印log。PreSteps,先Clean,再安装PostSteps,可以选择多种发布步骤,通过脚本直接在Jenkis服务器上执行【外链图片传输失败,源站可能有防盗链机制,推荐保存图片直接上传(img-imZrHBWG-1629689671588)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210823104307405.png)]执行脚本的命令需要使用根路径scp-P2021/data/jenkins/workdir/jobs/xxx/workspace/xxx/target/xxx.jardevops@intranetIP:/home/devops/xxx/ssh-p2021devops@intranetIP"/data/initsh/xxx.sh》在目标服务器上执行脚本并配置运行过程:Jenkins构建完成后,连接目标服务器将Sourcesfile文件的Jar复制到远程服务路径下,然后运行执行命令脚本。跳转到---》配置远程服务器配置如下:Sourcefiles**/*表示sskzmz作业工作目录下的所有文件和目录。去除前缀此操作是针对上面的sourcefiles目录,以及匹配的目录会被去掉一般留空远程目录这个操作是根据设置的服务器目录,我这里的服务器配置是/www所以这里应该写sites/sskzmzexeccommand远程服务器执行的命令例如,可以输出servicenginxrestartor/www/xx.sh.Advanced:Excludefiles:Excludedfiles(传输目录时有用,使用通配符,例如:/*.log,/*.tmp,.Git/)模式separator:分隔符(配置TransferSetSourcefiles的分隔如果这里改了,上面的内容也需要改)Nodefaultexcludes:禁用默认的排除规则(详见帮助)Makeemptydirs:该选项将更改插件的默认行为。默认行为是匹配文件是否存在,存在则创建目录存放。勾选这个选项会直接创建一个目录来存放文件,即使是一个空目录。(个人理解)Remotedirectoryisadateformat:远程目录创建一个带日期的文件夹(需要在Remotedirectory中配置日期格式)Flattenfiles:只上传文件,不创建目录(远程目录除外)exectimeout(ms):运行步骤的超时时间(毫秒)execinpty:模拟一个终端执行步骤addtransferset:添加一个配置sh脚本(脚本两种方式一致)#!/bin/bash#服务名SERVER_NAME=xxx#源jar路径,mvn打包完成后,目标目录下的jar包名称也可以选择为war包。可以将war包移动到Tomcat的webapps目录下运行。这里使用jar包,通过java-jar命令执行。JAR_NAME=xxx#源码jar路径#/usr/local/jenkins_home/workspace--->jenkins工作目录#demo工程目录#目标打包生成jar包目录JAR_PATH=/home/devops/xxx/#打包完成后,将jar包移动到运行jar包目录--->work_daemon,目录work_daemon需要提前创建JAR_WORK_PATH=/data/project/xxx/echo"queryprocessid-->$SERVER_NAME"PID=`ps-ef|grep"$SERVER_NAME"|awk'{print$2}'`echo"getprocessID:$PID"echo"endprocess"foridin$PIDdokill-9$idecho"killed$id"doneecho"endprocesscomplete"#复制jar包到执行目录echo"复制jar包到执行目录:cp$JAR_PATH/$JAR_NAME.jar$JAR_WORK_PATH"cp$JAR_PATH/$JAR_NAME.jar$JAR_WORK_PATHecho"复制jar包完成"cd$JAR_WORK_PATH#修改文件权限chmod755$JAR_NAME.jarnohup/usr/local/java/bin/java-jar$JAR_NAME.jar>>/data/project/xxx/logs/info.log2>&1&ExtraAdditionalReferenceScript#!/bin/bash#这里可以换成自己的执行程序,其他代码不用changedAPP_NAME=xxxxxxxx.jar#使用说明,用于提示输入参数usage(){echo"Usage:shExecutethescript.sh[start|stop|restart|status]"exit1}#检查程序是否运行is_exist(){pid=`ps-ef|grep$APP_NAME|grep-vgrep|awk'{print$2}'`#不存在则返回1,存在则返回0if[-z"${pid}"];然后return1elsereturn0fi}#startmethodstart(){is_existif[$?-当量“0”];然后回显“${APP_NAME}已经在运行。pid=${pid}。”elsenohup/app/jdk1.8.0_45/bin/java-server-jar$APP_NAME--spring.profiles.active=test>./console2>&1&echo"${APP_NAME}started"fi}#Stop方法stop(){is_exist如果[$?-当量“0”];然后kill-9$pidecho"${APP_NAME}stopped"elseecho"${APP_NAME}isnotrunning"fi}#outputrunningstatusstatus(){is_existif[$?-当量“0”];然后回显“${APP_NAME}在跑。pidis${pid}"elseecho"${APP_NAME}isNOTrunning."fi}#restartrestart(){stopstart}#根据输入的参数,选择执行相应的方法,如果没有输入,则执行instructioncase"$1"in"start")start;;"stop")stop;;"status")status;;"restart")restart;;*)usage;;