博客专区 > 单蛙的博客 > 博客详情
jenkins通过 ssh插件部署war包
单蛙 发表于2年前
jenkins通过 ssh插件部署war包
  • 发表于 2年前
  • 阅读 284
  • 收藏 1
  • 点赞 0
  • 评论 0

330元/年抢阿里云香港云服务器,节省80%出海成本>>>   

摘要: jenkins通过 ssh插件部署war包

Jenkins自动化部署调研文档

一 ,文档概述

   根据目前公司部署的要求,本文档主要介绍Jenkins通过获得部署war包,实现java项目的自动化部署。

   需要告知的一点是:

  1. Jenkins常用的情况是,通过集成maven/antsvn/cvs实现项目的自动下载,自动编译,自动测试,自动打包,自动部署。

  2. Jenkins也能能通过ssh执行shell的方式,对其他项目(如c++项目)进行自动化部署。

   本次调研介绍的是war包通过Jenkinsssh插件对java项目进行自动部署。

 二 ,本次测试步骤简介

  1.       使用svn进行源码war包管理
      

         testtest1分别为svn中两个文件夹,放置了名称都为hello.war,代表一个javaee项目的两个版本。

      其中test中的hello.war前台jsp页面输出  Hello,world!

         Test1中的hello.war前台jsp页面输出 Hello,CCC!

      2.     Jenkins安装简述

             Jenkins使用java开发,所以从官网上下载相应jenkins.war,放置在tomcatwebapps下面,运行  

             tomcat后访问。访问例子:http://localhost:8080/Jenkins/

    3.    安装Jenkins ssh 插件

       系统管理管理插件可选插件→Artifact Uploaders→Publish Over SSH

    4.   对Jenkins进行相关的配置(测试使用,没有设置登陆验证相关的内容)

        配置jdk,在系统管理-系统配置中,如下图:

     

         配置发送邮件的地址,这里测试,写了自己的,实际中会是一个系统账号

        

         配置smtp邮件配置,用以发送邮件使用

        

         配置Jenkins ssh功能

        

         其中,ssh到ip地址为192.168.100.226,root用户。并把ssh的文件放到/jenkins/data目录下

    5.   编写shell服务器端执行脚本

        因为测试使用,shell脚本没有经过优化,简单的实现了功能,实现的功能为:

        杀掉tomcat的进程,把线上tomcat中项目的war包和文件包删除掉,放入新的war包,并且启动

             tomcat.

   

    6.   新建名称为testjob

            Jenkins能创建不同类型的构建方式,主要取决于,项目的构建需求,如下图,本次测试的目的是部署

            war包,只创建了自由风格的构建方式

      

    7.   配置刚刚创建的自由风格job

        配置源码获取方式,这里获取的是svn上的war

       

       

        构建方式选择ssh方式,如下图配置

       

         这个地方配置,选择在系统配置中配置的server name,选择从jenkins的workspace为根目录的文件路径

         remove profile,要去掉的路径前缀

         Exec command:执行在ssh端的sh脚本文件的路径

        设置构建出现问题时的接收邮箱地址

 

     8.  创建另一个job,在新建中复制testjob成一个test1job,这时设置test1svn地址为

              svn://192.168.100.226/test1testsvn地址为192.168.100.226/test

  这样就创建了一个新的名称为test1job

   Testtest1两个job的作用分别为:

   Test这个job,构建后,tomcat中运行的hello项目页面为Hello,World!

   Test1这个job,构建后,tomcat中运行的hello项目页面为Hellp,CCC!

  这样就好比一个项目的两个版本,比如当前运行的项目为test1 job构建的hello项目,有一个新的版 

  本的test1种的hello项目的新war包需要部署,通过test1这个job对新的svn地址为

   svn://192.168.100.226/test1种的hello项目进行自动部署,toncat中的项目变成了新的test1

   hello项目

实验如预期一样,在进行各自的自动部署后,出现了相对应的页面输出

     9.   怎么样进行部署?

       在进行了上述的所有配置之后,以后的项目进行部署时,只需要复制一个job,改变下svn的地址成新版

       的war包地址,点击创建,自动完成war包传递,tomcat的关闭和重启,部署结果返回等。如下图:

       构建时操作

      

       当构建成功时,前面的小球为蓝色,当部署出现问题时,前面的小球变成红色。

 

         10.    Jenkins记录了每次构建的信息,服务器端shell执行中的bug,构建的步骤,同时在构建出现不稳

        定的时候,对相关人员进行邮件的通知

        并且在每次构建中可以读取控制台的输出,源码文件的变更等信息。

                  


          11.   Jenkins的回滚和其他

 暂时还没有发现jenkins的自动回滚功能(不代表jenkins没有,因为jenkins可以对每次构建的代码进

 行tag,这很可能是用来回滚使用的,这还需要测试),因为jenkins是基于svn的最新版本进行构建。

 目前考虑可以每个项目有两个job,一个job是前一次构建的job,一个job是新的job,如果新的job

 现的很重要的问题,短期内无法恢复,直接执行上一次执行的job,对项目进行回滚。

  Jenkins能对代码自动的完成测试,并且集成很多插件,完成性能分析等。

       12.  个人感觉,jenkins啥也不做,只是做了配置管理,所有的工作都由其他的软件或者自己的插件

             完成。


共有 人打赏支持
粉丝 15
博文 40
码字总数 14305
×
单蛙
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: