美文网首页Linux服务器环境部署
Linux服务器环境部署系列07

Linux服务器环境部署系列07

作者: hu1991die | 来源:发表于2017-11-10 17:17 被阅读25次

    基础组件安装:

    一、配置Jenkins持续部署

    何为持续部署,顾名思义。就是通过前期简单的配置使之能持续自动地完成测试、构建、部署等一系列步骤。如果想具体了解的话可以参考阮一峰大神的这篇文章http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html

    二、背景介绍

    东家有这么一个项目,该项目涉及到四个模块,并且依次存在一定的依赖关系,然后都是通过git工具进行版本控制管理,所以在编译打包的时候,建议最好是遵循依赖关系进行顺序打包,不然有可能会出现编译失败不通过的情况。
    项目依赖关系:


    image.png

    三、配置步骤

    3.1、左侧导航栏选择【新建】

    image.png

    3.2、输入item名称(这里以git-workbench-main为例,如果出现重名会提示),选择【构建一个自由风格的软件项目】,当然也可以选择【构建一个maven项目】,我通常习惯第一种。

    image.png

    3.3、选择部署节点(这里默认选择master节点就行了,如果配置了多个节点,然后又需要构建到其他节点那么这个地方修改一下就可以了)

    这里需要特别说明一下,请允许我举个栗子。

    a>假设目前有台机器A【10.0.4.12】,如果A机器安装了jenkins,然后应用(tomcat应用或者dubbo服务)也需要部署到A机器,则相当于只有一个节点【master】(即单节点),这里填master即可。同时A机器需要配套安装JDK环境(运行java程序),Maven环境(编译打包),git环境(拉取仓库代码)。

    b>对于上述第一种单节点环境,如果我们的应用恰巧也是单节点部署,那不会有什么问题;但是现实问题显然不会这么简单,如今的互联网应用基本都要支持高可用(然而要支持高可用,集群肯定是少不了的),假设现在有两台集群的话,机器A【10.0.4.12】和机器B【10.0.4.13】,倘若采用第一种方案,那么就需要机器B也要安装jenkins,这样一来机器一多的话就需要每台机器都装上jenkins,显然有些繁琐。于是乎jenkins【从节点】配置就应运而生。

    有了【从节点】的概念之后,那么我们就可以这样做了,只在其中一台机器上安装jenkins,比如在机器A上安装jenkins,机器B作为jenkins的【从节点】机器(当然从节点机器肯定也需要安装jdk、maven、git基本环境,其实这样一来好像也没简便多少,只是不用再装一个jenkins而已了),然后就可以使用jenkins打包将项目构建到从节点机器了。关于从节点的配置后面会涉及到,这里先卖个关子。

    image.png

    3.4、添加git仓库,如果是多项目,需要安装Multiple SCMs Plugin插件(直接在管理插件里面搜索安装即可),单个项目直接使用选择Git就行。

    image.png

    3.5、继续添加项目(还是添加git),其他照旧。

    image.png

    3.6、添加拉取git代码的凭证

    image.png

    3.7、配置git凭证信息,配置完保存即可

    image.png

    3.8、什么都不用配置,默认就可以

    image.png

    3.9、配置前置步骤(一般用于编译打包需要依赖的项目)

    image.png

    3.10、配置maven编译打包命令和指定pom.xml文件的路径

    image.png

    3.11、配置编写好的shell部署脚本,(需要注意前面需要加上export BUILD_ID命令,不然jenkins会自动kill掉衍生进程,大家可以试一下,jenkins显示构建成功,但是实际使用ps查进程的时候发现进程不存在。)

    image.png

    3.12、关于jenkins自动kill掉衍生进程的问题请参考文章《jenkins中通过execute shell启动的进程会被杀死的问题》

    http://blog.csdn.net/zhengxu189891/article/details/18710155

    3.13、完整的shell部署脚本(deploy_git_workbench_main.sh ):

    基本思路:判断jenkins打包是否成功,杀进程,备份老的部署包,拷贝新的的部署包,起服务。

    #!/bin/bash
    sourcejar=/var/lib/jenkins/workspace/git-workbench-main/lms-workbench/deploy/target/deploy-1.3.0-assembly.tar.gz
    jarname=deploy-1.3.0-assembly.tar.gz
    target=/data/program/lms-workbench
    errorlog=/data/logs/jenkins/error_dubbo.log
    keyword="/data/program/lms-workbench"
    
    echo "start check jar is exits?"
    echo "$sourcejar"
    # 判断 jenkins 打包是否成功,target目录是否存在
    if [ ! -f "$sourcejar" ]
    then
       echo "jar is not exists" >>$errorlog
       exit 0
    fi
    
    #stop old dubbo server
    
    #compel close dubbo server
    pid= ps aux |grep $keyword |grep -v grep |awk '{print $2}'
    if [  -n "$pid" ]
    echo $pid
    then
      echo ========kill dubboservice begin==============  
      echo $pid  
      kill -9 $(ps aux |grep $keyword |grep -v grep |awk '{print $2}')
    fi
    
    # enter into dubbo servier diretory
    cd $target
    
    #delete old file
    \rm -r deploy-1.3.0
    \rm $jarname
    
    #copy new file to diretory
    cp $sourcejar ./
    tar -zxvf $jarname
    
    sleep 5
    
    # start dubbo server
    sh /data/program/lms-workbench/deploy-1.3.0/bin/restart.sh
    
    echo "=== start dubbo service"
    

    到这里,使用jenkins进行项目的构建基本就可以了,下一篇文章会介绍从节点和SSH免密登录的配置方法,敬请期待.......

    相关文章

      网友评论

        本文标题:Linux服务器环境部署系列07

        本文链接:https://www.haomeiwen.com/subject/uypbmxtx.html