【云原生 • DevOps】一文掌握持续集成工具 Jenkins_云上 持续集成工具-程序员宅基地

技术标签: 云原生  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 系统当中。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_53072519/article/details/125662774

智能推荐

艾美捷Epigentek DNA样品的超声能量处理方案-程序员宅基地

文章浏览阅读15次。空化气泡的大小和相应的空化能量可以通过调整完全标度的振幅水平来操纵和数字控制。通过强调超声技术中的更高通量处理和防止样品污染,Epigentek EpiSonic超声仪可以轻松集成到现有的实验室工作流程中,并且特别适合与表观遗传学和下一代应用的兼容性。Epigentek的EpiSonic已成为一种有效的剪切设备,用于在染色质免疫沉淀技术中制备染色质样品,以及用于下一代测序平台的DNA文库制备。该装置的经济性及其多重样品的能力使其成为每个实验室拥有的经济高效的工具,而不仅仅是核心设施。

11、合宙Air模块Luat开发:通过http协议获取天气信息_合宙获取天气-程序员宅基地

文章浏览阅读4.2k次,点赞3次,收藏14次。目录点击这里查看所有博文  本系列博客,理论上适用于合宙的Air202、Air268、Air720x、Air720S以及最近发布的Air720U(我还没拿到样机,应该也能支持)。  先不管支不支持,如果你用的是合宙的模块,那都不妨一试,也许会有意外收获。  我使用的是Air720SL模块,如果在其他模块上不能用,那就是底层core固件暂时还没有支持,这里的代码是没有问题的。例程仅供参考!..._合宙获取天气

EasyMesh和802.11s对比-程序员宅基地

文章浏览阅读7.7k次,点赞2次,收藏41次。1 关于meshMesh的意思是网状物,以前读书的时候,在自动化领域有传感器自组网,zigbee、蓝牙等无线方式实现各个网络节点消息通信,通过各种算法,保证整个网络中所有节点信息能经过多跳最终传递到目的地,用于数据采集。十多年过去了,在无线路由器领域又把这个mesh概念翻炒了一下,各大品牌都推出了mesh路由器,大多数是3个为一组,实现在面积较大的住宅里,增强wifi覆盖范围,智能在多热点之间切换,提升上网体验。因为节点基本上在3个以内,所以mesh的算法不必太复杂,组网形式比较简单。各厂家都自定义了组_802.11s

线程的几种状态_线程状态-程序员宅基地

文章浏览阅读5.2k次,点赞8次,收藏21次。线程的几种状态_线程状态

stack的常见用法详解_stack函数用法-程序员宅基地

文章浏览阅读4.2w次,点赞124次,收藏688次。stack翻译为栈,是STL中实现的一个后进先出的容器。要使用 stack,应先添加头文件include<stack>,并在头文件下面加上“ using namespacestd;"1. stack的定义其定义的写法和其他STL容器相同, typename可以任意基本数据类型或容器:stack<typename> name;2. stack容器内元素的访问..._stack函数用法

2018.11.16javascript课上随笔(DOM)-程序员宅基地

文章浏览阅读71次。<li> <a href = "“#”>-</a></li><li>子节点:文本节点(回车),元素节点,文本节点。不同节点树:  节点(各种类型节点)childNodes:返回子节点的所有子节点的集合,包含任何类型、元素节点(元素类型节点):child。node.getAttribute(at...

随便推点

layui.extend的一点知识 第三方模块base 路径_layui extend-程序员宅基地

文章浏览阅读3.4k次。//config的设置是全局的layui.config({ base: '/res/js/' //假设这是你存放拓展模块的根目录}).extend({ //设定模块别名 mymod: 'mymod' //如果 mymod.js 是在根目录,也可以不用设定别名 ,mod1: 'admin/mod1' //相对于上述 base 目录的子目录}); //你也可以忽略 base 设定的根目录,直接在 extend 指定路径(主要:该功能为 layui 2.2.0 新增)layui.exten_layui extend

5G云计算:5G网络的分层思想_5g分层结构-程序员宅基地

文章浏览阅读3.2k次,点赞6次,收藏13次。分层思想分层思想分层思想-1分层思想-2分层思想-2OSI七层参考模型物理层和数据链路层物理层数据链路层网络层传输层会话层表示层应用层OSI七层模型的分层结构TCP/IP协议族的组成数据封装过程数据解封装过程PDU设备与层的对应关系各层通信分层思想分层思想-1在现实生活种,我们在喝牛奶时,未必了解他的生产过程,我们所接触的或许只是从超时购买牛奶。分层思想-2平时我们在网络时也未必知道数据的传输过程我们的所考虑的就是可以传就可以,不用管他时怎么传输的分层思想-2将复杂的流程分解为几个功能_5g分层结构

基于二值化图像转GCode的单向扫描实现-程序员宅基地

文章浏览阅读191次。在激光雕刻中,单向扫描(Unidirectional Scanning)是一种雕刻技术,其中激光头只在一个方向上移动,而不是来回移动。这种移动方式主要应用于通过激光逐行扫描图像表面的过程。具体而言,单向扫描的过程通常包括以下步骤:横向移动(X轴): 激光头沿X轴方向移动到图像的一侧。纵向移动(Y轴): 激光头沿Y轴方向开始逐行移动,刻蚀图像表面。这一过程是单向的,即在每一行上激光头只在一个方向上移动。返回横向移动: 一旦一行完成,激光头返回到图像的一侧,准备进行下一行的刻蚀。

算法随笔:强连通分量-程序员宅基地

文章浏览阅读577次。强连通:在有向图G中,如果两个点u和v是互相可达的,即从u出发可以到达v,从v出发也可以到达u,则成u和v是强连通的。强连通分量:如果一个有向图G不是强连通图,那么可以把它分成躲个子图,其中每个子图的内部是强连通的,而且这些子图已经扩展到最大,不能与子图外的任一点强连通,成这样的一个“极大连通”子图是G的一个强连通分量(SCC)。强连通分量的一些性质:(1)一个点必须有出度和入度,才会与其他点强连通。(2)把一个SCC从图中挖掉,不影响其他点的强连通性。_强连通分量

Django(2)|templates模板+静态资源目录static_django templates-程序员宅基地

文章浏览阅读3.9k次,点赞5次,收藏18次。在做web开发,要给用户提供一个页面,页面包括静态页面+数据,两者结合起来就是完整的可视化的页面,django的模板系统支持这种功能,首先需要写一个静态页面,然后通过python的模板语法将数据渲染上去。1.创建一个templates目录2.配置。_django templates

linux下的GPU测试软件,Ubuntu等Linux系统显卡性能测试软件 Unigine 3D-程序员宅基地

文章浏览阅读1.7k次。Ubuntu等Linux系统显卡性能测试软件 Unigine 3DUbuntu Intel显卡驱动安装,请参考:ATI和NVIDIA显卡请在软件和更新中的附加驱动中安装。 这里推荐: 运行后,F9就可评分,已测试显卡有K2000 2GB 900+分,GT330m 1GB 340+ 分,GT620 1GB 340+ 分,四代i5核显340+ 分,还有写博客的小盒子100+ 分。relaybot@re...

推荐文章

热门文章

相关标签