• 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.

  • 相关阅读:
    ASP.NET 取得 Uri 各项属性值
    js获取当前时间显示在页面上
    脚步提示及跳转
    整体刷新和局部刷新frameset窗口
    asp.net 字符串过滤
    .net 获取当前网页的的url
    优酷去广告最新的关于如何屏蔽优酷广告的方法
    bat命令集合
    修复IE
    网易见外工作台(AI),语音转文字,快速制作字幕,中英翻译,在线修改字幕
  • 原文地址:https://www.cnblogs.com/yy-cola/p/9435950.html
Copyright © 2020-2023  润新知