zoukankan      html  css  js  c++  java
  • jenkins自动化部署项目8 -- 新建job(服务代码部署在linux上)

    jenkins(windows) ----> 应用服务器(linux):

    1。后台java服务:

    与部署在windows上不同的是,这里我选择了在【构建后操作】中使用ssh向远程linux服务器传送jar包和需要执行的命令

    sh /root/home/scripts/demo.sh 8007
    cp -r /home/soft/project/sr_f5_manage/sr_f5_manage-0.0.1-SNAPSHOT.jar /home/soft/jarpackage
    #每次构建都会有日志,为了不越来越多,每次运行项目之前会清空下这个文件nohup.out
    cp /dev/null nohup.out cd /home/soft/jarpackage nohup java -jar sr_f5_manage-0.0.1-SNAPSHOT.jar & sleep 10
    #此处之所以加上sleep 10 是因为一开始虽然构建成功,但是netstat -nlp | grep 8007查看进程发现找不到进程,因为项目启动需要时间,尝试着sleep发现就好了

    BUILD_ID=dontKillMe:网上很多人说构建结束,服务进程会被kill,需要加上这个才行。我试了下,不要这个时进程也不会被kill

    #这个就是上面的demo.sh脚本,根据项目端口查找进程,然后kill掉
    port=$1 if [ "${port}" == "" ];then exit 1 fi #根据端口号查询对应的pid,端口号在执行脚本时做为参数 pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F "/" '{ print $1 }'); #杀掉对应的进程,如果pid不存在,则不执行 if [ -n "$pid" ]; then kill -9 $pid; fi

    ps:这样配置之后,构建还是会有问题,如图。jenkins不会正常结束构建,而是直到超时:

    这时就需要在【高级】选项那里勾选上Exec in pty,这样就可以正常了。参考地址:  https://blog.csdn.net/u013066244/article/details/52788407

     2.前端:我们前端使用tomcat,和后端没什么不一样,只有配置的脚本不一样。如图,因为比较简单,就不单独贴出来了

    图中第一行命令是关掉tomcat服务,如果tomcat本身没有运行则构建会报错,因此需要先判断下tomocat服务是否正在运行,我直接用上面的demo.sh脚本去代替这一步

    sh /root/home/scripts/demo.sh 8080

    Source files的匹配规则可以了解下:

    * matches zero or more characters, ? matches one character.

  • 相关阅读:
    测试开发趋势 + PyUnit测试框架 + Robot Framework
    python 面经
    持经达变,不固而中
    数据库、网络、Linux面经
    兴趣培养方向
    133天
    Python学习第132天(Django2内容增加)
    Python学习第131天(Django之ORM一对多操作练习)
    Python学习第130天(Django中ORM一对多的增删改查)
    Python学习第129天(ORM单表查询、模糊查询)
  • 原文地址:https://www.cnblogs.com/yy-cola/p/9435950.html
Copyright © 2011-2022 走看看