当前位置: 首页 > news >正文

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在线下载插件的问题。终于不用再因手动下插件而烦恼了~~~,同时希望这篇文章能帮助到有类似问题的求助者们!!!

相关文章:

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

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、网上最多的默认解决方法1、jenkins界面配置清华源2、替换default.json文件 二、解决低版本Jenkins在线安装插件问题1.手动下载插件并导入2.低版本jenkins在…...

CSS3新增渐变(线性渐变、径向渐变、重复渐变)

1.线性渐变 代码: 效果图: 使文字填充背景颜色: 效果图: 2.径向渐变 代码: 效果图: 代码图: 效果图: 3.重复渐变 代码: 效果图:...

汽车免拆诊断案例 | 2017款凯迪拉克XT5车组合仪表上的指针均失灵

故障现象 一辆2017款凯迪拉克XT5车,搭载LTG 发动机,累计行驶里程约为17.2万km。车主反映,组合仪表上的发动机转速表、车速表、燃油表及发动机冷却液温度表的指针均不指示,但发动机起动及运转正常,且车辆行驶正常。 故…...

Cloudera Hue深度解析:安装、配置到高级用法

Hue的介绍 HUE 是一个开源的 Apache Hadoop UI 系统,早期由 Cloudera 开发,它是基于 Python Web 框架 Django 实现,后来贡献给开源社区。它包括 3 个部分 hue ui,hue server, hue db。通过使用 Hue 我们可以通过浏览…...

17、论文阅读:VMamba:视觉状态空间模型

前言 设计计算效率高的网络架构在计算机视觉领域仍然是一个持续的需求。在本文中,我们将一种状态空间语言模型 Mamba 移植到 VMamba 中,构建出一个具有线性时间复杂度的视觉主干网络。VMamba 的核心是一组视觉状态空间 (VSS) 块,搭配 2D 选择…...

GPT-5 一年后发布?对此你有何期待?

GPT-5 一年后发布?对此你有何期待? 在最新技术的洪流中,GPT-5即将登场。你是否在思考,它将为我们的生活和工作带来哪些变革?接下来的探索,或许可以启发你对未来的想象。让我们一起深入这场关于未来AI语言模…...

2024中国国际数字经济博览会:图为科技携明星产品引领数智化潮流

10月24日,全球数智化领域的目光齐聚于中国石家庄正定,一场关于数字经济未来的盛会—2024中国国际数字经济博览会在此拉开帷幕。 云边端算力底座的领航者,图为科技携其明星产品惊艳亮相,期待与您共赴一场数智化的非凡之旅&#xff…...

大模型面试题:常见的微调方法有哪些说下原理并对比

更多实时面试题总结请关注我的公众号"算法狗" 或移步至 https://pica.zhimg.com/80/v2-7fd6e77f69aa02c34ca8c334870b3bcd_720w.webp?sourced16d100b 这里说的微调主要是指参数微调,参数微调的方法主要有以下几种: Adapter 在预训练模型每一层…...

CentOS 9 Stream 上安装 PostgreSQL 16

CentOS 9 Stream 上安装 PostgreSQL 16 CentOS 9 Stream 上安装 PostgreSQL 16设置密码并且远程连接 CentOS 9 Stream 上安装 PostgreSQL 16 在 CentOS 9 Stream 上安装 PostgreSQL 16 可以通过以下步骤完成: 添加 PostgreSQL 官方仓库: PostgreSQL 提…...

【数据分享】1901-2023年我国省市县镇四级的逐年最高气温数据(免费获取/Shp/Excel格式)

之前我们分享过1901-2023年1km分辨率逐月最高气温栅格数据和Excel和Shp格式的省市县镇四级逐月最高气温数据,原始的逐月最高气温栅格数据来源于彭守璋学者在国家青藏高原科学数据中心平台上分享的数据!基于逐月数据我们采用求年平均值的方法得到逐年最高…...

使用C++和QT开发应用程序入门以及开发实例分享

目录 1、搭建开发环境(VS2010和QT4.8.2) 2、创建一个QT窗口 3、在QT窗口中添加子窗口 4、QT界面布局 5、QT信号(SIGNAL)和槽(SLOT) 6、最后 C软件异常排查从入门到精通系列教程(专栏文章列…...

Openlayers高级交互(20/20):超级数据聚合,页面不再混乱

本示例在vue+openlayers中使用cluster生成聚合数据的效果。在OpenLayers中实现点聚合(clustering)是一个常见的需求,特别是在处理大量地理数据点时。聚合可以提高地图的性能并减少视觉上的混乱。 一、示例效果图 专栏名称内容介绍Openlayers基础实战 (72篇)专栏提供73篇文…...

qt QStandardItemModel详解

1、概述 QStandardItemModel是Qt框架中提供的一个基于项的模型类,用于存储和管理数据,这些数据可以以表格的形式展示在视图控件(如QTableView、QTreeView等)中。QStandardItemModel支持丰富的数据操作,包括添加、删除…...

光伏设计软件如何快速上手?

光伏设计软件是现代光伏系统设计不可或缺的工具,它们大大简化了设计流程,提高了设计效率。对于新手来说,快速上手一款光伏设计软件可能会显得有些困难,但只要掌握了一些基础操作,就能迅速提升设计技能。 1、导入CAD图片…...

Mac下安装Apache JMeter并启动

一、下载JMeter https://jmeter.apache.org/download_jmeter.cgi 下载好对应的压缩包,解压后即可,并将解压后的文件夹放至自己想要存放的位置。 二、启动JMeter 进入解压后的文件夹下的bin目录cd /usr/local/apache-jmeter-5.6.3/bin配置语言vim jmet…...

L6.【LeetCode笔记】合并两个有序链表

1.题目 https://leetcode.cn/problems/merge-two-sorted-lists/ 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2&…...

讲解Golang选择语句

Golang选择语句 1. if 语句1.1 基本语法1.2 if-else 语句1.3 if-else if-else 语句1.4 简短声明和初始化1.5 多个条件的逻辑运算 2. switch 语句2.1 基本语法2.2 示例2.3 switch 语句与 if 的对比2.4 不指定表达式2.5 fallthrough 语句2.6 case 支持多个值 3. 总结 Go语言中的选…...

练习LabVIEW第四十一题

学习目标: 编写一个程序测试自己在程序前面板上输入一段文字“CSDN是一个优秀的网站”所用的时间。 开始编写: 前面板放置一个数值显示控件,程序框图添加顺序结构共三帧,第一帧放一个获取日期/时间(秒)函…...

应对AI与机器学习的安全与授权管理新挑战,CodeMeter不断创新引领保护方案

人工智能(AI)和机器学习(ML)技术正在快速发展,逐渐应用到全球各类主流系统、设备及关键应用场景中,尤其是在政府、商业和工业组织不断加深互联的情况下,AI和ML技术的影响日益广泛。虽然AI技术的…...

【2024最新版Kotlin教程】Kotlin第一行代码系列第五课-类继承,抽象类,接口

【2024最新版Kotlin教程】Kotlin第一行代码系列第五课-类继承,抽象类,接口 为什么要有继承呢,现实中也是有继承的,对吧,你继承你爸的遗产,比如你爸建好了一个房子,儿子继承爸,就得了…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...