zoukankan      html  css  js  c++  java
  • 服务器搭建——jenkins构建后应该做什么(3)

    构建后,建站问题

    问题1 构建后应该做什么

    在成功构建后,其实就生成了一个war包或者 jar包

    但是

    始终访问不了 8080 和8081 ,即使添加了安全组和防火墙设置!。

    防火墙centos 7 端口问题

    这时候思路是错的,虽然前辈和我说,端口打开了,如果访问不应该是拒绝,而是404。

    理论上好像是这样,但是如果端口没有进程,在ecs上就是拒绝访问。

    telnet 网址 8080(端口)

    解决方向

    • 确定打包方式
    • 编写脚本

    问题2 Spring Boot 打成war包的方法

    war包打包

    搭建**jenkins实现自动化部署

    至此war 包部署完成?

    但是我有一个问题,我发现好像本地项目测试的时候如果加了这一串代码十分不方便啊,因为也不能用内置tomcat了。

    就是这样,在添加tomcat配置去配置。这样好麻烦啊。
    但是这样我服务器上已经全部配置完了。
    github连服务器,生成war。自动部署。
    其中** url * 是 ip/war包名称/+requestmaping
    怎么去war包 名称呢? 建议百度,我去jar包了,
    因为jar包内嵌tomcat,配置url很方便…

    好的,其实war包的url,ROOT是会隐藏的。所以你可以删除原来的ROOT,更名就行。

    问题3 jar包怎么弄

    但是! 生活继续。看jar怎么部署,毕竟很多公司主流都是这个。
    但是我有另一个问题。因为我是个人服务器+个人项目。项目集成难道也用分块jar去实现?(目前还不懂)

    linux 如何运行和停止jar

    查找端口占用kill 进程

    问题3.1 误杀

    netstat -lnp|grep 80

    kill -9 端口

    原来版本v 1.0

    mvn clean
    mvn package
    
    BUILD_ID=DONTKILLME
    port=80
    #根据端口号查询对应的pid
    pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');
    
    #杀掉对应的进程,如果pid不存在,则不执行
    if [  -n  "$pid"  ];  then
        kill  -9  $pid;
    fi
    
    java -jar /root/.jenkins/workspace/webdemo/target/demo-0.0.1-SNAPSHOT.jar
    

    用脚本kill 80 端口时候会误杀8081 8080 (这边我把80端口给留下来给项目了,吧8081给了jenkins,好麻烦啊,不如直接改个什么3562之类的不相关的就好了。)

    BUILD_ID=DONTKILLME
    port=80

    根据端口号查询对应的pid

    pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');

    杀掉对应的进程,如果pid不存在,则不执行

    if [ -n "$pid" ]; then
    kill -9 $pid;
    fi

    于是我找到了lsof 指令 lsof -i:80

    效果如下

    效果不错,比上面好多了,上面那个是aliyundun ,只要筛选就可以了

    lsof -i:80|grep java

    问题又来了

    如果我用 -t 参数直接输出端口很好用啊,但是可能会把aliyundun 包含一起杀死

    当然也有解决方法,用awk去提取 lsof -i:80|grep java 这个就行了。

    但是我偷懒了….

    lsof -t -i:80|sed -n '2,2p'

    效果还行,但是我不保证 aliyundun pid每一次都比java小,我不懂pid机制,下次有问题再说吧

    v2.0

    mvn clean
    mvn package
    
    
    port=80
    #根据端口号查询对应的pid
    #pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');
    
    pid=$(lsof -t -i:80|sed -n '2,2p');
    
    #杀掉对应的进程,如果pid不存在,则不执行
    if [  -n  "$pid"  ];  then
        kill  -9  $pid;
    fi
    
    java -jar /root/.jenkins/workspace/webdemo/target/demo-0.0.1-SNAPSHOT.jar
    

    由于项目比较简单,轻喷

    做到这里就是自动构建。每次上传github需要手动构建。

    还有可以添加的是 构建后的脚本 发邮箱。

    有兴趣的大家加油!!!

    我累了,哪天有这么刚需需要github自动构建我再加吧……

  • 相关阅读:
    解决问题,别扩展问题
    Hystrix 配置参数全解析
    请求合并哪家强
    在Spring-Boot中实现通用Auth认证的几种方式
    Java高级特性之泛型
    一键部署进化史
    JavaScript Alert 函数执行顺序问题
    新版的 Springsecurity request.getRequestDispatcher).forward(request, response); 404 问题,已解决
    maridb 10.3 主从复制,待机情况下从库 cpu 占用率高的处理方法
    springboot 2.0 mariadb hikari-cp连接池
  • 原文地址:https://www.cnblogs.com/EsMussSeinHui/p/11184748.html
Copyright © 2011-2022 走看看