Jenkins自动化部署(Windows服务器)
背景:
一直部署SSM项目,每次都是 在tomcat的webapps目录下,将项目压缩成zip格式压缩包,拷贝的windows服务器的tomcat的webapps目录下,解压缩,覆盖,启动tomcat。每次都是这样,很苦逼。最近不是很忙,用一天时间搞了一下自动部署,只是将整个流程自动化了。
使用工具:Jenkins + Maven + Git + freesshd(Windows搭建ssh和sftp工具) + Tomcat
首先介绍一下思路:
1.本地git 获取最新的代码
2.覆盖必要的文件(如:spring-shiro.xml 因为我的开发环境使用的shiro文件与生成环境使用的shiro文件不一致。)
3.本地执行maven命令打成war包
4.通过sftp相关工具 将war包上传到服务器
5.管理服务器上的Tomcat,备份之前的项目(可以根据日期),覆盖新的war包
6.tomcat启动
其实这不是最好的方法,大家也都知道,博客大佬们都是 在服务器上获取最新代码,打包,测试,部署。不需要通过本地将war包上传到服务器。后面在尝试这种方式。
接下来回归正题:
jenkins的下载和安装。
下载的话,可以选择下载war包或者windows的msi格式。下载msi格式可以省去很多麻烦的步骤。而且自动会作为windows服务存在。
下载war的话,就需要jenkins.war 放到tomcat的webapps目录下。
msi安装的话,基本上都是傻乖式安装,一路next就行。
jenkins.war 形式直接启动tomcat 就行。
接下来第一次访问,需要安装一些插件,直接选择默认的即可,以后需要插件可以在单独安装。
等待插件安装完成
设置admin账户
freesshd 安装
安装Window提供的SSH服务的软件,直接看这个链接就OK了
jingyan.baidu.com/article/f7f…
需要特殊注意的一个地方,点击 user 添加用 时候 ,SFTP这一项必须要打上勾,因为我们 需要 通过SFTP 将本地 文件上传到 windows 服务器。
jenkins 插件 Publich overSSH
我们通过Public overSSh 插件 将本地window 和 windows服务器连接起来。
1.首先是安装插件 ,选择 系统管理 -> 插件管理
在可选插件 中搜索,找到,安装即可,安装完,重新启动jenkins
2.然后再系统管理下 -》 找到 系统设置,拉到最下面,配置 Publish over SSH
如果点击Test 失败,可能原因 SFTP 没有连接通,这个一定要打开。
搭建
在jenkins 创建一个job,
2.点击 advanced , 配置工作空间
这里点击构建 ,执行windows批处理命令
填写window命令
f: 进入F盘
cd \ 进入F盘根目录
cd software\lowrisk_product\CMS-master 进入该文件夹
copy CMS.properties F:\software\lowrisk_product\CMS-master\CMS\build\dev\resources\properties 覆盖文件
copy spring-context-shiro.xml F:\software\lowrisk_product\CMS-master\CMS\src\main\resources\spring 覆盖文件
cd CMS 进行项目文件夹
mvn clean install package 打包复制代码
这里,没有显示从git获取最近代码,实际上这个操作,我通过ide完成了。我配置git的每次都把之前删除了,然后在clone,这样很慢,所以没用。
3..在项目中的构建后操作,增加构建后操作步骤,选择send built artifact over SSH选项
远程服务器的目录是指的:
远程服务器上的脚本:
@echo off
set JAVA_HOME=E:\app\jre\jre8
E:
cd \
cd app\appserver\apache-tomcat-7.0.82\bin
::关闭tomcat
call shutdown.bat
cd ..
cd ..
::
set SourceFile=E:\app\appserver\apache-tomcat-7.0.82\webapps\CMS.war
if exist %SourceFile% (
:: 备份文件,并删除
cd cms_version
::删除当前文件夹下所有文件
rd /s/q %date:~0,4%%date:~5,2%%date:~8,2%
:: 创建日期文件夹
mkdir %date:~0,4%%date:~5,2%%date:~8,2%
::备份文件
copy E:\app\appserver\apache-tomcat-7.0.82\webapps\CMS.war %date:~0,4%%date:~5,2%%date:~8,2%\CMS.war
::删除旧文件
del E:\app\appserver\apache-tomcat-7.0.82\webapps\CMS.war
::复制新文件
copy C:\Users\Administrator\app\CMS\CMS.war E:\app\appserver\apache-tomcat-7.0.82\webapps
) else (
::复制新文件
copy C:\Users\Administrator\app\CMS\CMS.war E:\app\appserver\apache-tomcat-7.0.82\webapps
)
:: 删除文件
del C:\Users\Administrator\app\CMS\CMS.war
:: 休眠40秒
ping 127.0.0.1 -n 40 >nul
E:
cd \
cd app\appserver\apache-tomcat-7.0.82\bin
:: 启动tomcat
call startup.bat复制代码
4.然后在通知上可以 选择 钉钉通知器配置
点击完成,保存,。点击构建即可。