精华内容
下载资源
问答
  • 详详解解jenkins自自动动部部署署springboot应应用用的的方方法法 这篇文章主要介绍了详解jenkins 自动部署springboot应用的方法小编觉得挺不错的现在分享给大家也给大家 做个参考 起跟随小编过来看看吧 最近公司在...
  • Jenkins 自动部署

    2018-05-25 09:37:03
    Jenkins 自动部署..................................................................................................................................
  • jenkins自动打包vue前后端分离项目,部署到远程服务器
  • jenkins自动打包部署springboot前后端分离项目,内涵jar备份重启脚本
  • 此文档为简单的搭建Jenkins自动部署工具,可实现自动部署war包到Tomcat上及springboot工程的自动部署。
  • 1、安装jenkins,在jenkins上安装jdk、git、maven就不说了,这些网上一大把。  jenkins免密登录到其他服务器可以参考我这一篇:jenkins免密登录到其他服务器 2、看下项目中的配置,按照我的目录结构创建这2个文件和...
  • jenkins自动部署文件

    2018-03-11 18:01:59
    jenkins自动部署文件
  • jenkins自动部署

    千次阅读 2019-04-20 20:12:44
    1、前言 ...  Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying...

    1、前言

      根据官网介绍:

    What is Jenkins?
      Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.
      Jenkins can be installed through native system packages, Docker, or even run standalone by any machine with a Java Runtime Environment (JRE) installed.

    翻译:

    什么是Jenkins?
      Jenkins是一个完备的、开源的自动化服务,用于自动化与构建、测试、交付或部署软件相关的各种任务。
      Jenkins能通过系统包和docker安装、甚至在任何安装了jre的系统中独立运行。

      因为Jenkins是java写的,所以就是与平台无关,但是具体部署脚本跟系统有关。最重要的是Jenkins的广泛应用,问题解决比较容易和生态比较完整,可以有很多参考和插件可以用。

    系统环境:

    • tomcat 9.0
    • jdk 1.8
    • Jenkins 2.164.1

    note:这个安装过程某些阶段需要科学上网

    2、安装

    2.1、下载war包

    https://jenkins.io/,点击download,下载Generic Java package (.war)下载最新war包即可。

    2.2、启动Jenkins及初始化

      将jenkins.war放入tomcat的webapps文件夹下即可,接着使用tomcat的bin目录下startup.bat(windows下用这个)或者 startup.sh(linux下用这个),启动tomcat,运行了Jenkins,访问[http://127.0.0.1:8080/jenkins/]
    (http://127.0.0.1:8080/jenkins/),看看如果长时间是这样子:
    在这里插入图片描述
    最好用tomcat的bin目录下shutdown.bat或者shutdown.sh停止tomcat,再startup一下。
    在我启动过程中还遇到提示说缓存不足,cmd在tomcat的bin目录下使用如下命令:

     .\startup.bat JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m"
    

    更改jvm的Perm区的内存大小

    下面路径必须先启动一次Jenkins,再去找才会出现,不用
    找到用户文件夹(C:\Users\用户名.jenkins)下的hudson.model.UpdateCenter.xml,修改插件的更新地址为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
    这个是国内源,翻墙的话可能遇到No such plugin: cloudbees-folder这个错误。

    进入后会如下界面提示输入初始密码:

    hhh
    按照提示找到这个文件,复制里面的文本进入密码框,或者在tomcat控制日志输出中找到对应提示即可。
    接着选择安装插件:
    在这里插入图片描述
    其实选择默认插件即可,进去后再选择需要的插件安装即可。
    安装过程不太顺利,这个是墙的问题,你们自己想办法补全吧,我已经换了国内源了
    在这里插入图片描述
    接着输入管理员的账户名和密码,里面的额邮箱必填,不然过不了。
    在这里插入图片描述
    这里默认即可,点保存并完成。
    在这里插入图片描述

    2.3、添加插件及添加服务器信息

    2.3.1、添加插件

    在主页面中找到系统管理->插件管理->可选插件的右上角搜索下面的插件名,勾选并点直接安装。

    • Git Parameter
    • Active Choices Plug-in
    • Publish Over SSH

    2.3.2、添加服务器信息

      由于添加了Publish Over SSH,在系统管理->系统设置菜单在底部的Publish over SSH分类中找到SSH Servers,点新增,添加新的ssh service
    在这里插入图片描述
    暂时添加了两个service,用户后面讲解
    在这里插入图片描述

    3、新建工程

    在这里插入图片描述
    输入项目名,选择自由项目类型,点确定
    在这里插入图片描述

    4、填写部署配置

      这里配置有个问题存在,就是不能动态推送到正式服和测试服。虽然配置的时候配置了动态的,能打包出正式包和测试的包,但是服务器实际上早就写死了,有列进去就会推送过去。这章完结后给出一个解决方法。

    4.1、配置项

    过程:

    1. 源码管理:填写git远程仓库的url(github、gitlab、gitee这些仓库的url)和使用git用户
    2. 参数化构建过程:设置部署前的选择项(这里包含git分支、打包的执行的gradle的task任务)
    3. 构建:Jenkins执行gradle的打包task
    4. 构建后操作:选择服务器(可多个),通过ssh将打包后的文件传输到服务器,执行重启脚本

    4.2、配置前的准备

    • 添加要上传的服务器信息
      • 这个在本文章2.3.2、添加服务器信息已经讲解
    • 一个git远程仓库url,私密仓库则添加Credentials(用户凭证)
      • 这个填写的时候录入即可
    • 给项目添加gradle wrapper能力
      • 把wrapper文件夹下的文件也提交的git远程仓库即可
    • spring boot的正式测试的打包脚本
    • 上传后的停止脚本和启动脚本
      • 停止脚本使用shell脚本来停止、启动脚本使用java -jar xxx.jar即可,既然都要写shell脚本,最后打算合并成重启脚本

    重启脚本restart-jar.sh

    #!/bin/bash
    
    EC_PID=`jps -v |grep "ec-1.0.jar"|awk '{print $1}'`
    
    if [ $EC_PID ]
    then
        kill -15 $EC_PID
        echo "kill -15 $EC_PID"
    else
        echo "没有spring boot项目启动"
    fi
    
    nohup java -jar /data/ec-1.0.jar > /data/ec-1.0.out 2>&1 &
    

    4.3、配置项

    4.3.1、参数化构建过程

    点击添加参数按钮,选择相应的项。

    git parameter参数:填写name,供后面作为变量;选择parameter type,git选择菜单显示什么内容;
    在这里插入图片描述
    Activie Choices Parameter参数:填写name,供后面作为变量;选择Groovy Script,填写Groovy Script文本框为return ['Dev','Prod'],提供这个参数的选项值;选择Choice Type,选择恰当的显示控件。
    在这里插入图片描述

    4.3.2、源码管理

    本文选择git,在Repository URL填入git远程仓库url,由于是私有仓库,在Credentials选择新增项,Branch Specifier (blank for ‘any’) 填入前面的git parameter的name,即${branch},作为动态参数check out分支。
    在这里插入图片描述
    添加账户密码界面:
    在这里插入图片描述

    4.3.3、构建tab

    点击增加构建步骤

    Invoke Gradle script参数:
    准备工作已经提了添加wrapper,所以这里是按照wrapper方式执行gradle脚本的。
    选择Use Gradle Wrapper,在子文本框Tasks,填入boot${packType}Jar,这里的额task是自己写的,所以你去本文准备哪里看资料,使用动态参数填充自定义task名字。
    在这里插入图片描述

    4.3.4、构建后操作tab

    点增加构架后操作步骤
    选择Send build artifaces over SSH,再点add server。

    • name选择设置里面添加的ssh server
    • Source files填写相对于当前workspace的相对路径
    • Remove prefix填写要去除的目录前缀,不去除的画,会接在Remote directory之后
    • Remote directory填写远程服务去的防止文件的路径
    • Exec command填写需要执行的命令,这里执行自己编写的重启shell脚本

    在这里插入图片描述
    我这里选中/data目录作为防止目录,先设置好权限,命令才能正确执行,比如我这里用了chmod 774 /data改变目录权限

    4.3.5、效果及输出

    效果:
    在这里插入图片描述
    分别请求接口:
    在这里插入图片描述
    在这里插入图片描述

      都能请求,但是同一份jar包,这里上传的是正式的jar包,测试的jar上传上去,肯定是找不到相关配置而启动失败

    5、相关问题

    5.1、动态部署测试服和正式服

      我找了一下,没有动态改变jenkins server配置项目的东西,最后用了gradle的task来实现这个选择服务器的功能。
    同时也变相,将jenkins变为一个界面似的都在task实现了大部分功能,除了源码的管理。

    添加ssh插件请查看gradle打包spring boot的测试、正式war、jar包的第五小节。

    添加ssh插件和编写推送脚本后,改动配置文件:

    • 增加服务器配置或者只区分正式测试两种情况的选择
    • 更改构建tab的gradle的task任务
    • 去除增加构建后操作步骤【因为service的信息在task已经定义好了】

    5.1.1、参数化构建过程–更改

    使用Active Choices Plug-in插件功能,增加关联项配置:
    Activie Choices Reactive Parameter参数:填写name参数名,选择Groovy Script,填写Groovy Script文本框为

    if(packType.equals("Dev")){
        return ["false"]
    }else if(packType.equals("Prod")){
        return ["true"]
    }
    

    提供这个参数的选项值;选择Choice Type,选择恰当的显示控件,同时填写Referenced parameters,关联上一级参数,达到动态改变当前参数
    在这里插入图片描述

    5.1.2、构建tab–更改

    更改tasks为boot${packType}Jar putJar -PisRelease=${isRelease},这里有两个参数,都是上面动态化构建时的提供的。
    在这里插入图片描述

    5.1.3、增加构建后操作步骤–更改

    由于gradle的task已经存在服务器信息,并动态发布,说以这个步骤直接删除,把配置单service删去即可。

    5.1.4、效果

    在这里插入图片描述

    参考博客:
    An error occurred during installation: No such plugin: cloudbees-folder
    HTML ASCII 参考手册
    jenkins插件下载镜像加速
    jenkins-参数化构建(三)插件:Git Parameter
    运行中的java程序怎么停止。。
    每天一个linux命令(42):kill命令

    展开全文
  • 首先,java代码打包是可以打成jar包或者war包的,jar包和war包的部署方式会略有不同,下面以打成jar包部署到linux系统为例,记录一下如何通过jenkins配置自动部署。 准备工作: 一个简单的后端代码 我这里准备的是...

    在我们的日常工作中,可能经常会遇到以下问题:

    1、测试环境是由开发去更新的,当开发忙于改bug的时候,测试环境更新频率比较低,问题不能得到及时的验证

    2、频繁的找开发去更新环境的话 ,耽误别人的工作,长此以往,也容易激起开发和测试之间的矛盾 

    那么我们如何解决上面的问题呢?那就是让测试人员也具备搭建测试环境的能力。很多企业现在测试环境和开发环境都独立分开了,开发人员都没有操作测试环境的权限。

    公司内部一套完整的环境搭建可能会涉及到很多其他的中间件之类的,但这种不需要经常更新,我们先从最简单的更新测试环境的代码包开始。

    常见的部署包有哪些呢?

    在学习如何搭建环境之前,我们首先要了解一下,一般常见的部署包有哪些种类?

    下面我简单介绍一下我所接触过的部署包,列举的肯定不全,这个大家要根据公司的实际情况去做相应的分析和了解。

    jar、war  、压缩包、apk安装包、docker镜像

    部署包怎么来的?

    大家不要想着开发直接丢给你一个部署包,然后让你直接拷贝到服务器上然后去解压或者执行什么命令之类的-- 当然,这种方式也是可以的 ,只要你们不嫌麻烦,这个只是初级阶段需要掌握的。

    掌握初级阶段之后,剩下的应该是要去思考 部署包到底是怎么来的? 能不能自己打出部署包?答案当然是可以的。

    下面列举一些获取部署包这块,可能需要去掌握的一些技能:

    1、maven、ant: java代码打包工具,目前应该是maven用的多些,ant的话,做测试如果用到jmeter,应该会用到。

    maven的常见命令可以了解一下:

    mvn   -DskipTests 和 -Dmaven.test.skip=true 区别mvn -U clean install/package/deploy 

    2、gradle:安卓代码打包工具

    3、前端代码的话 现在一般需要安装nodejs,npm之类的,具体怎么打包可以自己跟进实际业务场景去了解

    4、MsBuild:dotnet代码和dotnet core 代码打包,也就是C#代码的编辑器

    如何实现jar包自动部署?

    首先,java代码打包是可以打成jar包或者war包的,jar包和war包的部署方式会略有不同,下面以打成jar包部署到linux系统为例,记录一下如何通过jenkins配置自动部署。

    准备工作:

    • 一个简单的后端代码

    我这里准备的是一个自己写的SpringBoot的demo,集成了swagger,部署之后可以看到一个swagger的页面,里面实现和查询数据库里面用户的接口,源代码上传到了gitee上,地址如下:仓库代码设置为私有的,有需要的话微信私聊我就行,大家可以用自己公司的项目或者找其他部署包进行模拟部署也可以。

    https://gitee.com/libo_277169949/MyFirstSpringBootDemo

    • mysql数据库

    项目里面会用到连接数据库的配置,当然部署后你调用接口查数据的话,swagger页面能出来

    下面先讲一下部署的思路:

    1、获取源码,进行编译打包,得到部署包

    2、将部署包自动传输到要部署的服务器上去(通过Publish Over SSH插件)

    3、远程执行shell脚本启动jar包(通过SSH Plugin插件)

    部署操作:

    1、在jenkins上安装Publish Over SSH和SSH Plugin插件,并在jenkins->系统管理->系统配置 下找到跟SSH相关的配置,将要远程操作的服务器的相关信息配置进去:

     

     

    2、先在服务器上写好一个deploy.sh的shell脚本用来启动和停止jar包,具体内容如下:

    #!/bin/bash
    source /etc/profile
    pid=`ps -ef|grep MyFirstSpringBootDemo-1.0-SNAPSHOT.jar| grep -v grep | awk '{print $2}'`
    echo "部署前的pid进程 :$pid"
    # 关闭已经启动的jar进程
    if [ -n "$pid" ]
      then
        kill -9 $pid
    else
        echo "进程没有启动"
    fi
    sleep 5s
    #copy jar 到启动目录
    \cp -rf /root/app/MyFirstSpringBootDemo-1.0-SNAPSHOT.jar  /root/app/deploydir/MyFirstSpringBootDemo-1.0-SNAPSHOT.jar
    
    cd /root/app/deploydir
    nohup /root/tools/jdk1.8.0_251/bin/java -jar /root/app/deploydir/MyFirstSpringBootDemo*.jar --server.port=8081 >/root/app/logs/MyFirstSpringBootDemo.log 2>&1 &
    echo "脚本执行完毕"
    sleep 5s
    pid=`ps -ef|grep MyFirstSpringBootDemo-1.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
    # 检验进程是否启动
    if [ -n "$pid" ]
      then
            echo "部署后的pid进程 :$pid"
                    echo "启动成功"
    else
        echo "进程没有启动"
    fi

    脚本说明:

    先查看jar是否正在运行,运行的话,部署前先停掉,把部署包替换后,然后启动jar包

    3、jenkins上相关配置:

    获取脚本:

     

    编译代码打包:

    上传部署包到服务器:

    上面的执行脚本也可以换成下面的插件去调用:

    到这里,部署操作就基本上完成了,以后需要更新测试环境的时候,直接点击一下job的立即构建按钮就可以了,一个简单的jar包部署到linux服务器上的demo就完成了,你学会了吗?

     

    部署后效果验证:

    部署后,访问以下地址如果能正常访问即表示部署成功:

    http://106.53.29.33:8081/

     

    http://106.53.29.33:8081/swagger-ui.html

     

    思考如何优化?

    1、测试环境如何提升部署效率呢?当打出来的jar包比较大的时候,传输到服务器比较慢,怎么处理呢?(尽可能的考虑局域网内传输)

    2、如果在windows上部署jar包又该如何处理呢?

    3、整个部署过程或者启动脚本还有哪些可以优化的点呢?(比如说参数化构建,同一个job选不同的环境或者配置进行部署,部署后邮件或者钉钉通知之类的等等。)

    4、如果同一个jar包要部署不同的环境该怎么处理呢?(提示:不同环境的配置不一样,打包的时候可以指定配置文件)

     

    踩过的坑:

    启动脚本里面,获取已经启动的jar包进程名时,用ps -ef|grep MyFirstSpringBootDemo*.jar ,通过jenkins调用就获取不到进程名称,但是在服务器上直接执行可以获取到,将jar包名写成完整的之后就可以。

     

    其他格式包部署思路:

    war包:部署在tomcat容器中或者直接通过java -jar xxx.war启动即可。

    IIS站点网站部署:替换部署包后,重启站点服务

    前端代码:将编译后的部署包上传到服务器某个目录,重启ngnix或其他服务

    其他的部署都是类似的,一般是替换文件,重启服务。在编译之前,如果需要手动改配置文件之类的,可以辅助用其他的脚本去实现,主要是通过命令行能操作的事情,都可以集成到jenkins中去。

    展开全文
  • 主要介绍了详解jenkins自动部署springboot应用的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • jenkins自动部署jar包

    千次阅读 2020-11-20 12:17:24
    1.准备工作,服务器两台,一台部署jenkins,一台部署项目,在两台电脑上都安装java,tomcat。 2.怎样去安装部署jenkins,去百度吧,这个比较简单。 配置远程项目部署服务器 3.进入jenkins,创建要集成的项目 ...

    1.准备工作,服务器两台,一台部署jenkins,一台部署项目,在两台电脑上都安装java,tomcat。
    2.怎样去安装部署jenkins,去百度吧,这个比较简单。
    要安装的插件
    SSH plugin
    SSH Build Agents plugin
    Publish Over SSH
    Git plugin
    Deploy to container Plugin
    Command Agent Launcher Plugin
    bouncycastle API Plugin
    配置远程项目部署服务器
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    3.进入jenkins,创建要集成的项目

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    注意:配置要要写自己项目的jar,不然不会启动,这里好多人都没写清楚

    source /etc/profile
    cd /usr/java
    ps -ef|grep springboot01-0.0.1-SNAPSHOT.jar |grep -v grep|awk '{print $2}'|xargs kill -s 9
    BUILD_ID=dontKillMe 
    nohup java -jar springboot01-0.0.1-SNAPSHOT.jar  > springboot01-0.0.1-SNAPSHOT_log.file 2>&1 &
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这就代表成功了

    展开全文
  • 自动化部署为更好配合项目进行平台版本迭代和更新,使软件能够持续集成,提高运维部署效率,故搭建jenkins自动部署平台,满足项目自动化部署需求。
  • Jenkins自动部署Shell脚本

    千次阅读 2019-09-18 06:01:08
    /bin/bash#时间:2019年7月29日#作者:肖山#微信:helpxiaoshan#用途:用于XXXX UAT环境ATG商城项目Jenkins自动部署使用。 ############ 使用注意事项:########################################################.....

    注意:本脚本用于Shell脚本分享,因环境不同,不可直接用于其它环境部署用。

    #!/bin/bash
    #时间:2019年7月29日
    #作者:肖山
    #微信:helpxiaoshan
    #用途:用于XXXX UAT环境ATG商城项目Jenkins自动部署使用。

    ############ 使用注意事项:#################################################################################

    注意1:需修改目标主机/etc/ssh/sshd_config,MaxSessions 50(建议值),重新加载sshd服务配置。

    注意2:脚本后必须跟参数,参数为 项目名,例如: sh deploy.sh store

    注意3:50行,sleep 15 秒,20后台进程 x 15 秒=300s,检测时间共300秒,当有项目的tomcat启动时间超过300秒,则增大该数值。

    ############################################################################################################

    starttime=date +'%Y-%m-%d %H:%M:%S'
    project_name=$1 #第一个参数为项目名

    [ $1 ] || echo "ERROR: No project_name!" #判断$1为空,则退出脚本呢!
    [ $1 ] || exit 1

    if [ $project_name = "store" ];then
    #第一步,停掉目标项目进程。
    ip=192.168.220.34
    echo "INFO: project_name is store"
    echo -e "\n"
    echo "INFO: Begain stop store..."
    ssh -n -l oracle $ip "pgrep -f -l store | grep -v 'tail -f' | grep -v grep | cut -d' ' -f1 | xargs kill -9" >>/dev/null 2>&1
    stat=$?
    #echo $stat
    [ $stat -eq 0 ] && echo "INFO: store is been killed"
    [ $stat -ne 0 ] && echo "INFO: store is not started"

    #第二步,删除旧代码并清除缓存。
    echo -e "\n"
    echo "INFO: Begain delete old file and cache..."
    ssh -n -l oracle $ip "rm -rf /home/oracle/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/servers/prod_lockserver/stage/prod_lockserver.ear/prod_lockserver.ear"
    ssh -n -l oracle $ip "rm -rf /home/oracle/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/servers/prod_lockserver/tmp"
    ssh -n -l oracle $ip "rm -rf /home/oracle/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/servers/prod_lockserver/cache"
    echo "INFO: already delete old file and cache"
    
    #第三步,拷贝最新代码到项目路径下。
    echo -e "\n"
    echo "INFO: Begain copy code to project host..."
    scp -qrp /file/uat_ears/prod_lockserver.ear oracle@$ip:/home/oracle/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/servers/prod_lockserver/stage/prod_lockserver.ear
    [ $stat -eq 0 ] && echo "INFO: copy Success"
    [ $stat -ne 0 ] && echo "ERROR: copy failed!!!" && exit 1
    
    #第四步,启动项目进程
    echo -e "\n"
    echo "INFO: Begain start store Weblogic"
    ssh -n -l oracle $ip "nohup /home/oracle/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/bin/startManagedWebLogic.sh prod_lockserver http://192.168.220.35:7001 -Djava.rmi.server.hostname=192.168.220.34 -Dguangda.merchant.parameter.file.path=/file/cebbank/ceb_merchant.properties -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8466,server=y,suspend=n -Djava.compiler=NONE -Datg.dynamo.server.name=prod_lockserver -Xms6G -Xmx6G -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:InitiatingHeapOccupancyPercent=45 -XX:ConcGCThreads=4 -XX:G1ReservePercent=15 -XX:+DisableExplicitGC -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+PrintGCCause -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintGCApplicationStoppedTime -Xloggc:/home/oracle/store_gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/oracle/store_heap.bin -Dcom.sun.management.jmxremote.port=12345 -Djava.rmi.server.hostname=192.168.220.34 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder -Datg.dynamo.data-dir=/home/oracle/ATG-Data/ > /home/oracle/output/logs/prod_lockserver.log &"
    echo "INFO: Weblogic starting..."
    
    #第五步,启动精确检测weblogic启动完毕的后台进程
    echo -e "\n"
    >${project_name}_${ip}_status.log  #清空检测Weblogic是否启动的日志文件内容
    for i in `seq 20`    #启动10个检测Weblogic启动日志后台进程,当后台进程被杀掉后,日志才会被写入log文件
    do
        ssh -n -l oracle $ip "tail -fn 0 /home/oracle/output/logs/prod_lockserver.log" | grep "The server started in RUNNING mode" >>${project_name}_${ip}_status.log &
    done
    
    #检测Weblogic启动状态的变量stats1,检测机制为检测目标服务器上的项目日志文件,是否新打印出"The server started in RUNNING mode";
    t=0
    stats1=0
    while [ $stats1 -eq 0 ]
    do
        sleep 15   # 10个后台进程,20x15=300s,检测时间共300秒,当有项目的tomcat启动时间超过100秒,则增大该数值。
        let t+=15  #t=`expr $t + 10`
        echo "检测 $project_name Weblogic 是否启动完毕,已用时 $t 秒..."
        echo -e "\n"
        ssh -n -l oracle $ip "pgrep -f 'tail -fn' | head -n 1 | xargs kill -9"  # kill掉一个后台进程
        [ $? -eq 0 ] && echo "INFO: 成功杀掉 tail -fn 后台进程。"
        stats1=`cat ${project_name}_${ip}_status.log | wc -l `   # 每kill一个后台进程,状态文件就更新一次
        #[ $stats1 -eq 0 ] && echo "INFO:未检测到 started in RUNNING mode 关键词。"
        #[ $stats1 -ge 1 ] && echo "INFO:成功检测到 started in RUNNING mode 关键词。"
    done
    
    ssh -n -l oracle $ip "pgrep -f 'tail -fn' | xargs kill -9" # kill掉剩余无用后台进程。
    echo -e "\n"
    echo "INFO:检测到启动关键词:"
    head -n 1 ${project_name}_${ip}_status.log  #  输出抓取的 started in RUNNING mode 日志。
    echo -e "\n"
    echo "打印最后864行日志"
    ssh -n -l oracle $ip "tail -n 864 /home/oracle/output/logs/prod_lockserver.log"

    fi

    #计算脚本运行总时间
    endtime=date +'%Y-%m-%d %H:%M:%S'
    start_seconds=$(date --date="$starttime" +%s);
    end_seconds=$(date --date="$endtime" +%s);
    echo "本次更新用时: "$((end_seconds-start_seconds))"s"

    展开全文
  • 文章目录前言一、安装...上一篇Jenkins+springboot+svn的自动部署已经讲完了,下面我们来讲Jenkins+springboot+Github,相信不少人都有平时开发自己的项目或者练习代码都会交给github托管的习惯,那么如果是基于gith
  • Jenkins自动部署SpringCloud项目

    千次阅读 2020-06-30 15:45:52
    Jenkins自动部署SpringCloud项目 wToFly关注 2019.08.15 16:01:17字数 162阅读 759 1.本地准备Tomcat环境 2.jenkins下载地址https://jenkins.io/zh/download/ 选择war包下载 image.png 下载后把war包放入...
  • 比如说我的mall-swarm项目目前就有8个服务需要部署,有没有什么办法让我们部署一次之后,只要点击执行就可以自动部署呢?当然有!下面我们使用Jenkins来完成一个微服务架构中的自动化部署工作。 Jenkins的基本使用...
  • 一般Web工程通过Jenkins远程部署到Tomcat,可以采用Maven的tomcat-maven-plugin插件进行部署。最近接触到Spring Boot工程的部署,由于Spring Boot应用可以使用内部集成的服务容器(如Tomcat),此时无需按原来的方法...
  • Jenkins自动部署Shell脚本分享(注意,仅用于Shell脚本分享,因环境不同,不可用于其它环境自动部署使用) #!/bin/bash #时间:2019年7月29日 #作者:肖山 #微信:helpxiaoshan #用途:用于 XXXX UAT环境ATG商城项目...
  • 通常Jenkins 机器和构建的机器是不一样的,我们需要将Jenkins 的workspace 工程空间下的代码拉到构建机器上: 点开系统配置 下 SSH Servers 出,新增一个 填写名称 机器ip 用户名,以及目标目录。点开高级配置填...
  • 如果没有一个可以使用 Docker 的 Jenkins,请先查看这篇文章搭建 使用 Docker 搭建 Jenkins自动部署基于 Docker 的服务(一、Jenkins 搭建篇)
  • Jenkins2.19.3,自动部署项目,支持实时部署,详情请参见博文:http://blog.csdn.net/l1028386804/article/details/78593726
  • Windows下使用Jenkins自动部署Vue项目前言1、新增所需插件2、项目配置(1)、新增SVN配置:(2)、新增构建触发器:(3)、构建环境 前言 安装及配置Jenkins请移步我的上一篇博客:Windows下使用Jenkins自动部署项目...
  • jenkins学习资料,希望对大家有所帮助,欢迎下载
  • Ubuntu18.04+Jenkins自动部署环境搭建

    千次阅读 2019-07-03 11:35:07
    由于工作需要,记录一下搭建Jenkins的步骤 Jenkins中文官网:https://jenkins.io/zh/ 环境准备: Ubuntu18.04 JDK1.8 Maven3.2.5 Jenkins2.150 初始化Jenkins 1、进入下载链接下载所需的Jenkins版本至...
  • docker容器的自动部署 这里已安装好了docker、jenkins、gogs和dockers私有仓库registry 运行jenkins、gogs、和私有仓库 1、登陆jenkins点击新建item 指定构建前的操作,使用shell脚本将已经存在的容器镜像...
  • 主要介绍了Jenkins如何使用DockerFile自动部署Java项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Windows服务器使用Jenkins自动部署

    千次阅读 2019-05-12 14:56:53
    由于公司正在开发的工作流的几个项目经常需要测试,所以我用 Jenkins 实现了一个持续集成部署的方案。 持续集成部署的意义也在这里:在经常性的重复性部署工作中解放自己。 由于.net framework 的项目占多数,公司...
  • 2.安装Jenkins。 由于本次重点部在于安装软件,而是配置,因此忽略上述软件的安装。 二、配置Jenkins 1.登录Jenkins 2.添加凭据,输入GitHub账号密码 3.系统管理>全局工具配置 配置git,Path to Git ...
  • jenkins自动部署代码到多台服务器

    万次阅读 2020-11-21 11:11:35
    下面讲一下如何通过一台jenkins服务器构建后将代码分发到其他的远程服务器,即jenkins自动部署代码到多台服务器。 1、下载 pulish over ssh 插件 2、系统管理 -> 系统设置(全局设置和路径), 拉到最下面 找到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,212
精华内容 14,484
关键字:

jenkins自动部署