什么是Jenkins?
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。 通常与版本管理工具(SCM)、构建工具结合使用;常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
Jenkins两大特性
1.持续集成(Continuous integration, CI
)
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
持续集成有以下几个优点:
从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,减少人工干预;
任何时间、任何地点生成可部署的软件,出现问题,项目成员会被马上通知到,问题第一时间修复;
增强项目可见性,有效的控制台日志能帮助我们更好的解决存在的问题。
2.持续交付(Continuous delivery, CD
)
持续交付则是经典的敏捷的软件开发方法的自然延伸,它强调产品在修改后到部署上线的流程要敏捷话、自动化。甚至一些较小的改变也要尽早的部署上线。通俗的讲可以有几个特点:
代码越早交付出去,用户越早能用到,快就是商业价值;
用户反馈能及时作出处理,能帮助产品市场人员调整测策略;
降低修改成本。
前后对比
1.传统的项目部署
2.持续部署
Jekins的安装
官方下载地址:https://jenkins.io/download/
我选择下载的war包,将war包用xftps传到自己的服务器后有两种方式可以启动jenkins:
第一种: 将war包移至tomcat/webapps下,启动tomcat 浏览器输入: 你的IP地址:tomcat开放的端口号
第二种:
进入你war包存放的位置,输入以下指令后台启动jenkins:
nohup java -jar jenkins.war --logfile=server.log --httpPort=8088 > server.log 2>& 1 &
默认情况不指定--httpPort
的话jenkins使用的是8080端口,在此我指定的端口是8088
Jenkins的配置
以下为Jenkins的主界面:
其中主要的配置都是在系统管理
中设置:
在
系统设置
里设置全局设置相关的内容;在
全局安全配置
里配置各用户权限;在全局工具里配置相应的项目运行环境,比如JDK,MAVEN等;
在插件管理中添加自己想要使用的插件;
在节点管理中管理自己的服务器集群。
全局工具配置
配置JDK、Git、Maven等路径。
插件管理
在插件管理中插件类型众多,很大程度的满足了我们的需求,可以选择自己需要使用的插件,也可以制作相应的插件上传。
常用的插件:
主要介绍以下几个插件:
GitHub Branch Source Plugin
:代码仓库;
Deploy to container Plugin
:部署代码至相应的容器;
Maven Integration Plugin
:构建Maven项目需要使用此插件;
SSH Plugin
和 SSH Slave Plugin
:配置免密登录某一节点需要使用到;
节点管理
新建项目
选择需要怎样构建一个项目,在此以构建一个自由风格的软件项目为例。
源码管理
设置仓库url,构建时从此仓库获得源码。这里不仅可以使用Git源码管理,同样可以使用SVN,Coding等别的仓库,需要下载相应的插件。
构建触发器
构建触发器是指以何种方式来触发自动构建:
- 第一种:触发远程构建(例如,使用脚本)
图中的身份证令牌(TOKEN_NAME)即为要触发构建需要的KEY,访问URL中加入key后才可自动触发自动构建。
第二种:在其他工程构建后触发;
第三种:定时构建;
第四种:GitHub hook trigger for GITScm polling,使用github上的webhook钩子来实现代码push时,发送相应的请求,该请求即为我们触发自动构建的URL加key;
第五种:轮询SCM,
构建
此处选择的是执行相应的shell命令:
BUILD_ID=DONTKILLME
. /etc/profile
export PROJ_PATH=pwd
export TOMCAT_APP_PATH=/usr/local/tomcat/apache-tomcat-8.5.34
sh $PROJ_PATH/order/deploy.sh
其中前四句指令是在/etc/profile/
路径下添加PROJ_PATH(项目路径)的环境配置,TOMVAT_APP_PATH(tomcat路径),最后一个是执行项目中的脚本。