Jenkins 自动化测试部署流程

公司最近正在推进自动化部署经过筛选选定了jenkins 由于前期是公司测试部进行部署安装配置,后期在编译打包部署的时候出现问题后由我来配合进行部署,所以前期的jekins安装等已经有测试弄好  所以前面的安装配置部分我就简单的截图展示一下 重点记录后续的部署操作.

一.jekins安装

 具体点请参考 

转载自

https://blog.csdn.net/qq_29914837/article/details/82779697

(自己偷懒就找了这个,如果老铁不同意请私信我撤下链接)

 

二.插件安装

  1. 安装

     首页>Manage Jenkins >Manage Plugins >Available 

      搜索插件名字  例如Git plugin 

     

     选中之后 点击底部  install without restart 进入安装页面安装完毕后重启jenkins

     插件安装此处只按GIT做demo 其余类似 重点关注的是后续的配置

 2.插件

   这里我列了一些自己用到的插件 仅供参考

   Git plugin   (git)

   Deploy to container Plugin (主要用于后期发布到tomcat)

  Maven Integration plugin  (maven)

  NodeJS Plugin  (node配置)

   Publish Over SSH (主要用于push war包到指定服务器 由于我用的是 tomcat远程部署的方式 所以此处可以不安装 后续会针对远程发布部署的两种方式做介绍  有兴趣可以了解)

  Subbersion Plug-in (svn)

A: git

① git安装  (由于项目是前后端分离的前端是vue 使用的是 vue-element-admin 所以在编译的时候 会提示要配置Git)

选中之后 点击底部  install without restart 进入安装页面安装完毕后重启jenkins

②环境变量

     配置环境变量

    C:\Program Files\Git\bin

    C:\Program Files\Git\mingw64\libexec\git-core

    把上述两个地址复制(可能版本不同这个两个会不一样,核心是记住bin目录下,一个是git-core)

    我使用的是默认的安装地址 根据自己的安装路径配置就行.

③jenkins 全局变量

  首页>Manage Jenkins >Global Tool Configuration

  如果安装成功这里就会出现Git  如果如果安装成功但是没有正确配置环境变量那么这里会爆红

 

B: NodeJS

jenkins中node安装分两种  一种是直接自己安装好的 ,另一种是使用jenkins自带的

直接选择对应的nodejs版本就好了  它会在jenkins tools目录下面给自动下载一个

另一种就是我们自己装好的  选择对应目录就行 如下

 C: maven

 

记得要配置Maven仓库的配置文件哦

D:JDK

 

E : SSH

如果选择跨服务器远程部署的话 可以选择装这个 (不推荐 因为配置操作麻烦,但是有实际需求的可以看看先配置 后面讲两种部署方式的区别)

 

Hostname 是你要部署的目标服务器ip

username 是你服务器登录的帐号  填写完毕后 如果目标服务有密码 则需要

点开 Advanced

选中 Use password authentication,or use differentkey  输入密码

 

 

配置完成后还无法使用需要安装SSH服务

我自己找的是FreeSSHD

又开始偷懒了  我参考的是

https://jingyan.baidu.com/article/f7ff0bfc1ebd322e27bb1344.html

跟着这个操作完毕 因为我这是windows 教程里面写的是 Shell 是linux下的  所以还得吧SFTP点一下 变绿就好

只有这个地方不同  另外SFTP选项里面有个设置路径的  不知道是否可以指定目标服务文件路径  时间仓促没来得及仔细研究

如果有老铁 研究了可以交流学习一下.

到此返回到jenkins里面 配置SSH的地方   点击 Test Configuration 按钮 如果配置无误 会显示 Success 配置完毕.

 

三.自动化部署

新建项目 New Item

点ok

①General

②Source Code Management

配置svn代码仓库地址 

credentials 点Add 填写svn帐号密码

此处是来拉取代码的

 

强力提醒  pom文件里面要配置编译发布的仓储地址 否则会报错

 

<distributionManagement>

        <snapshotRepository>

            <id>nexus</id>

            <name>snapshots</name>

            <url>http://xxx.xxx.xxx.xxx:8081/nexus/content/repositories/snapshots</url>

        </snapshotRepository>

    </distributionManagement>

 

③Build Triggers

 

④Build Environment

选择Provide Node & npm bin/folder to Path

点击NodeJS Installation 选择对应的node就行 可以选择jenkins 的也可以选择自己安装配置的(推荐,因为使用系统插件的报了错没来得及研究)

⑤Pre Steps

由于我们是前后端分离 前端是VUE所以我们的思路是先打包前端 然后吧前端dist下面的文件复制到后端webapp目录下面

我们分为四步

说明 :因为我们的jenkins安装的是windows版本的所以命令都是windows下的   linux下的没有研究  欢迎交流

 

步骤一:  前端vue项目需要各种插件支持所以需要下载  推荐如下方式 常规 npm install由于网络原因可能会下载不了

@echo off
d:
cd D:\jenkins\workspace\VuePlat\bz-platform-client
npm install --registry=https://registry.npm.taobao.org
pause

步骤二:先删除dist目录 然后编译文件

@echo off
d:
cd D:\jenkins\workspace\VuePlat\bz-platform-client
del D:\jenkins\workspace\VuePlat\bz-platform-client\dist
npm run build:prod
pause

步骤三:因为我们的项目dist最终生成的文件夹里面第一次生成完老是会出现.svn这个文件导致后续第二次执行的时候报错,尚未来得及深究所以通过命令判断直接删除

@echo off
dir D:\jenkins\workspace\VuePlat\bz-platform-client\dist | find ".svn"   
if %errorlevel%==0 goto ok       
if %errorlevel%==1 goto end       
:ok
rd D:\jenkins\workspace\VuePlat\bz-platform-client\dist\.svn /s /q
:end
pause

步骤四:复制到后台代码webapp目录下面

注意需要 /s 目的是复制dist下面所有的文件 /y是跳过提醒

xcopy D:\jenkins\workspace\VuePlat\**\dist\* /S /Y D:\jenkins\workspace\VuePlat\**\webapp

⑥Build

开始编译打包后台代码

 

 

 

 

 

 

到此拉取代码编译打包代码所有环节已经结束,下面开始就是远程发布到tomcat了

 

 

 

 

 

 

⑦Post-build Actions

上面说到远程发布的时候有两种,我们先说最简单的一种先配置好如下

war/ear file 是打包完毕后的war包所在路径

containers根据自己的需求选择对应tomcat 这个tomcat需要与目标服务器的tomcat版本一致(尚未测试,此处先这么认为吧 如果有老铁试了可以来交流反馈)

credentials 是目标tomcat的管理员账号密码  (稍后讲如何配置tomcat帐号)

tomcat url 是目标tomcat启动后的访问地址 (tomcat的安装就不介绍了)

信息配置完毕

 

 

注意 : context path的路径就是 发送到目标tomcat 的webapps下面的war包的名字,也就是项目访问的的时候的名字

例如 context path  配的是 myproject  那么发送到目标服务器就是 myproject.war

访问的时候  http://192.168.1.123:8080/myproject

 还有就是 如果配置成 / 那么默认就会打包成 ROOT.war  这样的话  访问项目的时候 就不需要加项目名

 

接下来我们介绍如何配置tomcat权限  如果不配置是无法吧war发送到目标tomcat的.

首先准备好一个纯净tomcat

conf 下面  tomcat-users.xml

 

<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
<user username="deploy" password="password" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
<user username="admin" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

新增这些内容

标红内容里面的帐号密码就是 上面jenkins里面配置tomcat的时候填写的帐号密码

然后 tomcat的   webapps>manager>META-INF 下面 context.xml 把 context 的value 注释掉 保存 启动tomcat

然后 build jenkins 就会自动吧war发送到 目标tomcat的 webapps下面

然后就可以直接访问项目了.

 

番外

 

上面已经可以使用了

 

但是最终发布的时候还有另外一种方式 就是通过SSH方式

前面我们讲了如何 安装SSH    工具用到了freeSSHd  jenkins我们也配置了系统环境

与上面直接远程发布到tomcat不同的是在最后  Post -build Actions 我们选择 send build artivacts over SSH

 

name 里面选择的就是我们在jenkins系统里面配置的ssh

sourcefiles 就是最终打包完毕的 war包目录

其他的就按下图的配置

需要注意的就是 Exec command这个  这个bat所在的目录一定要和 freeSShd工具里面 SFTP上传的目录一样

比如我当时测试默认的就是  C:\Users\Administrator

这个bat的作用就是 把打包好的且已经传到目标服务 C:\Users\Administrator 目录下的war包复制到 tomcat 下面 并且 重新启动tomcat  内容如下  (这种发布的方式我也只是粗略测试能够使用 如果有老铁仔细研究了可以相互交流)

@echo off
cd E:\apache-tomcat-8.5.43\bin
call shutdown.bat

 此处是从jenkins传到目标服务器的文件下复制到 tomcat

call startup.bat
:end
pause

 

 

至此所有自动部署已完毕   欢迎交流指正!

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值