Jenkins自动化部署(Windows服务器)

5,849 阅读4分钟

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的下载和安装。

jenkins官网地址: jenkins.io/download/

下载的话,可以选择下载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 没有连接通,这个一定要打开。

搭建

  1. 在jenkins 创建一个job,

2.点击 advanced , 配置工作空间

  1. 这里点击构建 ,执行windows批处理命令

填写window命令

f:                   进入Fcd \                    进入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.然后在通知上可以 选择 钉钉通知器配置

点击完成,保存,。点击构建即可。