持续集成工具Jenkins的使用之安装篇(一)

Jenkins是一个基于Java开发的开源的一种持续集成工具,主要用于环境部署,监控重复性的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。要想使用它,你就必须的先安装,接下来我们就介绍下Jenkins是如何安装 。

一.Jenkins安装

安装步骤如下:

  1. 下载Java安装包,因为Jenkins是基于Java开发的,所以必须要先安装Java 。

  2. 进入官网下载Jenkins安装包

  3. 在服务器上进行安装及启动

  4. 启动服务,进行下载插件等 。

接下来就按照上面的步骤进行安装操作 。

1.1 Java安装与配置

  1. 进入Java官网:Java Downloads | Oracle,找到对应安装包进行下载,因为(我这里以Linux为例)

  2. 将安装包通过xshell上传到Linux服务器上 。

       3. 将安装包解压到指定目录,这里的指定目录根据自己需求确定 。比如我这里以解压到/opt下为例.

tar -xvzf jdk-8u271-linux-x64.tar.gz -C /opt

4.设置Java环境变量. 编辑/etc/profile文件 ,在文件最后加入三行代码 。

vi /etc/profile

# 在/etc/profile 插入以下三行export JAVA_HOME=/opt/jdk1.8    # 根据自己路径设定
export PATH=.:$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 设置完成以后,保存退出文件,并输入如下命令使设置生效 。

source /etc/profile

5.验证安装成功 。在命令行中输入java -version,若出现对应版本,即证明安装成功 。

java -version

1.2.Jenkins安装

  1. 进入官网:Jenkins ,点击下载按钮

  2. 在进入的界面有很多安装包,直接选择左侧的war包进行下载。

 3.将Jenkins.war包上传到服务器上,执行前需要为Jenkins.war赋值可执行权限.

# 执行下面命令前,需要提前进入该目录
chmod +x jenkins.war

4.进行解压并启动Jenkins服务 。

java –jar jenkins.war --httpPort=8888
备注:若需要指定具体端口,需要加--httpPort参数,若不指定端口,该参数可以省略。

5. 通过浏览器访问:http://ip:port ,其中ip是你的服务器ip地址,port是你设置Jenkins的端口 。若启动时没加端口,默认端口为80。

6. 第一次访问后,需要输入解锁密码。

7. 选择安装推荐的插件,进行下一步 。  

备注:这个插件安装可能需要一些时间 。

8. 创建一个管理员,输入管理员信息 。

 9. 安装完毕,进入下面的界面 ,界面显示Jenkins URL地址 。

 10.进入Jenkins的主界面 。

二.Jenkins概况

在上面我们介绍过,Jenkins可以实现自动编译、打包、分发部署等工作,从而帮我们从繁琐的工作中解脱出来 ,专注于更为重要的业务逻辑实现上。

目前来说,使用Jenkins最为广泛的两种模式就是持续集成(CI)和持续交付(CD).

  • 持续集成:工程师可以频繁的将它们的代码部署到主干上,并进行自动化测试 。

  • 持续交付:将测试过的代码自动部署到线上环境 。

2.1 持续集成

首先从这个概念可以分开来说,持续很好理解,这里就不再赘述 。这里主要谈集成 。集成其实就是一系列的动作组合,最终目的是将代码从开发获取代码到自动部署再到自动进行测试的系列过程 。我们将这里的动作进行分解为:

  1. 代码提交 ,开发人员持续的频繁的提交他们的代码到GitLab上。

  2. 拉取代码,从GitLab服务器上拉取代码到Jenkins服务器上 。

  3. 编译代码,在Jenkins服务器上进行代码编译。

  4. 打包,在Jenkins服务器上将代码进行打包 。

  5. 分发,将打包后的应用分发到对应的测试环境中。

  6. 启动服务,将应用程序部署后进行启动服务 。

  7. 自动测试,通过自动化测试脚本进行测试自动测试

  8. 邮件发送,将测试结果转发给相关人员 。

2.2 持续交付

持续交付是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的类生产环境(准生产环境)中。在这里我们同样将这个过程进行分解为如下步骤:

  1. 部署到测试环境,具体步骤见持续集成的步骤 。

  2. 运行验收测试用例,所有测试用例执行通过 。

  3. 若验收用例执行通过,将测试代码部署到准生产环境

  4. 运行准生产上的测试用例。

  5. 若准生产的测试用例通过,部署到生成环境 。

这里需要注意的是,不同的环境会有不同的测试用例和数据,越接近用户环境,使用的数据越贴近于真实用户数据 。

2.3 目录详情

为了能更详细的了解Jenkins,我们有必要了解下Jenkins的工作目录 ,这里Jenkins.war包进行说明,当我们运行Jenkins.war包后,就会自动将所有文件都解压到用户目录下,有个叫.jenkins的文件夹。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/421468.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ctfshow-反序列化(web267-web270)

目录 web267 web268 web269 web270 总结 web267 页面用的什么框架不知道 看源码看一下 框架就是一种软件工具,它提供了一些基础功能和规范,可以帮助开发者更快地构建应用程序。比如Yii框架和ThinkPHP框架就是两个流行的PHP框架,它们提供…

【Linux多线程】生产者消费者模型

目录 生产者消费者模型 1. 生产者消费者模式的概念 2. 生产者消费者模型优点 ​编辑3. 生产者消费者模型的特点 基于BlockingQueue(阻塞队列)的生产者消费者模型 1.BlockingQueue 2. 使用CSTL中的queue来模拟实现阻塞队列 3. 基于任务的生产者消费…

html 会跳舞的时间动画特效

下面是是代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <meta h…

Spring Boot3.2.2整合MyBatis Plus3.5.5

目录 1.前置条件 2.导坐标 3.配置数据源 4.配置mapper扫描路径 5.MyBatis Plus代码生成器整合 1.导坐标 2.编写代码生成逻辑 1.前置条件 已经初始化好一个spring boot项目且版本为3X&#xff0c;项目可正常启动 2.导坐标 <dependency><groupId>com.baomid…

Mysql-全局锁、表锁、行锁

本文已收录于专栏 《数据库》 目录 全局锁概述说明开启方式应用场景 表锁概念说明实现方式意向锁 开启方式 行锁概念说明实现方式记录锁&#xff1a;间隙锁临键锁 总结提升 全局锁 概述说明 全局锁是是对整个数据库实例加锁&#xff0c;加锁后整个实例就处于只读状态&#xff…

PySide6/PyQt6中Qt窗口标志/窗口属性汇总,如何正确的设置窗口标志/窗口属性

文章目录 📖 介绍 📖🏡 环境 🏡📒 使用方法 📒📚 窗口标志汇总📚 窗口属性汇总📝 使用方法📝 注意事项⚓️ 相关链接 ⚓️📖 介绍 📖 在Qt框架中,窗口标志(window flags)是用于控制窗口的各种属性和行为的强大工具。它们通过设置窗口的属性,如边框…

eNSP学习——配置通过STelnet登陆系统

可运行的topo不知道为什么无法上传&#xff0c;有需要的话&#xff0c;可以评论或私信文章标题获取相应的资源&#xff0c;也可评论“日常实验”获取常用的实验&#xff08;大概有一百个左右&#xff0c;里面有各种功能的单独配置&#xff0c;也有综合实验&#xff09;。 由于T…

JUC并发编程与源码分析学习笔记(二)

二十九、多线程锁之线程锁知识概述 说说Java“锁”事 从轻松的乐观锁和悲观锁开讲 通过8种情况演示锁运行案例&#xff0c;看看我们到底锁的是什么 公平锁和非公平锁 可重入锁&#xff08;又名递归锁&#xff09; 死锁及排查 写锁&#xff08;独占锁&#xff09;/读锁&a…

【每日一题】670. 最大交换-2024.1.22

题目&#xff1a; 670. 最大交换 给定一个非负整数&#xff0c;你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。示例 2 : 输入: 9973 输出: 9973 解释: 不需要交换。注意: 给定数字的范围是 [0, 1…

【K12】python用科学函数写方程解串联电路问题

物理例题&#xff1a; 代码分析 构造方程&#xff1a; from sympy中导包&#xff1a;Eq(),solve() 列方程函数 Eq()列方程函数 列出I2RP,这里设置P为1 解方程函数 solve((方程1&#xff0c;方程2&#xff0c;方程3&#xff09;&#xff0c;&#xff08;未知量1&#xff…

【算法】利用模拟算法、规律解算法题(C++)

文章目录 1. 前言2. 算法题1576.替换所有的问号495.提莫攻击6.Z字形变换38.外观数列1419.数青蛙 1. 前言 模拟算法 即模拟问题过程来解决问题的算法。 对于一些算法题&#xff0c;我们只需要将题目的过程 用代码编写出来&#xff0c;再结合其他方法&#xff0c;就可以解决。 …

SpringBoot远程过程调用RPC(WebClient、HTTP Interface客户端)

目录 1. 远程过程调用介绍2. WebClient2.1 pom.xml添加依赖2.2 发送请求的内容2.3 WebClient.builder()2.4 使用示例 3. HTTP Interface3.1 pom.xml添加依赖3.2 使用示例 1. 远程过程调用介绍 以前有sdk(Software Development Kit)工具包&#xff0c;导入jar包&#xff0c;直接…