四十九、Jenkins 持续集成

1、简介

持续集成(Continuous Integration,CI|CD)是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础,持续集成意义如下:
持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;
持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能;
持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。

Jenkins是基于Java开发的一种持续集成工具,官网地址为:http://mirrors.jenkins-ci.org/ 。Jenkins持续集成组件如下:
自动构建过程JOB,JOB的功能主要是:获取SVN/GIT源码、自动编译、自动打包、部署分发和自动测试等;
源代码存储库,开发编写代码需上传至SVN、GIT代码库中,供Jenkins来获取;
Jenkins持续集成服务器,用于部署Jenkins UI、存放JOB工程、各种插件、编译打包的数据等。

2、部署

第一步:安装JDK及Tomcat

第二步:部署Jenkins

# 官网下载war包,或者使用清华大学源 https://mirror.tuna.tsinghua.edu.cn/jenkins/war/2.175/jenkins.war
[root@localhost ~]# cd /usr/local/apache-tomcat-8.0.39/webapps/
[root@localhost webapps]# rm -rf *
[root@localhost webapps]# mkdir -p /usr/local/apache-tomcat-8.0.39/webapps/ROOT/
[root@localhost webapps]# cd ROOT
[root@localhost ROOT]# wget http://updates.jenkins-ci.org/download/war/2.175/jenkins.war
# 解压war包
[root@localhost ROOT]# /usr/java/jdk1.8.0_131/bin/jar xf jenkins.war 
[root@localhost ROOT]# rm -rf jenkins.war 
# 启动tomcat
[root@localhost ROOT]# /usr/local/apache-tomcat-8.0.39/bin/startup.sh 

第三步:页面配置

浏览器访问 IP:PORT 初始化页,由于机器配置、网络等因素,该页面初始化时间可能较长,需耐心等待。
在这里插入图片描述
cat /root/.jenkins/secrets/initialAdminPassword 得到密码

在这里插入图片描述
安装插件
在这里插入图片描述
安装推荐的插件
在这里插入图片描述
选择插件来安装
在这里插入图片描述
注意:若出现类似以下问题,可手动下载相应的插件https://updates.jenkins-ci.org/download/plugins/cloudbees-folder/,然后放入
/usr/local/apache-tomcat-8.0.39/webapps/ROOT/WEB-INF/detached-plugins/ 文件夹下,重启Tomcat即可。
在这里插入图片描述
创建用户
在这里插入图片描述
实例配置
在这里插入图片描述
配置完成
在这里插入图片描述
登录成功
在这里插入图片描述

3、Jenkins 平台设置

点击 系统管理–>全局工具配置,配置全局的JDK和MAVEN

配置JDK
在这里插入图片描述
配置maven
在这里插入图片描述

4、JOB 工程创建与配置

在这里插入图片描述
配置SVN
在这里插入图片描述
参数详解:

Respository url 			    配置SVN仓库地址;
Local module directory         存储SVN源码的路径;
Ignore externals option		    忽略额外参数;
Check-out Strategy			    代码检出策略;
Repository browser			    仓库浏览器,默认Auto;
add more locations 			源码管理,允许下载多个地址的代码;
Repository depth			    获取SVN源码的目录深度,默认为infinity;
empty: 不检出项目的任何文件,files: 所有文件,immediates:目录第一级,infinity:整个目录所有文件。

配置maven
在这里插入图片描述
参数详解:

mvn clean  		 	打包清理(删除target目录内容);	
mvn compile 	 	    编译项目;
mvn package     	    打包发布;
mvn package -Dmaven.test.skip=ture 打包时跳过测试。

通过以上步骤的配置步骤,即完成了JOB工程的创建。运行构建,Jenkins将从SVN仓库获取SVN代码,然后通过Maven编译、打包,并最终生成可以使用的war包。
在这里插入图片描述
编译打包成功后执行shell进行部署、启动服务
在这里插入图片描述
日志输出
在这里插入图片描述
归档文件,可通过http://ip:port/job/www.cluo.net/lastSuccessfulBuild/artifact/target/*.war进行文件下载
在这里插入图片描述

5、Jenkins 多实例

单台Jenkins服务器可以满足日常自动部署需求,如果每天更新发布多个WEB网站,Jenkins需要同时处理很多的任务,单台Jenkins压力就会很大,任务处理速度较慢。基于Jenkins分布式,也就是多Slave方式可以缓解Jenkins服务器的压力。
Jenkins多Slave原理是将原本在Jenkins Master端的构建项目分配给Slave端去执行,Jenkins Master分配任务时,Jenkins Master端通过SSH远程Slave,在Slave端启动slave.jar程序,通过Slave.jar实现对网站工程的构建编译以及自动部署。步骤如下:
(1) 在Slave服务器,创建远程执行Jenkins任务的用户,名称为jenkins,Jenkins工作目录/home/Jenkins,Jenkins Master免秘钥登录Slave服务器或者通过用户名和密码登录Slave;
(2) Slave服务器安装JAVA JDK版本,并将其软件路径加入系统环境变量。
(3) Jenkins master端平台进行管理节点配置。
在这里插入图片描述

配置流程:

系统管理–> 节点管理–>新建节点
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

节点存在问题
在这里插入图片描述
点击节点名称 slave001
在这里插入图片描述
点击启动代理
在这里插入图片描述
在这里插入图片描述
至此,配置完成!

新建任务的时候,勾选“在必要的时候并发构建”,当多个任务排队执行时slave节点就会参与执行。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值