docker安装低版本的jenkins-2.346.3,在线安装对应版本插件失败的解决方法


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、网上最多的默认解决方法
    • 1、jenkins界面配置清华源
    • 2、替换default.json文件
  • 二、解决低版本Jenkins在线安装插件问题
    • 1.手动下载插件并导入
    • 2.低版本jenkins在线安装对应版本的插件
      • 2.1.安装nginx
      • 2.2.添加插件转发配置文件
    • 2.3.jenkins界面配置Update Site
    • 2.4.报错解决
    • 2.5.认证失败报错解决方法
    • 2.6.插件下载验证
  • 总结


前言

这几天在强化jenkins知识过程中,自己基于docker搭建了2.346.3版本的Jenkins,但是在jenkins启动后,却发现不论是选择自定义插件安装还是默认插件安装都会下载失败。网上找了很多办法说是将原来的updates.jenkins.io源替换为国内的清华源,但是尝试后发现,替换为清华源之后,加载的插件都是最近版本的jenkins插件,而不是我指定的2.346.3jenkins版本的插件。所以为了不使用手动下载插件在导入这种笨办法(最开始使用这种方法,要下载各种依赖插件,太痛苦了~~~~),才有了这篇文章。


提示:以下是本篇文章正文内容,下面案例可供参考

一、网上最多的默认解决方法

1、jenkins界面配置清华源

配置方法如下所示,配置后不需要重启jenkins
清华源地址: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

注意事项:该方法配置后,jenkins加载的可安装插件是最新版本的jenkins插件,而不是低版本的jenkins插件。仍然导致低版本的jenkins不能正常安装对应的插件。如果你的jenkins是最新版本,则直接配置这个源即可使用

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

2、替换default.json文件

网上还有一种常见的解决方法就是手动替换default.json文件并重启Jenkins,同样该方法也只适用于最新版本的jenkins,而不适用于低版本jenkins

[root@jenkins updates]#  sed -i 's#updates.jenkins.io/download/plugins#mirrors.tuna.tsinghua.edu.cn/jenkins/plugins#g' /export/jenkins/updates/default.json
[root@jenkins updates]#  sed -i 's#www.google.com#www.baidu.com#g' /export/jenkins/updates/default.json

因此,网上这两种方法都是基于最新版本jenkins 的解决方案,那么低版本的jenkins安装插件怎么解决呢?难不成就只能采用手动下载导入的笨方法了吗?

二、解决低版本Jenkins在线安装插件问题

卖个关子,在此前,先给大家看一下手动下载导入插件的痛点

1.手动下载插件并导入

jenkins插件下载地址:https://plugins.jenkins.io/

在这里插入图片描述
此处以blueocean插件为例,展示手动下载的通点,太痛辣
在这里插入图片描述
看下面这个图,你就下载吧宝贝,这一个插件就依赖这么多其他插件,而且其他插件还可能依赖别的插件,你要是手动下载安装,估计心里疯狂mmp
在这里插入图片描述
再看jenkins手动导入hpi结尾插件,它T*M还只能一次导入一个,还不能多个导入,如果导入一个A插件进行安装,这个A插件还依赖别的B插件的话,那么sorry,你只能去先下载安装B插件,如果B插件依赖C插件,不好意思,俄罗斯套娃已开始,你就花10几分钟找插件下插件吧
在这里插入图片描述

2.低版本jenkins在线安装对应版本的插件

终于解决啦

2.1.安装nginx

在jenikins机器或者别的机器进行安装nginx,确保和jenkins机器网络通即可。此处为了节省资源,我在jenkins机器上进行了安装

[root@jenkins ~]# yum -y install nginx

2.2.添加插件转发配置文件

为了省事直接修改nginx.conf主配置文件,对server块部分添加一些代码

    server {listen       80;#       listen       [::]:80;server_name  192.168.56.120;root         /usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;location / {sub_filter_once off; #关闭对页面中每个匹配项只替换一次的限制,使得所有匹配项都可以被替换。sub_filter_types *; #设置 sub_filter 替换的内容类型,这里使用 * 表示所有类型的内容都会被替换。sub_filter 'https://updates.jenkins.io' 'http://192.168.56.120';#在页面内容中,将 https://updates.jenkins.io 替换成 http://192.168.56.120。#这是为了将 Jenkins 的更新地址改为本地 IP 地址,避免直接访问外部地址。proxy_pass https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/;}location /download/plugins {proxy_pass http://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins; #清华源插件地址}
上述 Nginx 配置主要用于反向代理和处理 Jenkins 更新和插件的请求:1、将 / 路径下的 Jenkins 更新 URL 替换为本地服务器的 IP 地址,并转发到清华镜像。2、将 /download/plugins 路径下的插件下载请求代理到清华镜像站点。3、因为Jenkins源站点是https协议的,jenkins 会校验SSL证书有效性,因此使用sub_filter模块将update-center.json返回的内容修改为http协议的

在这里插入图片描述

2.3.jenkins界面配置Update Site

在这里插入图片描述
为什么配置这个地址http://192.168.56.120/dynamic-2.346/update-center.json?

1、https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/ 
这是清华源更新插件地址,这个目录下包含多个版本的插件,如下图1所示2、在对应的插件版本目录下,有一个update-center.json文件,这个文件包含了对应插件的下载地址,如下图2所示
补充:1、dynamic-2.346代表安装的Jenkins是非LTS版本 2.346代表jenkins版本号2、dynamic-stable-2.346代表安装的是jenkins的LTS版本因此,在选择时注意这两个区分。如上述,我配置的是dynamic-2.346。

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

2.4.报错解决

配置了上述地址并提交后,点击Jenkins插件管理-->可用插件会报如下错误
在这里插入图片描述
查看jenkins日志,有如下报错,认证校验失败的错误
这是因为修改了默认的updater-center.json的内容.Jenkins会对其进行校验,校验逻辑在源码core/src/main/java/hudson/PluginManager.java中checkUpdateServer方法中可以看到
EVERE hudson.PluginManager#doCheckUpdatesServer: 尝试检查更新中心1次后失败。最后的异常是:Signature verification failed in update site ‘default’ (显示详情)

java.security.cert.CertificateExpiredException: NotAfter: Thu May 02 22:40:15 CST 2024
at sun.security.x509.CertificateValidity.valid(CertificateValidity.java:277)
at sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:677)
at sun.security.provider.certpath.BasicChecker.verifyValidity(BasicChecker.java:190)
at sun.security.provider.certpath.BasicChecker.check(BasicChecker.java:144)
at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator
`

2.5.认证失败报错解决方法

	解决方法:在jenkins启动中添加hudson.model.DownloadService.noSignatureCheck=true启动参数即可该参数对应的源码位置在core/src/main/java/hudson/model/DownloadService.java signatureCheck方法

dockers启动的Jenkins添加这个启动参数

[root@jenkins ~]# docker run -itd --restart=always --name jenkins -p 18080:8080 -p 18090:50000 \
-v /export/jenkins:/export/jenkins \
-v /var/run/docker.sock:/var/run/docker.sock  \
-v /usr/bin/docker:/usr/bin/docker \
-e JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true \ #指定参数
--memory 4G \
jenkins20241103:latest

非容器化启动的jenkins
在 vim /etc/sysconfig/jenkins中添加以下配置,然后重启Jenkins
在这里插入图片描述

2.6.插件下载验证

在此之前,已经安装了role-stragy插件,如下所示
在这里插入图片描述
验证: 在线安装ansible插件、pipeline插件
在这里插入图片描述
在线安装过程
在这里插入图片描述
在这里插入图片描述


总结

终于在几次试验后,解决了低版本Jenkins在线下载插件的问题。终于不用再因手动下插件而烦恼了~~~,同时希望这篇文章能帮助到有类似问题的求助者们!!!

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

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

相关文章

算法专题:栈

目录 1. 删除字符串中的所有相邻重复项 1.1 算法原理 1.2 算法代码 2. 844. 比较含退格的字符串 2.1 算法原理 2.2 算法原理 3. 基本计算器 II 3.1 算法原理 3.2 算法代码 4. 字符串解码 4.1 算法原理 4.2 算法代码 5. 验证栈序列 5.1 算法原理 5.2 算法代码 1.…

ZDH权限-扩展支持数据权限

目录 项目源码 预览地址 安装包下载地址 ZDH权限模块 ZDH权限扩展更细粒度方案 第一种方案: 第二种方案: ZDH权限扩展支持数据权限-新增属性 总结 感谢支持 项目源码 zdh_web: GitHub - zhaoyachao/zdh_web: 大数据采集,抽取平台 预览地址 后…

交换机的基本配置

交换机的基本配置 实验题目实验目的实验任务实验设备实验环境实验步骤VLAN 的简单配置跨交换机 vlan 的配置主机配置信息表解释: vlan 间路由 实验题目 交换机的基本配置。 实验目的 1) 理解交换机的原理和应用场景; 2) 交换机的基本指令系统&#xf…

借助 Aspose.Words,使用 C# 从 Word 文档中删除页面

如果您正在寻找一种快速删除 Word 文档中不相关、过时或空白页的方法,那么您来对地方了。在这篇博文中,我们将学习如何使用 C# 从 Word 文档中删除页面。我们将逐步引导您完成该过程,提供清晰的示例,以帮助您以编程方式高效地从 W…

华为 HarmonyOS NEXT 原生应用开发: 动画的基础使用(属性、显示、专场)动画

2024年11月5日 LiuJinTao 文章目录 鸿蒙中动画的使用一、属性动画 - animation属性动画代码示例 二、显示动画 - AnimateTo三、专场动画 鸿蒙中动画的使用 一、属性动画 - animation 属性动画代码示例 /*** 属性动画的演示*/ Entry Component struct Index {State selfWidth:…

基于STM32的手式电视机遥控器设计

引言 本项目基于STM32微控制器设计了一个手式电视机遥控器系统,通过集成加速度传感器和陀螺仪,实现手势识别和遥控功能。该遥控器系统可以通过简单的手势操作实现对电视机的音量调节、频道切换和开关机控制等功能。项目涉及到硬件设计、手势识别算法和红…

基于SpringBoot+微信小程序+协同过滤算法+二维码订单位置跟踪的农产品销售平台-新

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: “农产品商城”小程序…

论文阅读-用于点云分析的自组织网络

目前存在的问题: 原始的SOM(1)训练结果与初始节点高度相关(2)样本更新规则取决于输入点的顺序3D 卷积神经网络(需要将数据转换为体素,存在分辨率损失和计算成本上涨的问题)、PointN…

ComfyUI和Photoshop相结合,PS内实现:文生图,图生图,高清放大,局部重绘,面部修复,设计师福音

本文主要介绍:ComfyUI和Photoshop相结合,一个平台实现:图像生成,放大,局部重绘,面部修复,实时绘画 简直是设计师的福音。 主要包括: Photoshop 的安装以及插件的安装 Creative Cl…

新一代跟踪器StrongSORT: Make DeepSORT Great Again论文解析—让 DeepSORT 再次伟大

新一代跟踪器StrongSORT: Make DeepSORT Great Again论文解析—让 DeepSORT 再次伟大 时间:2023年 机构:北京邮电大学 发表在:IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 25, 2023 代码源码地址: pytorch版本:https://github.com/dyh…

【力扣专题栏】重排链表,如何实现链表里面节点之间的交换?

题解目录 1、题目描述解释2、算法原理解析3、代码编写 1、题目描述解释 主要就是实现:第一个节点和最后一个节点交换,第二节点和倒数第二个节点交换,依次交换下去。 2、算法原理解析 3、代码编写 class Solution { public:void reorderList(…

TP-LINK TL-XDN7000H免驱版 ubuntu 20.04驱动安装

最近装机购买的主板没有无线网卡,PCIE网卡因为显卡占位无法安装,无奈只能购买USB无限网卡。 1 网卡型号 TP-LINK WiFi6免驱900M usb无线网卡 外置高增益 台式机笔记本电脑wifi接收器发射器 TL-XDN7000H 2 驱动下载链接 TL-XDN7000H免驱版 V1.1 Linu…

【初阶数据结构与算法】复杂度分析练习之轮转数组(多种方法)

文章目录 复杂度练习之轮转数组方法1方法2方法3 总结 复杂度练习之轮转数组 题目链接:https://leetcode.cn/problems/rotate-array/description/    为什么我们把这道题作为复杂度的练习题呢?是因为我们以后做题都会涉及到复杂度的计算,我…

H265编码丢帧问题分析

问题 通过海思芯片编码后,将编码的数据通过UDP网口发送到UDP 服务端,UDP服务端收到后保存成文件。 保存的文件有时候用VLC软件可以打开。有时候不能打开,同时用Elecard HEVC Analyer工具打开,发现VLC不能打开时丢帧。如下图,实际为858帧,而此处只有846帧。 分析 UDP包…

如何学习Java“高并发”,并在项目中实际应用?

高并发编程 提到并发编程很多人就会头疼了;首先就是一些基础概念:并发,并行,同步,异步,临界区,阻塞,非阻塞还有各种锁全都砸你脸上,随之而来的就是要保证程序运行时关键…

《TCP/IP网络编程》学习笔记 | Chapter 1:理解网络编程和套接字

《TCP/IP网络编程》学习笔记 | Chapter 1:理解网络编程和套接字 《TCP/IP网络编程》学习笔记 | Chapter 1:理解网络编程和套接字基本概念服务端客户端 基于 Linux 平台的 "Hello world!" 服务端和客户端基于 Linux 的文件操作打开文件关闭文件…

C#-类:声明类、声明类对象

一:类的声明 class 类名 {//特征——成员变量//行为——成员方法//保护特征——成员属性//构造函数和析构函数//索引器//运算符重载//静态成员 }类名:帕斯卡 同一个语句块中的不同类 不能重名 二:声明类对象 2.1 类的声明 ≠ 类对象的声…

qt QProgressBar详解

1、概述 QProgressBar是Qt框架中的一个控件,专门用于显示任务的进度。它提供了一个可视化的进度条,让用户能够直观地了解任务的完成程度。QProgressBar支持水平和垂直两种显示方向,并且可以通过设置最小值和最大值来指定进度条的范围。此外&…

Node.js 入门指南:从零开始构建全栈应用

​🌈个人主页:前端青山 🔥系列专栏:node.js篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来node.js篇专栏内容:node.js-入门指南:从零开始构建全栈应用 前言 大家好,我是青山。作…

基于vue框架的的冷链食品物流信息管理系统v81wb(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,司机,冷链食品,冷链食品订单,冷链车辆,配送信息,订单费用,站点信息,食品种类,省,市,食品质量,县 开题报告内容 基于Vue框架的冷链食品物流信息管理系统开题报告 一、研究背景与意义 随着全球食品贸易的快速发展和消费者对食品品质…