jenkins自动部署
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jenkins自动部署相关的知识,希望对你有一定的参考价值。
一.说明
经过一段时间的研究与讨论(关于自动化部署及自动化运维),初步确定方案,并已经开始实施。
根据目前公司的服务器环境及系统架构,以及当前市面流行趋势,对工具的使用进行了确定,为:SVN------>Jenkins------>maven------->ansible。
Svn负责代码存储,作为代码仓库;
Jenkins负责获取svn代码并将maven私服打包后的war发布到应用服务器;
Maven负责构建&打包;
Ansible负责批量管理服务器,如批量执行脚本,批量执行命令,批量管理应用等;
Ansible tower:ansilbe图形化管理界面,但考虑到需要收费的情况,选择其他工具;
runDeck:图形化管理,结合ansible,可以更好的进行自动化运维,批量管理;
以上是对于今后我们要使用的工具说明,以及对以下要说的东西的一个铺垫,避免有理解错误的情况。
二.自动部署
a) 环境搭建
目前关于自动部署我们使用的是windows环境,之所以使用windows有一部分原因是连接vpn的便利性,在linux下连接vpn做过测试,连接不上ipsec/l2tp协议,可能跟ucloud本身的虚拟机有关系,为了不浪费更多的时间,还是决定在windows上搭建环境。
b) Jenkins安装及配置
官网下载jenkins安装包:
http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/windows/jenkins-2.25.zip
下载后解压安装包,运行msi文件安装;
安装完毕后会自动打开localhost:8080页面,确保本地8080端口没有被其他程序占用;
Jenkins需要java,检查服务器是否已经安装对应jenkins的java版本;
进入jenkins界面,安装maven插件,安装deploy插件;
配置global setting:
Jdk路径:
Maven安装路径:
基本的配置就差不多了,有用到其他的插件或者需要配置其他的东西,后面会说;如果想要修改jenkins的默认路径,可以在系统配置中修改:
c) 配置VPN连接SVN代码库
新建vpn连接:
配置如图;具体方式可找徐林强找教程;
配置jenkins连接SVN代码库:
新建一个项目test:
配置svn连接地址,账户及密码:
如果有红色报错,说明地址或者vpn连接有问题,检查vpn连通性及账户是否有svn的访问权限;
d) 构建方案(Maven、Ant、自由构建)
我们使用的是maven的构建方式,符合项目的现状;或者可以自由构建,包含maven、ant、shell等构建方式;
e) 打包测试
配置完成后进行打包测试:
显示success,则打包成功,到jenkins目录下查看:
可以看到war包已经成功打包到服务器jenkins的workspace目录;下面测试自动发布;
f) 自动发布测试
i. 脚本发布
脚本发布需要配置bat脚本,因为是windows的,由于需要经由脚本发送war包到linux系统,所以我找了一个工具,pscp:
Jenkins的配置:
打包发布测试:
ii. Tomcatmanager发布
Tomcat manager也就是使用jenkins的deploy插件进行发布,在构建完成后,将war包发布到远程服务器的tomcat webapps目录下,这个需要配置tomcat的conf/tomcat-user.xml文件,添加tomcat manager user配置:
发布成功后会在webapps目录下有war包,并且tomcat会自动重载war包:
Jenkins的配置:
War files是jenkins maven构建打包后将war包存放的目录;
Context path是war包发布到tomcat服务器的webapps目录下面后的war包名,或者说项目名,自定义名称;
Tomcat url是tomcat服务器的地址及端口,确保tomcat-user.xml文件已经配置,并且tomcat已经重启;
自动deploy war包测试:
这里显示失败是因为war包发布到tomcat后,由于是测试环境的原因,没有相关的项目,所以war包加载失败,但是war包是成功发布到服务器上面了;
到这里,我们的自动部署就可以宣告成功了;
g) 发布成功邮件通知
邮件通知根据需要进行配置;
以上是关于jenkins自动部署的主要内容,如果未能解决你的问题,请参考以下文章