Jenkins linux 操作系统一键部署多节点
背景
- 在数据高并发的今天,单台的物理机的服务部署已经不能满足现状服务的需求了,负载均衡和多节点发布成为了工作中经常要做又是重复性比较繁琐的事情,于是研究了一下如何能够一键部署或者定时自动部署的系统Jenkins。Jenkins帮我们完成了许多重复性的工作,这里也提出了一个概念”持续集成(CI)”。
- 持续集成(CI)是一种软件开发实践,它倡导团队开发成员协同工作,有需要的时候就对代码进行集成,不必要等到软件开发后期才开始集成。通常,每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。
工作准备
- Jenkins下载
- 多台linux操作系统虚拟机或物理机,看自己需求(个人测试使用了两台CenOS7的虚拟机)
- 在操作系统中安装jdk,maven,tomcat并做基础配置(在本文中不做叙述)
Jenkins安装和配置
sudo rpm -ih jenkins-1.562-1.1.noarch.rpm
自动安装完成之后:
/usr/lib/jenkins/jenkins.war WAR包
/etc/sysconfig/jenkins 配置文件
/var/lib/jenkins/ 默认的JENKINS_HOME目录
/var/log/jenkins/jenkins.log Jenkins日志文件
安装完成之后启动jenkins
sudo service jenkins start
启动正常,可以访问:http://localhost:8080
在上图中的路径下找到密码,就可以登录了!
安装插件
系统管理–》插件管理 ,选择相应的插件,进行安装
需要的有
- Publish+Over+SSH+Plugin
- maven
- subversion
环境配置
点击系统管理–》Global Tool Configuration –》找到JDK和Maven的设置位置
这个配置的是Jenkins所在的操作系统中需要配置的jdk和maven的环境
linux就按照linux的地址配置,windows按照windows的配置就好。
接下来配置节点的SSH远程配置,如果一台,就配一个,多台配置多个,这个配置好了才能在配置项目环境中选择发布的节点,可以配置免密登录,也可以使用密码登录,官方配置参考:https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+SSH+Plugin
创建项目
1、填写项目名称,并选择maven项目
填写项目名称以及描述,其他的配置可以先不写,不影响使用,以后有需要可以按照需要配置
2、配置项目svn地址和svn登录鉴权,其余的不需要配置
3、配置Build
4、配置远程发布的服务器信息
执行脚本稍后单独讲。如果需要配置多个节点,可以选择 Add Server,然后继续配置另外几台配置机器的远程信息,方式如上。
至此,构建工作之前的事情就已经做完了。
tomcat配置,自动发布的脚本信息
参考我的另外一篇文章 :http://blog.csdn.net/erbao_2014/article/details/62423093
这个脚本做的事情有,自动检测tomcat进程,如果有就停止,然后备份原来的war包,再将在jenkins中配置的 服务器接收到的编译之后的war包拷贝到对应tomcat下的webapp中,启动tomcat。
在Jenkins中执行构建
在项目列表中选择立即构建
点击构建执行状态中的项目名称
选择查看控制台输出
如果出现以下情况:
证明两台服务器已经成功启动。
访问下试试看:
已经成功在两个节点发布了同一个项目。
至此只是一个基本的部署环境,如果有特殊需求,比如说,实现完全的自动化配置,svn代码有变动,就可以自动发布到各个节点的系统里面,并实现较快速的服务发布,可以在项目中配置构建触发器,这样就可以完全实现自动部署项目了。
欢迎大家给提出宝贵意见!