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

Posted 敬 之

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生 • DevOps一文掌握持续集成工具 Jenkins相关的知识,希望对你有一定的参考价值。

目录

一、持续集成工具 Jenkins 介绍

1. 什么是持续集成

2. Jenkins 介绍

二、Jenkins 的安装与部署

1. 安装 Jenkins

2. 本地访问 Jenkins

3. 插件的安装

4. 卸载 Jenkins

三、Jenkins 全局配置

1. Git 的安装与配置

2. JDK 的安装与配置

3. maven 的安装与配置

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

1. Gogs 的搭建与配置

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

四、任务的创建与执行


一、持续集成工具 Jenkins 介绍

1. 什么是持续集成

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

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

持续集成具有以下特点:

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

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

2. Jenkins 介绍

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

JenkinsJenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their softwarehttps://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

2. 本地访问 Jenkins

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

根据提示密码存于 /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 压缩包并上传至虚拟机/服务器;

按照以下步骤进行操作;

#1.解压压缩包
tar -zxvf git-2.27.0.tar.gz

#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;

使用此路径设置全局;

3. maven 的安装与配置

下载 apache-maven .tar.gz 包并上传至虚拟机/服务器;

解压压缩文件;

使用此路径及解压后的文件名设置全局;

全部配置完成之后,点击保存、点击应用。

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

1. Gogs 的搭建与配置

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

第一步:下载镜像 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 ~]# 

第二步:创建 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 ~]# 

第三步:在本地浏览器进行访问,初始界面如下; 

此处选择数据库类型为 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

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

返回面板,点击按钮执行此任务;

此操作相当于我们将项目文件的执行过程拿到了 Jenkins 系统当中。

万千 DevOps 工程师的福音 | 社区福利


作为世界自动化、持续集成、持续交付领域的顶级开源工具,Jenkins 给您日常工作带来多少的便利。

他,会做自动化构建、自动化代码扫描、自动化测试、自动化部署与代码发布;

他,可以集成 Gitlab、Maven、SonarQube、Docker、Ansible、Kubernetes、JIRA、十八般武艺样样精通。

云原生时代基于 DevOps 重新构想的 Jenkins X,所有特性面向未来。4月13日上午,云原生及基础架构专场,全世界 Jenkins 玩得最溜的男人会来到现场,还要把 Jenkins 提升到一个未有的高度,这种机会哪里有?


Kohsuke kawaguchi(KK)

Jenkins 创始人,CloudBees CTO

4月13日,Jenkins 创始人 Kohsuke Kawaguchi(KK)将会带来Superpowers coming to your Jenkins精彩分享,敬请期待,欢迎围观。

除了上面

以上是关于云原生 • DevOps一文掌握持续集成工具 Jenkins的主要内容,如果未能解决你的问题,请参考以下文章

云原生DevOps:CICD持续集成|交付|部署

云原生有什么用?一文带你了解云原生四要素!

万千 DevOps 工程师的福音 | 社区福利

一文读懂云原生

DevOps成功的秘诀是什么,从持续集成和持续部署开始!

云原生 • Kubernetes一文掌握 k8s 包管理工具 Helm