【云原生 • DevOps】一文掌握持续集成工具 Jenkins

一、持续集成工具 Jenkins 介绍

1. 什么是持续集成

持续集成(Continuous Integration,CI)。随着软件开发复杂度的不断提高,如何更好的协同开发以确保软件开发质量已经成为了开发团队所追求的目标,特别是近年来 “敏捷开发” 在互联网领域的兴起,如何能够在不断变化的需求中快速适应和保证开发质量显得尤为重要。

持续集成就是针对这类问题的一种软件开发实践,倡导团队必须经常集成他们的工作,而每次的集成都是通过自动化的构建来验证的,包括自动编译、发布、测试,从而更快发现集成错误,让团队更快的开发内聚的软件。

持续集成具有以下特点:

  • 是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试,再到结果记录、测试统计等都是自动完成,无需人工干预
  • 需要有专门的集成服务器来执行集成构建
  • 需要有代码托管工具支持

持续集成的出现,保证开发团队交代码的质量,减轻了软件发布时的压力;其次就是全程自动完成,无需太多人工干预,极大的减少了重复的过程,节省了时间、工作量和成本。

2. Jenkins 介绍

Jenkins 原名 Hudson,2011 年修改为 Jenkins,它是一个开源的实现软件持续集成的工具。官网地址如下(也有中文网址):

Jenkins
Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software
https://www.jenkins.io/

Jenkins 能实时监控集成中存在的错误,提供详细的日志文件和提醒功能,还可以用图表的形式形象的展示项目构建的趋势和稳定性。

Jenkins 具有以下特点:

  • 易安装:官网下载直接运行
  • 易配置:提供了友好的 GUI 配置界面
  • 变更支持:能从代码仓库中获取并产生代码更新列表,输出到编译输出信息
  • 支持永久链接:用户是通过 Web 来访问 Jenkins 的,而这些 Web 界面的链接地址是永久的,可在任何文档中直接使用
  • 集成 E-mail/RSS/IM
  • JUnit/Test NG 测试报告:以图表形式提供测试报告
  • 文件指纹信息:会保存哪次集成构建产生了哪些 jars 文件,哪次集成使用了哪个版本的 jars 文件等记录
  • 支持第三方插件

二、Jenkins 的安装与部署

1. 安装 Jenkins

第一步,下载 Jenkins 安装包,打开Jenkins 官方文档
在这里插入图片描述
点击 “Installing Jenkins”,可以看到可供下载的各个版本;
在这里插入图片描述
选择 Linux(演示虚拟机为 CentOS 系统)下的 CentOS 系统;
在这里插入图片描述
可以看到官方提供的在线安装方式;
在这里插入图片描述
打开 Xhell 并连接虚拟机/服务器,按照以下步骤进行下载;

# 下载镜像
wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo
 
# 安装
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
 
# 更新
yum upgrade
 
# 安装 Java 环境
yum install java-11-openjdk
 
#安装 Jenkins
yum install jenkins

#启动Jenkins
systemctl start jenkins

2. 本地访问 Jenkins

Jenkins 安装完成之后,就可以使用 虚拟机/服务器IP:端口 在本地进行访问了,初始界面如下;

修改默认端口

vim /usr/lib/systemd/system/jenkins.service
Environment="JENKINS_PORT=8080" #修改这条就行

修改完成后执行 systemctl daemon-reload后就可以重启jenkins服务了

在Linux在安装好了Jenkins之后,访问Jenkins,一直出现Please wait while Jenkins is getting ready to work …,打开F12控制台发现一直报错如下:ERROR 503: Service Unavailable.
在这里插入图片描述
解决方案如下:

  1. 进入Jenkins的工作目录(/var/lib/jenkins),编辑hudson.model.UpdateCenter.xml文件
vi /var/lib/jenkins/hudson.model.UpdateCenter.xml
  1. https://updates.jenkins.io/update-center.json修改为http://mirror.xmission.com/jenkins/updates/update-center.json
    在这里插入图片描述
  2. 保存后重启Jenkins
systemctl restart jenkins

再次访问,就会出现如下界面:
在这里插入图片描述
根据提示密码存于 /var/lib/jenkins/secrets/initialAdminPassword 目录中;

cat /var/lib/jenkins/secrets/initialAdminPassword

输入密码后进入如下界面;
在这里插入图片描述
我们选择安装推荐的插件,Jenkins 便会开始自动下载安装,如下正在安装;
在这里插入图片描述
安装完成后,创建我们的第一个用户;
在这里插入图片描述
进入 Jenkins 主页如下;
在这里插入图片描述

3. 插件的安装

使用推荐安装方式只能帮我们安装一部分最为常用的插件,有某些插件如 maven 等还是需要我们手动去安装的。

点击 “系统管理” --> “插件管理”;
在这里插入图片描述
在这里可以看到我们需要的插件,按需下载即可;
在这里插入图片描述

4. 卸载 Jenkins

# rpm卸载Jenkins
rpm -e jenkins
 
# 检查是否卸载成功
rpm -ql jenkins
 
# 彻底删除残留文件
find / -iname jenkins | xargs -n 1000 rm -rf

三、Jenkins 全局配置

全局配置的目的在于告诉 Jenkins 各种工具的路径在何处,使得 Jenkins 能够通过插件来调用这些软件。我们这里均采用下载压缩包然后上传虚拟机/服务器的方式进行演示。

点击“系统管理” --> “全局配置”,可以看到需要配置的插件,需要配置的有 jdk、git、maven 工具;
在这里插入图片描述

1. Git 的安装与配置

(直接使用 yum 命令安装虽然更为简单但版本会很低,为防止今后报错所以推荐此方式安装)

打开 git官网 ,下载git对应操作系统的版本。

所有东西下载慢的话就可以去找镜像!

官网下载太慢,我们可以使用淘宝镜像下载:
https://mirrors.edge.kernel.org/pub/software/scm/git/

首先下载 git 压缩包并上传至虚拟机/服务器;
在这里插入图片描述
按照以下步骤进行操作;

#1.解压压缩包
tar -zxvf git-2.27.0.tar.gz  # -C /dhx/ 解压到指定目录
 
#2.在Linux系统中是需要编译源码的,首先下载所需要的依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
 
#3.卸载旧版本的 git(安装依赖是会自动安装 git,所以需要卸载旧版本)
yum -y remove git
 
#4.进入解压后的文件夹
cd git-2.27.0
 
#5.编译git源码
make prefix=/usr/local/git all
 
#6.安装git至/usr/local/git路径
make prefix=/usr/local/git install
 
#7.配置环境变量
vi /etc/profile 
在底部加上该行代码:export PATH=$PATH:/usr/local/git/bin
 
#8.配置完成后刷新环境变量
source /etc/profile

操作完成之后使用命令 git --version 查看 git 版本,如下 2.27 版本安装成功;

[root@192 git-2.27.0]# git --version
git version 2.27.0

此时我们查看一下 git 路径 which git

[root@192 git-2.27.0]# which git
/usr/local/git/bin/git

使用该路径设置全局配置;
在这里插入图片描述

2. JDK 的安装与配置

下载一个 jdk 的 rpm 包并上传至虚拟机/服务器;

在这里插入图片描述
然后使用命令 rpm -ivh jdk-8u171-linux-x64.rpm 进行安装;

在这里插入图片描述
安装后的根目录为 /usr/java/jdk1.8.0_171-amd64;
在这里插入图片描述
使用此路径设置全局;
在这里插入图片描述

使用上面默认的JDK安装目录在安装完成后,默认的安装目录是在: /usr/lib/jvm/下面

3. maven 的安装与配置

下载 apache-maven .tar.gz 包并上传至虚拟机/服务器;
在这里插入图片描述
解压压缩文件;

tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /dhx  

在这里插入图片描述
使用此路径及解压后的文件名设置全局;
在这里插入图片描述
全部配置完成之后,点击保存、点击应用。
在这里插入图片描述

三、将代码上传至 Git 服务器

1. Gogs 的搭建与配置

Gogs 是一款极易搭建的自助 Git 服务,它的目标在于打造一个最简单、快速和轻松的方式搭建 Git 服务。使用 Go 语言开发的它能够通过独立的二进制进行分发,支持了 Go 语言支持的所有平台,包括 Linux、Mac OS、Windows 以及 arm 平台。与传统 Git 相比它最大的优势在于拥有图形化界面。

  1. 第一步:下载镜像 docker pull gogs/gogs
[root@192 ~]# docker pull gogs/gogs
Using default tag: latest
latest: Pulling from gogs/gogs
97518928ae5f: Pull complete 
d20a5437c0b4: Pull complete 
ec9934e62f5f: Pull complete 
2a880a4f6876: Pull complete 
7bb13647629b: Pull complete 
641b202f48eb: Pull complete 
8f12f9a5cd7d: Pull complete 
Digest: sha256:fbae7c126411d3fa3f8fdca17a65b196887ab23e3b7375f682a13daf5806bb19
Status: Downloaded newer image for gogs/gogs:latest
docker.io/gogs/gogs:latest
[root@192 ~]# 
  1. 第二步:创建 Gogs 容器 docker run -di --name=gogs -p 10022:22 -p 3000:3000 -v /var/gogsdata:/data gogs/gogs
  • 容器名称 gogs
  • 端口映射,22 端口映射为 10022,3000 端口映射为 3000
[root@192 ~]# docker run -di --name=gogs -p 10022:22 -p 3000:3000 -v /var/gogsdata:/data gogs/gogs
3af9726ff2d9430be43f7f3d78c206b9a53d356347e8a92c23316a7d2e6533f8
[root@192 ~]# 
  1. 第三步:在本地浏览器进行访问,初始界面如下;
    在这里插入图片描述

此处选择数据库类型为 SQLite3
修改域名为 192.168.200.129
修改应用 URL 为 http://192.168.200.129:3000/

在这里插入图片描述
随后点击“立即安装”,Gogs 安装与配置完成;

2. 将本地代码上传至 Gogs 的仓库

首先我们创建一个仓库;

在这里插入图片描述
创建成功后就可以将代码上传至仓库了;
在这里插入图片描述
这里我使用 idea(本地 git 环境已搭建,这里不再赘述)以及一个示例项目演示上传操作;
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
选中项目,右键点击 “file” --> “git” --> “Repository” --> “Reomtes”;
在这里插入图片描述
接下来增加远程地址,也就是我们 Gogs 远程仓库的地址;

在这里插入图片描述
此时就可以进行代码上传了,先点击 “Git” --> “Add”,将项目上传至暂存区;
在这里插入图片描述
选择 “git” --> “Repository” --> “push” 进行推送;

在这里插入图片描述
输入用户名和密码登录 Gogs 后即可推送成功;

在这里插入图片描述
此时再次查看 Gogs 中的仓库,可以看到项目已上传至 Gogs 仓库;

在这里插入图片描述
在这里插入图片描述
代码上传至 Git 演示成功。

四、任务的创建与执行

登入 Jenkins,点击 “新建 Item”,输入任务名称并选择“构建一个maven项目”;
在这里插入图片描述
点击“确定”,之后我们作出如下配置;

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

源码管理

在这里插入图片描述

build

在这里插入图片描述

clean package -DpushImage

配置完成,点击保存,项目即创建完成;

在这里插入图片描述
返回面板,点击按钮执行此任务;
在这里插入图片描述
此操作相当于我们将项目文件的执行过程拿到了 Jenkins 系统当中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值