美文网首页
让我们聊一聊Jenkins的自动化部署

让我们聊一聊Jenkins的自动化部署

作者: 郭之源 | 来源:发表于2017-07-27 18:16 被阅读602次

    1.Jenkins简介

    Jenkins是一个可扩展的持续集成引擎,是一个CI系统。主要用于:

    1. 持续、自动构建/测试软件项目
    2. 监控一些定时执行的任务

    2.Jenkins的安装

    对于初学者可以直接下载jenkins.war文件,Jenkins官网https://jenkins.io/download/:

    Jenkins下载页面.png
    下载到本地后可以直接运行: java -jar jenkins.war
    注意:机器要求已经安装jdk,并配置环境变量!第一次启动的时候会给你一个密码,留意控制台输出!
    还有一种安装方式就是将下载的war包文件部署到 servlet 容器,然后启动容器,在浏览器的URL地址栏中输入类似http://localhost:8080/这样的地址即可:
    Jenkins首页.png

    3.Jenkins配置

    1. 安装必要的插件
      找到【系统管理】-》【插件管理】-》【可安装插件】,搜索安装Maven集成插件Maven Integration plugin和SSH插件用于发送文件Publish Over SSH,以后用到其他插件可以自行安装。
    2. 配置全局工具(JDK、Git、Maven等)
      找到【系统管理】-》【Global Tool Configuration】:
    全局工具配置.png

    在这个页面你可以安装你是用到的工具,如JDK、Git、Maven等,它也支持自动安装,但不知道为什么我的自动安装未成功,所以选择了手动安装,然后指定了安装目录,配置了环境变量等。

    1. 系统配置
      这里可以配置Jenkins的主目录、工作空间主目录、构建记录根目录、Maven相关配置、publish over SSH相关配置等:


      系统配置.png

      注意配置SSH Server时候要先将远程服务器的公钥(id_rsa.pub)内容放到Jenkins服务器的authorized_keys中:


      ssh公钥.png
      到这里我们使用到的配置都Ok了,当然还有其他的好多配置项,如:Configure Global Security、管理用户等,如果有需要的话,也可以进行配置。

    4.使用Jenkins部署jar包

    1. 首先创建一个git仓库,为了方便我就直接在git.oschina.net上创建了:https://git.oschina.net/watermin/jenkins-deploy (项目是公开的需要的同学可以直接看代码),git clone 到本地后,创建一个Maven项目,然后提交上去就行。
      注意:项目打包的时候用到了一个插件maven-assembly-plugin,可以将依赖的jar包都打包到lib下
    2. 在Jenkins管理页面【新建】项目


      image.png
    3. 配置:


      部署jar包的配置.png

      其中从上向下依次是:

    • 配置项目名称及描述
    • 源码管理: 我使用的是git,配置git仓库地址、分支等
    • 构件触发器:这个我也不太懂,看其他项目都是选了第一个Build whenever a SNAPSHOT dependency is built
    • 构件环境:这个我没有选择任一个
    • Pre Steps: 构件本项目之前需要做的操作,通常如果本项目依赖其他项目的jar,可以在这执行maven命令将需要的jar安装到maven仓库中
    • Build :执行maven命令将项目进行打包
    • Post Steps : 构建后期做的一些操作,如:将软件包发送到指定的服务器进行部署、执行一些linux命令等,本项目就是使用了Send files execute commands over SSH将jar包发送到指定的服务器,并在远程服务器上执行一些必要的Linux命令:
    cd /web/apps
    dir=/web/apps/jenkins-jar-test
    TIME=`date "+%Y%m%d%H%M%S"`
    FILENAME=jenkins-jar-test.$TIME.tar.gz
    if [ -e "$dir" ];then
        tar -zcf $FILENAME  jenkins-jar-test/
        mv $FILENAME  /web/bak
        rm $dir -rf
    fi    
    mv jenkins-jar/target/jenkins-jar-test-assembly.tar.gz  ./
    rm -rf jenkins-jar
    tar xf  jenkins-jar-test-assembly.tar.gz
    sh jenkins-jar-test/startup.sh restart
    
    1. 测试
      到这里项目就配置完成了,然后【保存】,【立即构建】,查看控制台输出,如果顺利的话到此就实现了jar包的自动化部署,在浏览器输入:远程服务器ip:8081,查看项目有没有启动成功!
      访问项目页面.png

    5.使用Jenkins部署war包

    1. 安装Tomcat
      如果打的是war的话,一般我们会选择部署到tomcat上,所以首先你要在远程机器上安装一个tomcat,具体安装步骤我就不絮叨了。

    2. 在本地的建立一个Maven项目
      打包成war包(悄悄的告诉你这里已经有了https://git.oschina.net/watermin/jenkins-deploy.git

    3. 新建项目
      同上

    4. 配置

      部署war包的配置.png
      其他的配置和上面部署jar包的配置一样,唯一不同的就是Post Steps中的Send files or execute commands over SSH的配置:
      Source files: Jenkins 机器上的war包
      Remote directory : 远程服务器上tomcat的ROOT路径
      Exec command :在远程机器上指向的Linux命令
    DIR=/usr/local/server/jenkins-war-tomcat
    WAR_NAME=jenkins-war-test.war
    JENKINS_DIR=/root/.jenkins/workspace/jenkins-war/jenkins-war/target
    TIME=`date "+%Y%m%d%H%M%S"`
    ps -ef | grep ${DIR} | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{print $2}' | xargs kill -9 2>/dev/null
    rm -rf work/*
    pushd ${DIR}/webapps/ROOT/
    [ -e ${WAR_NAME} ] && mv ${WAR_NAME} ../../bak/${TIME}-${WAR_NAME}
    pushd jenkins-war/target/
    pwd
    mv  jenkins-war-test.war   ../../
    pushd ${DIR}/webapps/ROOT/ 
    rm -rf jenkins-war/
    jar -xf ${WAR_NAME}
    cd ${DIR}
    ./bin/startup.sh
    
    1. 测试,访问远程机器Ip:8082测试是否启动成功。

    哈哈,到这里jar包、war包的在Jenkins上的配置已经全部完成了,同学你的成功了么,如果有问题欢迎骚扰,吃饭去了,see you !!

    相关文章

      网友评论

          本文标题:让我们聊一聊Jenkins的自动化部署

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