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中了,至此结束。
  • 相关阅读:
    109 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 03 新增功能及实现 05 问题解析--通过一个方法完成学生和专业的双向关联
    108 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 03 新增功能及实现 04 问题解析--数组未实例化造成的空指针异常
    107 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 03 新增功能及实现 03 编写方法完成学生个数统计功能
    106 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 03 新增功能及实现 02 新增属性完成学生信息存储
    105 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 03 新增功能及实现 01 新增需求及分析
    session与cookie的区别和联系
    session和cookie的区别
    Web服务器主动推送技术
    webSocket的场景应用
    TCP、Http和Socket 优劣比较
  • 原文地址:https://www.cnblogs.com/baimh/p/11383058.html
Copyright © 2011-2022 走看看