zoukankan      html  css  js  c++  java
  • jenkins自动化部署微服务与tomcat项目

    1:利用好工具确实能事半功倍,最重要的是减少重复劳动。

    jenkins的安装就不再重复提取说明了,网上安装步骤太多了。

    (1)下面来记录下部署微服务项目的步骤:

     脚本:demo.sh

    #!/bin/bash
    
    #pring cloud工程自动关闭
    #(如果不加这个变量,任务执行成功之后Spring Cloud工程会自动停止)
    BUILD_ID=demo
    
    #先删除之前启动的进程
    echo "kill demo... start"
    
    #根据自己的工程的jar包查找进程
    #PROCESS="$(ps -ef|grep demox|grep -v grep|awk '{print $2}')"
    PROCESS="$(ps -ef | grep -E 'demo-eureka|demo-api|demo-system|demo-sso|demo-user|demo-web' | grep -v grep | awk '{print$2}' )"
    if [[ -n $PROCESS ]];
    then 
      echo "demo running... start kill..."
      kill -9 $PROCESS
    else
      echo "demo not running"
    fi
    
    echo "kill demo... end"
    #为了方便启动,将打好的jar包复制到同一个目录下
    JAR_PATH="/home/zzjs/app/demo/bin"
    
    echo "copy jars to $JAR_PATH... start"
    #从Git上下载的源码的放到任务的工作空间中
    WORKSPACE="/root/.jenkins/workspace/demo"
    API="demo-api"
    EUREKA="demo-eureka"
    SSO="demo-sso"
    SYSTEM="demo-system"
    USER="demo-user"
    WEB="demo-web"
    
    TARGET_PATH="target"
    
    #根据自己的Spring Cloud工程中打包的jar包名称匹配
    #(也可以直接写死jar包的名称,比如这里我打好jar包的名称就是module的名称,如demo-eureka.jar)
    cd $WORKSPACE/$API/$TARGET_PATH
    #AUTH_JAR=$(ls |grep $BASE.jar)
    echo "copy $API.jar"
    cp -b $API-1.0-SNAPSHOT.jar $JAR_PATH/$API.jar
    
    cd $WORKSPACE/$EUREKA/$TARGET_PATH
    #EUREKA_JAR=$(ls |grep $EUREKA.jar)
    echo "copy $EUREKA.jar"
    cp -b $EUREKA-1.0-SNAPSHOT.jar $JAR_PATH/$EUREKA.jar
    
    cd $WORKSPACE/$SSO/$TARGET_PATH
    #ZUUL_JAR=$(ls |grep $ZUUL.jar)
    echo "copy $SSO.jar"
    cp -b $SSO-1.0-SNAPSHOT.jar $JAR_PATH/$SSO.jar
    
    cd $WORKSPACE/$SYSTEM/$TARGET_PATH
    #ZUUL_JAR=$(ls |grep $ZUUL.jar)
    echo "copy $SYSTEM.jar"
    cp -b $SYSTEM-1.0-SNAPSHOT.jar $JAR_PATH/$SYSTEM.jar
    
    cd $WORKSPACE/$USER/$TARGET_PATH
    #ZUUL_JAR=$(ls |grep $ZUUL.jar)
    echo "copy $USER.jar"
    cp -b $USER-1.0-SNAPSHOT.jar $JAR_PATH/$USER.jar
    
    cd $WORKSPACE/$WEB/$TARGET_PATH
    #ZUUL_JAR=$(ls |grep $ZUUL.jar)
    echo "copy $WEB.jar"
    cp -b $WEB-1.0-SNAPSHOT.jar $JAR_PATH/$WEB.jar
    
    echo "copy jars to $JAR_PATH... end"
    
    #启动工程
    echo "start demo..."
    
    #需要按照eureka/auth/zuul的顺序启动,这里采用sleep的方式等待前一个jar包启动完毕
    #(这样做是有点问题的,无法保证前一个jar包成功启动,不过我没有找到其他方式,暂时先这样处理)
    cd $JAR_PATH
    
    nohup /home/zzjs/jdk1.8/jdk1.8.0_171/bin/java -jar -Xms256m -Xmx256m $EUREKA.jar > eureka.out 2>&1 &
    
    echo "waiting for eureka start..."
    
    #sleep 15
    
    echo "waiting for api start..."
    nohup /home/zzjs/jdk1.8/jdk1.8.0_171/bin/java -jar -Xms256m -Xmx256m $API.jar > api.out 2>&1 &
    
    #sleep 15
    
    echo "waiting for sso start..."
    nohup /home/zzjs/jdk1.8/jdk1.8.0_171/bin/java -jar -Xms256m -Xmx256m $SSO.jar > sso.out 2>&1 &
    
    #sleep 15
    
    echo "waiting for system start..."
    nohup /home/zzjs/jdk1.8/jdk1.8.0_171/bin/java -jar -Xms256m -Xmx256m $SYSTEM.jar > system.out 2>&1 &
    
    #sleep 15
    
    echo "waiting for user start..."
    nohup /home/zzjs/jdk1.8/jdk1.8.0_171/bin/java -jar -Xms256m -Xmx256m $USER.jar > user.out 2>&1 &
    
    #sleep 15
    
    echo "waiting for web start..."
    nohup /home/zzjs/jdk1.8/jdk1.8.0_171/bin/java -jar -Xms256m -Xmx256m $WEB.jar > web.out 2>&1 &
    
    echo "start demo... end"

    2:单个项目打成war 部署到服务器(linux)tomcat中

    此次利用tomcat热部署进行:

    安装tomcat 然后在tomcat config下tomcat-users.xml  在倒数第二行 写入:

    <role rolename="admin"/>
    <role rolename="admin-gui"/>
    <role rolename="admin-script"/>
    <role rolename="manager"/>
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/><user name="admin" password="admin" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />

    其中 :

    <user name="admin" password="admin" 为用户名和密码,访问tomcat用
    然后在jenkins凭据中添加 tomcat用户名和密码;
    之前的步骤同上,下面进行tomcat热部署设置

    
    

    这样就打包完成自动发布到tomcat中了,至此结束。
  • 相关阅读:
    idea插件-RestfulToolkit
    java 调试技巧
    js foreach 不能中断的现象及理解
    SpringBoot 内嵌Tomcat的默认线程配置
    SpringMVC中从doDispatch如何一步步调用到controller的方法
    干掉hao123的第n+1种方法
    查找——二叉排序树(代码超详细注释)
    为什么单螺旋桨飞机会左偏?
    【转】Python 魔法方法大全
    通俗的讲解Python中的__new__()方法
  • 原文地址:https://www.cnblogs.com/baimh/p/11383058.html
Copyright © 2011-2022 走看看