设为首页 收藏本站
查看: 913|回复: 0

[经验分享] Jenkins+SVN+Maven自动化部署环境搭建

[复制链接]

尚未签到

发表于 2018-1-9 06:20:24 | 显示全部楼层 |阅读模式
前言
  因今年公司新产品线较多,为了降低耦合,达到业务分离、重用,提高内部开发效率的目的,采用了基于服务组件、前后端分离的架构体系。与之前传统单应用架构相比,系统部署、配置更加复杂,为了能够频繁地将软件的最新版本,及时、持续地交付给测试团队及质量控制团队,以供评审,所以引入持续集成工具Jenkins,从而实现公司新产品持续集成,自动化部署。

环境准备


  • 操作系统:Windows10
  • Java环境:下载 jdk-1.8.0-131-X64.zip,配置Java环境变量(参考:http://jingyan.baidu.com/article/02027811629b941bcc9ce521.html)
  • Maven环境:下载apache-maven-3.5.2-bin.zip,配置Maven环境变量(参考:http://wiki.jikexueyuan.com/project/maven/environment-setup.html)
  • Tomcat环境:下载apache-tomcat-8.5.20-windows-x64.zip,配置Tomcat环境变量(参考:http://jingyan.baidu.com/article/8065f87fcc0f182330249841.html)
  • Jenkins环境:下载Jenkins2.73.2 for Windows
安装Jenkins


  • 运行下载好的Jenkins安装包jenkins.msi,选择安装路径,点击”安装“,等待安装完成;





  • 安装完成以后,会自动启动浏览器,跳转到Jenkins登录页面。第一次启动Jenkins,出于安全考虑,Jenkins会生产一个随机口令文件,表单中会给出管理员口令文件存放的位置,通过Windows+R,调出运行窗口,将存放口令的文件路径粘贴到输入框,点击回车,快速打开文件,将文件中的口令输入到表单中,点“Continue”继续;



  • 安装Jenkins官方建议的默认插件;



  • 创建第一个管理员用户,创建完成以后,就可以用这个用户登录到Jenkins系统中。


安装插件
  下面介绍实际部署中所用到的几个插件,安装方法:系统管理->管理插件。


  • 安装Deploy to container Plugin(自动化部署插件)
  • 安装Maven Integration Plugin(Maven集成插件)
  • 安装Publish Over SSH Plugin(SSH远程发布插件)
  注意:因插件安装以后,需要重启Jenkins才能够使用。所以在安装插件时,可以勾选安装完成后重启Jenkins。如果不小心忘记勾选,也没有关系,可以在浏览器网址端口后面输入/restart来重启Jenkins,其它的命令,可参考系统管理->Jenkins CLI。


系统配置
  插件安装完成以后,我们需要对系统进行配置。


  • 首先进行全局配置,系统管理->系统设置:
Jenkins Location配置
  Jenkins URL项保持默认即可,填写系统管理员邮件地址。(注意:这个如果不填写的是发送不了邮件的,测试邮件发送时会报:“553 Mail from must equal authorized user”错误。)


邮件通知配置
  填写“SMTP服务器”、“用户默认邮件后缀”,然后点“高级”,勾选“使用SMTP认证”,填写邮箱用户名、密码和SMTP端口,接着勾选“通过发送测试邮件测试配置”,填写接收邮件的邮箱,点击“测试”,出现“Email was successfully sent”表明邮件通知配置成功。


SSH remote hosts配置
  SSH远程主机配置,主要用来通过SSH方式远程发布,在后面的章节会详细介绍。


Publish over SSH配置
  主要是用来通过SSH方式远程发布,在后面的章节会详细介绍。



  • 然后,进入系统设置->Global Tool Configuration:
SonarQube servers配置


Maven配置
  配置Maven主要是配置Maven的settings.xml文件,Jenkins在构建Maven项目时需要依靠该配置文件来执行Maven,其配置如下:


JDK配置


SonarQube Scanner配置


新建项目
  新建一个Maven项目


项目配置

源码管理


构建触发器
  Jenkins提供了6中构建触发器,分别是:


  • build whenever a snapshot dependency is built ,当job依赖的快照版本被build时,执行本job;
  • 触发远程构建 (例如,使用脚本);
  • build after other projects are built 当本job依赖的job被build时,执行本job;
  • build periodically 隔一段时间build一次,不管版本库代码是否发生变化,通常不会采用此种方式;
  • GitHub hook trigger for GITScm polling 通过Github钩子触发;
  • poll scm 隔一段时间比较一次源代码,如果发生变更,那么久build。否则,不进行build,通常采用这种方式。


构建(Build)
  调用Maven “clean install”命令。


增加一个构建后步骤(自动部署)
  因在Windows环境下部署,所以选择Execute Windows batch command。

  自动部署的思路:设置全局变量(项目名称,构建新包路径,配置文件路径,Tomcat路径等)->关闭Tomcat->删除Tomcat中旧版本包->拷贝新包到Tomcat应用目录->启动Tomcat(解压包)->关闭Tomcat->替换配置文件->删除War包->启动Tomcat,自己写的脚本代码如下:

  

@echo off  

  
rem 设置全局变量
  
set prj_name=estate
  
set package_path=D:\AutoDeployment\Package
  
set config_path=D:\AutoDeployment\config
  
set command_path=D:\AutoDeployment\command
  
set tomcat_home=D:\tomcat\apache-tomcat-7.0.59
  

  
set startup_command=%tomcat_home%\bin\startup.bat
  
set shutdown_command=%tomcat_home%\bin\shutdown.bat
  

  
rem 关闭tomcat
  
call %shutdown_command%
  

  
rem 暂停10s
  
ping -n 10 127.0.0.1
  

  
rem 删除旧包目录
  
rd /s /q %tomcat_home%\webapps\%prj_name%
  

  
rem 新包重命名
  
d:
  
cd D:\AutoDeployment\Package\estate
  
ren register-web.war %prj_name%.war
  

  
rem 拷贝新包到发布目录
  
copy %prj_name%.war %tomcat_home%\webapps
  

  
rem 启动tomcat
  

  
call %startup_command%
  

  
rem 暂停10s
  
ping -n 10 127.0.0.1
  

  
rem 关闭tomcat
  
call %shutdown_command%
  

  
rem 删除war包
  
rd /s /q %tomcat_home%\webapps\%prj_name%.war
  

  
rem 替换配置文件
  
copy %config_path%\%prj_name% %tomcat_home%\webapps\%prj_name%\WEB-INF\classes
  

  
rem 启动tomcat
  
call %startup_command%
  

  
rem 关闭窗口
  
exit
  

构建设置(邮件通知)


构建测试
  点击“立即”构建,maven 打包成功,执行脚本无误以后,整个自动化部署就成功了。



结语
  按照以上步骤,可以成功完成自动化部署环境搭建。网上很多教程,在“构建后步骤”这一步直接贴出Execute shell,且未说明是在什么操作系统环境下,注意直接拿来用在Windows环境下面是不行的。Jenkins软件帮助功能做的非常强大,在每一项配置后面,都会有一个帮助菜单,所以当你不确定该项如何填写时,这个菜单是最好的参考工具。后面我将会继续介绍通过SSH远程发布以及Jenkins与SonarQube(开源代码质量管理系统)集成,欢迎一起交流学习。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-433124-1-1.html 上篇帖子: Jenkins SVN WebDeploy远程服务器 下篇帖子: 安装部署jenkins [一]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表