Jenkins持续集成

image

什么是Jenkins?


Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。 通常与版本管理工具(SCM)、构建工具结合使用;常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

Jenkins两大特性


1.持续集成Continuous integration, CI

image

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

持续集成有以下几个优点:

  • 从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,减少人工干预;

  • 任何时间、任何地点生成可部署的软件,出现问题,项目成员会被马上通知到,问题第一时间修复;

  • 增强项目可见性,有效的控制台日志能帮助我们更好的解决存在的问题。

2.持续交付Continuous delivery, CD

持续交付则是经典的敏捷的软件开发方法的自然延伸,它强调产品在修改后到部署上线的流程要敏捷话、自动化。甚至一些较小的改变也要尽早的部署上线。通俗的讲可以有几个特点:

  • 代码越早交付出去,用户越早能用到,快就是商业价值;

  • 用户反馈能及时作出处理,能帮助产品市场人员调整测策略;

  • 降低修改成本。

image

前后对比


1.传统的项目部署

image

2.持续部署

image

Jekins的安装


官方下载地址:https://jenkins.io/download/

image

我选择下载的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的主界面:

image

其中主要的配置都是在系统管理中设置:

  • 系统设置里设置全局设置相关的内容;

  • 全局安全配置里配置各用户权限;

  • 在全局工具里配置相应的项目运行环境,比如JDK,MAVEN等;

  • 在插件管理中添加自己想要使用的插件;

  • 在节点管理中管理自己的服务器集群。

image
全局工具配置

image

配置JDK、Git、Maven等路径。

插件管理

image

在插件管理中插件类型众多,很大程度的满足了我们的需求,可以选择自己需要使用的插件,也可以制作相应的插件上传。

常用的插件:

image

主要介绍以下几个插件:

GitHub Branch Source Plugin :代码仓库;

Deploy to container Plugin :部署代码至相应的容器;

Maven Integration Plugin :构建Maven项目需要使用此插件;

SSH PluginSSH Slave Plugin :配置免密登录某一节点需要使用到;

节点管理

image

新建项目


image

选择需要怎样构建一个项目,在此以构建一个自由风格的软件项目为例。

源码管理

image

设置仓库url,构建时从此仓库获得源码。这里不仅可以使用Git源码管理,同样可以使用SVN,Coding等别的仓库,需要下载相应的插件。

构建触发器

image

构建触发器是指以何种方式来触发自动构建:

  • 第一种:触发远程构建(例如,使用脚本)
image

图中的身份证令牌(TOKEN_NAME)即为要触发构建需要的KEY,访问URL中加入key后才可自动触发自动构建。

  • 第二种:在其他工程构建后触发;

  • 第三种:定时构建;

  • 第四种:GitHub hook trigger for GITScm polling,使用github上的webhook钩子来实现代码push时,发送相应的请求,该请求即为我们触发自动构建的URL加key;

  • 第五种:轮询SCM,

构建

此处选择的是执行相应的shell命令:

image
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路径),最后一个是执行项目中的脚本。

你可能感兴趣的:(Jenkins持续集成)