持续集成工具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.mzph.cn/news/648010.shtml

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

相关文章

win10重启以后才能识别有线耳机

最近遇到一件让人很无奈的事情,win10重启以后才能识别有限耳机。奇怪的是无线耳机没有问题。 bing搜索了很多,就是解决不了问题。 偶然之间,文后的参考文献被搜索到,该文献提供的方法比较简单,经过验证,方…

恒创科技:云服务器配置中的vCPU与物理CPU有啥区别?

​  说到云服务器,您可能经常会遇到vCPU这个词,而且它和物理CPU经常被拿来谈论。尽管它们听起来相似,但两者之间存在显著差异。在本文中,我们将详细讨论云vCPU和物理CPU之间的差异。 物理与虚拟 CPU 和 vCPU 之间最显著的区别在…

H5112B 48V 60V 80V 100V 多路共阳 RGB调光 PWM调光芯片

多路共阳恒流芯片是一种常用于LED驱动等应用的电子元件,它可以实现多个LED灯共享一个电流源,并且保持每个LED灯的亮度稳定。其工作原理如下: 多路输入:多路共阳恒流芯片通常有多个输入引脚,每个引脚对应一个LED灯。这…

kafka集群和Filebeat+Kafka+ELK

一、Kafka 概述 1.1 为什么需要消息队列(MQ) 主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从…

攻防世界WEB新手训练区

view_source 此题我愿称之为网安领域的hello world 查看网页源代码的方式一般有—— 右键->查看网页源代码F12->源代码/来源Ctrlu 随后可以再代码第17行处找到flag,至此迈入网安第一步。可喜可贺,可喜可贺... get_post 考察http的两种请求方式&…

“JavaScript 循环中的 ‘await‘

目录 前言 for使用await -- 有效的 forEach使用await -- 无效的 for of 使用await 有效的 for await of 使用await 有效的 总结 前言 在JavaScript的forEach方法中使用await是无效的,因为forEach方法不支持异步操作的等待。 forEach是一个数组的遍历方法&…

精要图示:园区金融数字化服务蓝图,以园区为支点推动信贷业务增长

作为企业集聚地,园区已然成为银行业夯实客群基础的重要切口,各大行陆续围绕园区场景创新金融产品,以期抢跑园区金融新赛道、把握新增量。 启信慧眼首推一站式【园区金融】数字化服务方案,该方案同时支持启信天元私有化部署&#x…

windows下git pull超时,ping不通github

报错 ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 解决办法 修改hosts 最后加一行,文件位置:…

Kotlin Multiplatform项目推荐 | 太空人分布图

Kotlin Multiplatform项目推荐 | 太空人分布图 项目简介 Kotlin Multiplatform项目是一种跨平台开发技术,它可以同时使用SwiftUI、Jetpack Compose、Compose for Wear OS、Compose for Desktop、Compose for Web、Kotlin/JS React等客户端框架,并且使…

分表过多引起的问题/Apache ShardingSphere元数据加载慢

目录 环境 背景 探寻 元数据的加载策略 如何解决 升级版本到5.x 调大max.connections.size.per.query max.connections.size.per.query分析 服务启动阶段相关源码 服务运行阶段相关源码 受到的影响 注意事项(重要) 其他 环境 Spring Boot 2…

【linux】Debian防火墙

Debian系统默认没有安装防火墙,但用户可以根据需要自行选择并安装一个防火墙以增强系统安全性。 一、查看Debian 桌面系统的防火墙是否关闭 在Debian及其他基于Linux的桌面系统中,防火墙功能通常是由iptables或nftables规则集控制的,而ufw&…

docker容器启动后修改或添加端口 nacos容器 版本2.x需要额外开放9848、9849

1.输入docker ps -a查看需要修改的容器ID: 记录下、 docker ps -a 2.停止docker systemctl stop docker 3.进入docker 容器文件夹,找到对应容器的位置: docker的默认文件夹应该是/var/lib/docker 如果不是root用户查看的话,可能会出现权限…

LeetCode 热题 100 | 子串

目录 1 560. 和为 K 的子数组 2 239. 滑动窗口最大值 3 76. 最小覆盖子串 菜鸟做题第二周,语言是 C 1 560. 和为 K 的子数组 题眼:“子数组是数组中元素的连续非空序列。” 解决本问题的关键就在于如何翻译问题。子数组 s 的和可以看作数组 i 的…

智能充电桩,机器人 wifi蓝牙 解决方案

新联鑫威低功耗高性价比sdio wifi/蓝牙combo的模块单频2.4g的CYWL6208,双频2.4g/5g CYWL6312可以应用到一些低延时 高性能 低功耗 联网需求的交流直流充电桩,扭力扳手,agv机器人,目前支持主流的stm32F4/GD32F4 瑞萨 psoc的主控&am…

Shell脚本——循环语句(for、while和until循环)

一、命令 1.echo命令 echo -n 表示不换行输出 echo -e 输出转义字符,将转义后的内容输出到屏幕上 常见转义字符: \b 相当于退格键 转义后相当于退格键(backspace),但是前提是“\b”存在字符。“\b”表示删除前一个…

Maven(上):Maven介绍、安装配置及工程构建

1. Maven介绍 Maven 是一款为 Java 项目管理构建、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。 Maven就是一个软件,掌握安装、配置、以及基本功能 &#xff…

二叉树的最大深度[简单]

优质博文:IT-BLOG-CN 一、题目 给定一个二叉树root,返回其最大深度。 二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 示例 2&#xff1a…

Java面试——基础篇

目录 1、java语言有哪些优点和缺点? 2、JVM 、 JDK 和 JRE的关系 3、为什么说 Java 语言“编译与解释并存”? 4、Java和c的区别 5、基本数据类型 5.1、java的8种基本数据类型: 5.2、基本类型和包装类型的区别: 5.3、包装类型的缓存机…

【大数据】YARN常用命令及Rest API

YARN 1.YARN常用命令 1.1 作业 命令说明yarn application -list列出所有的applicationyarn application -list -appStates [ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED]根据application状态过滤yarn application -kill [applicationId]…

c# 解决ini中文乱码

乱码仅仅是因为编码规则导致 解码时对应文件的码制即可 public class IniConfig{private string inipath AppDomain.CurrentDomain.BaseDirectory "Config.ini";public bool CanRead(){if (File.Exists(inipath)){return true;}return false;}//声明API函数[DllImp…