Jenkins+gitlab+maven+tomcat可持续集成流水线(一) Jenkins安装

1.1什么是持续集成?

个人理解就是:让产品快速迭代、还能保持高质量,简化工作流程。

实战中:我们开发完一个项目,要先本地单元测试。确认功能调用没有问题后。编写自动化测试案例,然后代码提交合并到测试分支。测试分支合并完会触发CI编译。将代码拉取下来用服务器上的编辑脚本编辑一般都是maven编译。然后编辑完sonar会对包进行代码质量检测。然后部署到测试环境,部署成功后触发自动化测试流水线将之前所有接口服务都测试一遍。保障不出现质量问题。

这套流程就是持续集成的实现,第一个保障了高质量的代码效率,节省了测试的人力资源。3快速迭代

1.2什么是持续交付?

就是当持续集成一套流程完整且无误的走完后,可以部署

1.3什么是持续部署?

测试进行确认该功能达到上线要求(还有回归流程)。通过一键部署将持续交付编译好的包推送至生产。通过人工手动点击部署完成一键部署。

1.4 总体目标

  • 降低风险

    一天中进行多次的集成,并做了相应的测试,这样有利于检查缺陷,了解软件的健康状况,减少假定。

  • 减少重复过程

    产生重复过程有两个方面的原因,一个是编译、测试、打包、部署等等固定操作都必须要做,无法省略任何一个环节;另一个是一个缺陷如果没有及时发现,有可能导致后续代码的开发方向是错误的,要修复问题需要重新编写受影响的所有代码。

    而使用 Jenkins 等持续集成工具既可以把构建环节从手动完成转换为自动化完成,又可以通过增加集成频次尽早发现缺陷避免方向性错误。

  • 任何时间、任何地点生成可部署的软件

    持续集成可以让您在任何时间发布可以部署的软件。从外界来看,这是持续集 成最明显的好处,我们可以对改进软件品质和减少风险说起来滔滔不绝,但对于客户来说,可以部署的软件产品是最实际的资产。利用持续集成,您可以经常对源代码进行一些小改动,并将这些改动和其他的代码进行集成。如果出现问题,项目成员马上就会被通知到,问题会第一时间被修复。不采用持续集成的情况下,这些问题有可能到交付前的集成测试的时候才发现,有可能会导致延迟发布产品,而在急于修复这些缺陷的时候又有可能引入新的缺陷,最终可能导致项目失败。

  • 增强项目的可见性

    持续集成让我们能够注意到趋势并进行有效的决策。如果没有真实或最新的数 据提供支持,项目就会遇到麻烦,每个人都会提出他最好的猜测。通常,项目成员通过手工收集这些信息,增加了负担,也很耗时。持续集成可以带来两点积极效果:

    (1)有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信息,有些持续集成系统可以报告功能完成度和缺陷率。

    (2)注意到趋势:由于经常集成,我们可以看到一些趋势,如构建成功或失败、 总体品质以及其它的项目信息。

  • 建立团队对开发产品的信心

    持续集成可以建立开发团队对开发产品的信心,因为他们清楚的知道每一次构建的结果,他们知道他们对软件的改动造成了哪些影响,结果怎么样。

2 持续集成工具

2.1 Jenkins 和 Hudson

目前最流行的一款持续集成及自动化部署工具。

Jenkins 和 Hundson 之间的关系:2009 年,Oracle收购了 Sun 并继承了 Hudson 代码库。在 2011 年年初,Oracle和开源社区之间的关系破裂,该项目被分成两个独立的项目:

Jenkins:由大部分原始开发人员组成

Hudson:由Oracle公司继续管理

所以 Jenkins 和 Hudson 是两款非常相似的产品。

2.2 技术组合

Jenkins 可以整合 GitHub 或 Subversion

Husband 也可以整合 GitHub 或 Subversion

3 JavaEE 项目部署方式对比

3.1 手动部署

在这里插入图片描述

3.2 自动部署

“自动化”的具体体现:向版本库提交新的代码后,应用服务器上自动部署,用户或测试人员使用的马上就是最新的应用程序。

在这里插入图片描述

搭建上述持续集成环境可以把整个构建、部署过程自动化,很大程度上减轻工作量。对于程序员的日常开发来说不会造成任何额外负担——自己把代码提交上去之后,服务器上运行的马上就是最新版本——一切都发生在无形中。

需要具备以下前置知识:

  • Linux 基本操作命令和 VIM 编辑器使用
  • Maven 的项目构建管理
  • GitHub 或 SVN 的使用

4 Jenkins安装、启动与配置

4.1 Jenkins下载与安装

jenkins官网 https://www.jenkins.io/

进入 https://www.jenkins.io/download/ 下载 Generic Java package(.war)

在这里插入图片描述

docker上安装Jenkins

1.下载镜像
docker pull jenkins/jenkins
2.设置虚拟机目录
mkdir -p /mydata/jenkins/conf
chmod 777 /mydata/jenkins/conf
3.设置Jenkins启动参数

参考官方文档:https://www.jenkins.io/doc/book/installing/docker/
-d 后台运行镜像
  -p 10240:8080 将镜像的8080端口映射到服务器的10240端口。
  -p 10241:50000 将镜像的50000端口映射到服务器的10241端口
  -v mydata/jenkins/conf:/var/jenkins_mount /var/jenkins_home目录为容器jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录。这里我们设置的就是上面我们创建的 mydata/jenkins/conf目录
  -v /etc/localtime:/etc/localtime让容器使用和服务器同样的时间设置。
  --name myjenkins 给容器起一个别名
jenkins镜像内部使用的用户是jenkons,但是我们启动容器时的账号是root,导致没有权限操作内部目录,加入 -u 0
这命令的意思是覆盖容器中内置的帐号,该用外部传入,这里传入0代表的是root帐号Id。

docker run -d -p 10240:8080 -p 10241:50000 -v /mydata/jenkins/conf:/var/jenkins_home -v /etc/localtime:/etc/localtime --name myjenkins -u 0 jenkins/jenkins
4.检查docker启动成功

docker ps (没有出现排查问题命令 1.docker ps -l :检查应用是否创建 ; 2.docker log 应用名查看日志)

5.配置镜像加速

cd /mydata/jenkins/conf/
vi hudson.model.UpdateCenter.xml
修改加速url 为 清华大学官方镜像

http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
6.访问jenkins

http://192.168.56.10:10240/

7,获取初始密码
cd /mydata/jenkins/conf/secrets 
cat initialAdminPassword8.安装完成

4.2 Linux安装

安装Jenkins其实就是运行刚刚下载下来的包(如果需要将jenkins部署到服务器上那么就先上传再执行以下指令)

java -jar jenkins.war

记得关闭防火墙

浏览器上访问 虚拟机ip:8080

在这里插入图片描述

根据提示可知 默认密码在 /root/.jenkins/secrets/initialAdminPassword 中可以查看到。

cat /root/.jenkins/secrets/initialAdminPassword

默认密码 890e0bec8e2e47bba23f80da23fdda90

在这里插入图片描述

为了方便可直接选择左边的选项。然后就进入了漫长的安装环节。这里我翻墙了,所以可以直接下载。

在这里插入图片描述

安装完后,会出现如下界面,选择使用admin账户继续即可。这样密码还是上面的默认密码。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

点击保存并完成。

在这里插入图片描述
在这里插入图片描述

4.3 全局配置

4.3.1 全局安全配置

点击 Manage Jenkins ,再点击全局安全配置(红线部分)进行设置。

在这里插入图片描述

勾选画红线部分

在这里插入图片描述

这两个选项都是为了方便学习才开启的。

选项 允许用户注册 是为了一旦忘记了账号密码也依旧可以进行注册然后操作。

选项 Anyone can do anything(任何人都可以进行操作)也是为了方便学习。

4.3.2 全局工具配置

点击 Global Tool Configuration

在这里插入图片描述

在这里插入图片描述

根据maven和jdk的安装路径进行配置。记得关闭 Install automatically。

在这里插入图片描述

4.4 配置下载插件的源

Manage Jenkins -> Manage Plugins -> 高级

在这里插入图片描述

将 URL 改为 http://mirror.esuni.jp/jenkins/updates/update-center.json

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值