DevOps基础服务2——Jenkins

2023-11-09

一、基本了解

DEVOPS概念:

  • DevOps是一种思想,是一种文化,主要强调软件开发测试运维的一体化,目标是减少各个部门之间的沟通成本从而实现软件的快速高质量的发布。cicd是指持续集成发布部署,是一套流程实现软件的构建测试部署的自动化。
  • DevOps与cicd紧密相关,是理论与实践的结合,DevOps要实现人员一体化,必须要借助cicd工具来自动化整个流程。
  • DevOps融合了一系列基本原则和实践的方法论,并从这些实践中派生出了各种工具。这些工具体现在软件开发和交付过程的不同阶段:
    • 编码: 代码开发和审阅,版本控制工具、代码合并工具。
    • 构建: 持续集成工具、构建状态统计工具。
    • 测试: 通过测试和结果确定绩效的工具。
    • 打包: 成品仓库、应用程序部署前暂存。
    • 发布: 变更管理、发布审批、发布自动化。
    • 配置: 基础架构配置和部署,基础架构即代码工具。
    • 监控: 应用程序性能监视、最终用户体验。
      在这里插入图片描述

jenkins持续集成优点:

  • Jenkins自动化部署可以解决集成、测试、部署等重复性的工作,提高工作效率。
  • 持续集成可以更早的获取代码变更的信息,从而更早的进入测试阶段,更早的发现问题,这样解决问题的成本就会显著下降。
  • 持续集成缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间出现的等待时间。
  • 持续集成也意味着开发、集成、测试、部署得以持续。
  • 使用Maven(Ant)等来实现lava项目自动化构建发布部署。这些工具可以帮助在构建过程中实现自动化发布、回滚等动作。

1.1 CI/CD介绍

CI/CD流程图:
在这里插入图片描述
CI 持续集成:

  • 持续集成(CI)可以帮助开发人员更加频繁地将代码更改合并到共享分支或主干中。
  • 当开发人员对应用进行更改合并后,系统就会自动构建应用并运行不同级别的自动化测试来验证这些更改,确保这些更改没有对应用造成破坏。
  • 若自动化测试发现新代码和现有代码之间存在冲突,CI可以更加轻松地快速修复这些错误。

CD 持续交付:

  • 完成 CI 中构建及单元测试和集成测试的自动化流程后,持续交付可自动将已验证的代码发布到存储库。为了实现高效的持续交付流程,务必要确保 CI 已内置于开发管道。持续交付的目标是拥有一个可随时部署到生产环境的代码库。
  • 在持续交付中,每个阶段(从代码更改的合并,到生产就绪型构建版本的交付)都涉及测试自动化和代码发布自动化。在流程结束时,运维团队可以快速、轻松地将应用部署到生产环境中。

CD 持续部署:

  • 对于一个成熟的 CI/CD 管道来说,最后的阶段是持续部署。作为持续交付——自动将生产就绪型构建版本发布到代码存储库——的延伸,持续部署可以自动将应用发布到生产环境。由于在生产之前的管道阶段没有手动门控,因此持续部署在很大程度上都得依赖精心设计的测试自动化。
  • 持续部署意味着开发人员对应用的更改在编写后的几分钟内就能生效(假设它通过了自动化测试)。这更加便于持续接收和整合用户反馈。所有这些 CI/CD 的关联步骤都有助于降低应用的部署风险,因此更便于以小件的方式(而非一次性)发布对应用的更改。

1.2 基于Docker的CI/CD

基于Jenkins实现流程图:

  • Jenkins每天定时从代码仓库中检出代码进行编译,编译成功后,将会自动进行镜像构建,并将构建好的镜像推送到Docker Registry中。同时会自动触发测试环境自动拉取镜像,运行容器。
    在这里插入图片描述

gitlab + jenkins + docker 的CI/CD流程:

  1. 开发者向自己的gitlab网站提交了代码。
  2. 通过webhook让jenkins执行自动化构建过程。
  3. jenkins从git上拉取代码进行构建,如构建失败可配置邮件通知开发人员。
  4. jenkins在自动化构建脚本中调用docker命令将构建好的镜像push 私有镜像服务器。
  5. 同时,jenkins也可以直接执行remote shell启动构建好的容器。
  6. 服务端可以手动通过docker命令,从镜像仓库中心拉取镜像,进行手动
    在这里插入图片描述

二、安装jenkins

1.安装jdk环境。

yum -y install java-11-openjdk*

2.下载jenkins的war包。

wget https://get.jenkins.io/war-stable/2.401.2/jenkins.war --no-check-certificate

3.启动war包,前台运行。

nohup java -jar jenkins.war &

4.http://ip:8080访问网页,配置安装信息,进入首页。

在这里插入图片描述

5.安装maven插件。

wget https://dlcdn.apache.org/maven/maven-3/3.9.3/binaries/apache-maven-3.9.3-bin.tar.gz --no-check-certificate


tar zxf apache-maven-3.9.3-bin.tar.gz -C /usr/local/
ln -s /usr/local/apache-maven-3.9.3 /usr/local/maven

三、页面管理

3.1 当前系统用户配置

1.更改时间戳。
在这里插入图片描述
在这里插入图片描述

3.2 系统配置

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

3.3 全局工具配置

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

3.4 插件管理

在这里插入图片描述
1.这里遇到一个报错。
在这里插入图片描述

2.解决方法,添加如下配置,再重启服务。

cat /etc/sysconfig/jenkins 
NS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.model.DownloadService.noSignatureCheck=true"

3.4.1 安装插件

1.进入Advanced settings配置栏,修改Update Site项的下载地址,再重启服务。

http://mirror.xmission.com/jenkins/updates/update-center.json

在这里插入图片描述

2.修改Jenkins工作目录下updates中的default.json文件,war包安装的工作目录在/root/.jenkins目录下。

vim /root/.jenkins/updates/default.json

//替换源地址。
:1,$s/https:\/\/updates.jenkins.io\/download/http:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g

3.重启jenkins服务,再开始下载。

在这里插入图片描述

3.4.2 上传插件

1.手动下载插件到本地,地址
2.上传插件。
在这里插入图片描述
3.查看效果。

在这里插入图片描述

3.5 用户设置

1.创建用户。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.6 查看日志

在这里插入图片描述

3.7 汉化设置

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DevOps基础服务2——Jenkins 的相关文章

  • 如何在 MultiJob 插件中传递内部版本号?

    The 多作业插件 https wiki jenkins ci org display JENKINS Multijob Plugin很棒 我想将它用于我的构建过程 但之前有一个问题必须解决 有三个作业 A B 和 C SVN 触发作业 A
  • 重新启动我的 sql 时,jenkins 失败“sudo:不存在 tty,并且未指定 Askpass 程序 抱歉,请重试。”

    我刚刚配置了 jenkins 在预构建步骤中我尝试重新启动 jenkins 但最终出现以下错误 Commencing build of Revision c5b9f8daac092efc5396d80f568a2cf89ae8b697 or
  • Jenkins 管道作业无法在 UI 中完成

    目前的问题是詹金斯管道作业确实运行并正常完成 但在 UI 中 该工作会一直保留 直到我们通过 UI 中止他 这种情况并不常见 大概只占 5 的工作岗位 这可能是詹金斯错误 重新加载配置问题或只是节点上的流量太大 我真的不确定 由于所有 有问
  • 仅运行相应源代码已更改的单元测试?

    我正在 Jenkins CI 服务器中运行单元测试和 Selenium 测试 众所周知 在大型项目中测试需要很长时间才能运行 Java 是否有一个工具 框架只能触发其源代码已更改的测试 这是因为并非每次对 SCM 的提交都会影响源代码的所有
  • JobDSL - 如果 Jenkins 中尚不存在则创建一个新作业

    我创建了这个 Groovy JobDSLs 脚本来生成新的 Jenkins 作业 List screen AAA Description AAA Description for item in screen job item 0 descr
  • Xvfb 插件可在 Jenkins 上同时运行多个作业实例

    我在 Jenkins 有一份工作 负责运行用 Selenium 编写的 UI 测试 该作业可以同时运行它的多个实例 我在尝试使用 Xvfb Xvfb插件 https wiki jenkins ci org display JENKINS X
  • Jenkins 管道中的节点、阶段和步骤之间有什么区别?

    我试图了解如何构建 Jenkins 2 7 pipeline Groovy 脚本 我已经读过管道教程 https github com jenkinsci pipeline plugin blob master TUTORIAL md 但觉
  • 整合 Jenkins 电子邮件通知

    我有一个 Jenkins 项目 由 3 个简单的自由式作业组成 每个作业都有自己的构建从站 每个作业都与一个单独的平台相关联 linux mac 或 windows 当开发人员提交代码时 Jenkins 很快就会轮询存储库 在每个构建从属设
  • Jenkins 并行管道中的顺序阶段

    我在 Jenkins 中有一个动态脚本化管道 它有许多并行阶段 但在每个阶段内都有多个串行步骤 我已经浪费了好几天的时间试图让它工作 无论我尝试什么 所有串行子阶段都集中到一个阶段 这是我现在所拥有的 node stage Parallel
  • 在 selenium 下运行 chromedriver 日志时,如何减少其详细程度?

    我的功能测试的詹金斯失败报告充满了这样的行 selenium webdriver remote remote connection DEBUG Finished Request selenium webdriver remote remot
  • Hudson/Jenkins Git 构建所有分支

    我们有很多开发人员创建了我想要构建的功能分支 每晚我们都会运行一个需要在每个分支上运行的代码质量工具 我也不喜欢静态配置 因为分支数量每隔几周就会发生变化 在 Git 配置中有一个字段 分支说明符 默认为空白 如果你放在那里 它将构建来自所
  • Azure Devops Pipeline 环境资源代理安装问题

    我一直在尝试在 azure devops 中向我们的管道添加环境资源 但每次我使用他们提供的 powershell 脚本安装它时 它都会要求我提供标签 如果我不想输入标签 则会出错 如果我选择放入标签 则会出错 无论哪种方式 它每次都会重新
  • 在 Jenkins 中执行批处理文件

    我有一个简单的批处理文件 我想要从 Jenkins 调用 运行 执行该文件 Jenkins 中有同样的插件吗 如何从 Jenkins 执行批处理文件 如果有相同的教程或文档 无需为此添加新插件 在Jenkins 选择您的工作名称并转到配置部
  • 如何从詹金斯管道获取所有参数(参数化构建)?

    我正在较新版本的 jenkins 中构建一个参数化管道作业 在较旧版本的 jenkins 中 我使用 getbinding getVariables 来检索所有参数 但较新的版本它返回空值 如何在新版本的詹金斯中检索参数 全部 您可以使用
  • Gitlab 合并请求事件不触发 Jenkins 多分支管道

    我正在尝试在合并请求事件上使用 GitLab Webhook 触发 Jenkins 多分支管道作业 当我测试 Webhook 时 我收到以下消息 Hook 执行成功但返回 HTTP 409 当我设置不同的 GitLab Webhook 例如
  • Jenkins:从神器部署战争文件

    我们正在使用Jenkins建立 maven 并部署工件 JAR 和 WAR s 到内部工件服务器 快照和版本 对于部署 目前 我们有 Jenkins 作业来打包 war 文件 来自发布 scm 标签 并部署到不同的环境 服务器 我们想要跳过
  • 如果其中一个 ant 测试失败,如何使 Jenkins 显示失败

    我有几个测试应该执行 无论彼此是否成功 我希望 Jenkins Hudson 显示red如果这些测试中至少有一项失败 则灯亮 我当前的 为了清楚起见而简化 配置如下 ci sh ant 构建 xml
  • 如何根据特定条件触发电子邮件以在 Jenkins 中成功构建

    每当某个条件在构建后步骤的执行 shell 中成立时成功的构建 我想触发电子邮件发送 问题是 即使条件不成立 构建也会被视为success 我正在尝试实现的内容 if condition true then
  • Clearcase rebase 来自 Jenkins 的问题

    我有一个 perl 脚本来将推荐的基线重新设置为 Dev 视图 Dev 视图位于 M 驱动器中 当我从命令提示符运行脚本时 它正在工作 但是当我从 Jenkins 调用时 相同的脚本失败 我在 Jenkins 中使用与登录 ID 相同的用户
  • Jenkins 无法访问 SVN (https://)

    我创建了 Jenkins 项目 该项目在 SVN 上有文件 https repo xxx xxx svn priv 项目名称 https repo xxx xxx svn priv projectname 证书是自签名的 我的问题是 Jen

随机推荐

  • org.dom4j.DocumentException: null Nested exception: null解决

    org dom4j DocumentException null Nested exception null at org dom4j io SAXReader read SAXReader java 484 at org dom4j io
  • 【SpringCloud实战开发总结】

    Vue开发总结 1 Vue 开启Watch监听 2 on blur 3 disabled 4 InputNumber标签中的 max和 min 5 Select标签用于模糊查询 6 强制渲染的三种方法 7 增加下拉框宽度 8 vue前端校验
  • DHT11温湿度传感器编程详解

    一 DHT11介绍 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器 采用专用的数字模块采集技术和温湿度传感技术 无需复杂的电路处理 传感器包括一个电阻式感湿元件和一个NTC测温元件 并与一个高性能8位单片机相连接
  • D3D初学入门一(配置开发环境及绘制D3D窗口)

    最近一直接触的都是C 的东东 好久没写C 代码了 怕手生忘记了 打算写写C 的代码 写什么好呢 想来想去 以前的工作学过接触了些OpenGL 那我就学习一下D3D吧 原以为D3D的中文入门资料会很多的 结果找了半天也没找到合适的 哎 随便将
  • struts2+hibernate+spring配置详解

    struts2 hibernate spring配置详解 struts2 hibernate spring配置详解 哎 当初一个人做好难 现在终于弄好了 希望自学这个的能少走些弯路 以下是自己配置的案例 注意 要想明白的比较好 请下载这个配
  • java字符串是否相等的三种判断方法

    1 比较的是否是同一对象 eg String str1 abc str2 abc if str1 str2 结果为true 因为在java中字符串的值是不可改变的 相同的字符串在内存中只会存 一份 所以a和b指向的是同一个对象 eg Str
  • 14.Netty框架的C#实战使用

    文章目录 博客概述 场景与实现 C 服务器端实现 C 客户端的写法 博客概述 我是java线的工程师 但是技术栈有点全栈的意思 在某次项目中需要用到c 的socket通讯 查询之后惊喜的发现c 也有netty框架 dotnetty gith
  • window10下libpng编译

    系列文章目录 文章目录 系列文章目录 前言 一 问题原因 二 使用步骤 1 引入zlib库 2 configure 3 Grnerate 前言 libpng编译出错 Selecting Windows SDK version 10 0 19
  • Basic Level 1081 检查密码 (15分)

    题目 本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能 该网站要求用户设置的密码必须由不少于6个字符组成 并且只能有英文字母 数字和小数点 还必须既有字母也有数字 输入格式 输入第一行给出一个正整数 N 100 随后 N 行
  • Hyper-V虚拟机网络设置

    Hyper V是基于64位系统 在Windows10自带的虚拟化工具 1 Hyper V的启动和管理 控制面板 gt 程序 gt 打开或关闭Windows功能中启用Hyper V 第一次设置后需要重启电脑 2 打开Hyper V管理器 3
  • C语言数据结构循环双链表

    include
  • SpringCloud OpenFeign 请求重试

    前言 真实的微服务业务场景中 可能出现跨服务调用失败的情况 最常见的就是被调用的服务正在发布 由于微服务之间通常有依赖关系 发布有一定的先后顺序 对于一个微服务应用常见的发布策略有两种 先停掉集群中一半的实例 然后重新启动这些应用 完成之后
  • IMX6学习记录(19)-移植Cjson

    上面是我的微信和QQ群 欢迎新朋友的加入 1 地址 地址 https github com DaveGamble cJSON 2 简单应用 解压到Ubuntu下 直接在Ubuntu下使用 gcc test c cJSON c o test
  • fisco-bcos区块链webase浏览器无法加载验证码,报错无法登陆

    fisco bcos区块链webase浏览器无法加载验证码 报错无法登陆 浏览器里验证码加载不出来 图中显示的是webase nodemanager模块出错 检查log文件 发现nodemanager模块下确实报错 但再细查后发现实际上问题
  • OPENCV MAT mat.inl中release(),clone(),copyto()等函数一直莫名异常

    问题 OPENCV MAT mat inl中release clone copyto 等函数一直莫名异常 今天三维点云转二维图的时候 一直出现莫名奇妙的问题 最后发现是越界的问题 需要注意 1 cv mat cv Mat zeros Siz
  • 读书笔记:Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression

    摘要 在目标识别过程中 IOU是最流行的一个评价基准 在进行边框优化的过程中 IOU一般是取最大值 对一个标准进行优化的目标函数是其标准本身 在2D回归的过程中 IOU展示了他直接能作为一个损失函数 然而 IOU展现了他的缺点 在没有重叠的
  • 【CH32】

    系列文章目录 CH32 00 开发环境搭建 CH32 01 新建工程 下载 运行 调试 CH32 02 常用外设 GPIO 失败了也挺可爱 成功了就超帅 文章目录 前言 1 GPIO简介 2 IO口的内部结构框图 保护二极管 上下拉电阻 施
  • 【技术开发经验分享】计算机毕业设计PySpark+Hadoop知识图谱电影推荐系统 Django电影推荐系统 用户画像电影推荐系统 电影数据分析 电影可视化 电影爬虫 电影大数据 大数据毕业设计 大数

    简介 本系统为我的本科毕业设计项目 毕设题目为 基于用户画像的电影推荐系统的设计与实现 本系统是以Django作为基础框架 采用MTV模式 数据库使用MongoDB MySQL和Redis 以从豆瓣平台爬取的电影数据作为基础数据源 主要基于
  • 简单漏洞:CVE-2022-0543 Redis Lua 沙盒绕过

    一 描述 影响范围 Debian系得linux发行版本 Ubuntu Debian系得linux发行版本 其并非Redis本身漏洞 形成原因在于系统补丁加载了一些redis源码注释了的代码 揭露时间 2022 3 8 二 原理 redis在
  • DevOps基础服务2——Jenkins

    文章目录 一 基本了解 1 1 CI CD介绍 1 2 基于Docker的CI CD 二 安装jenkins 三 页面管理 3 1 当前系统用户配置 3 2 系统配置 3 3 全局工具配置 3 4 插件管理 3 4 1 安装插件 3 4 2