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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,233评论 6 495
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,357评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,831评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,313评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,417评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,470评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,482评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,265评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,708评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,997评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,176评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,503评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,150评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,391评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,034评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,063评论 2 352

推荐阅读更多精彩内容