jenkins 安装插件失败_Jenkins 自动化安装插件

b8c1b2b326301086b0f3ab0348d6c651.png

手工安装 Jenkins 插件的方法

通常,我们有两种方法安装 Jenkins 插件。第一种方法是到 Jenkins 插件管理页面搜索插件,然后安装。第二种方法是上传 Jenkins 插件的 hpi 文件安装。这两种方法能满足大多数人的需求。

第一种方法,如下图所示: 9b057f967c1ce67e4b291714e0b2a125.png

第二种方法,如下图所示: 0009dd8460e1842dc66aa216f13e3323.png

但是对于需要保证 Jenkins 稳定或在 Jenkins 上进行二次开发的同学来说,以上方法是无法满足需求的。

第一种方法是无法指定插件的版本。第二种方式必须自己找到该插件的依赖树,然后根据依赖关系一个个地安装。是的,手工上传插件的这种方法,Jenkins 是不会自动下载依赖的。

还有,就是这两种方式都无法实现批量安装。

自动安装插件的方法

那么,有什么方法能指定插件的版本,又能自动下载它的依赖,还能批量下载呢?

幸运的是,Jenkins 的 Docker 镜像的代码仓库里的 install-plugins.sh 脚本已经实现。只不过需要我们拿过来小小修改才能使用。笔者修改后创建了相应的代码仓库:jenkins-install-plugins-shell 。链接在文章末尾。

以下是 jenkins-install-plugins-shell 的使用方法:

  1. 将代码 clone 到 JENKINS_HOME 目录中。

cd $JENKINS_HOME
git clone https://github.com/zacker330/jenkins-install-plugins-shell.git
cd jenkins-install-plugins-shell
  1. 在 plugins.txt 中加入希望安装的插件 在 jenkins-install-plugins-shell 目录中,有一个 plugins.txt 文件,在文件中写入希望安装的插件及版本号。例如:

ansible:1.0
powershell:1.3
  1. 执行安装

 # Jenkins War 的路径,用于分析export JENKINS_WAR_PATH=<Jenkins war文件的路径>
chmod +x install-plugins.sh jenkins-support
./install-plugins.sh < plugins.txt
  1. 重启 Jenkins install-plugins 本质上做的事情就只是将插件从云端下载到 JENKINS_HOME 下的 plugins 目录中。要使安装的插件生效,还需要重启 Jenkins。

关于 Jenkins 插件的名称

Jenkins 插件有两个名称。一个叫 display name,一个叫 short name。比如 Ansible 插件的 disply name 为 Ansible plugin,short name 为 ansible。

如何知道一个插件的 short name 呢?可以在 Jenkins 插件官网上找到,比如 Ansible 的:

5e1ecb1394e8f0cfadbf4271aa64e936.png

在 plugins.txt 中使用的是 short name。

总结

笔者为什么一定要确定 Jenkins 插件的版本?是因为插件的版本会影响 Jenkins 流水线的可靠性。所以,笔者才会这么在意 Jenkins 插件的版本。

附录

  • Jenkins 官方 Docker 镜像中的自动化插件安装脚本:https://github.com/jenkinsci/docker/blob/master/install-plugins.sh

  • 笔者修改后的自动化插件安装脚本: 

    https://github.com/zacker330/jenkins-install-plugins-shell


相关阅读(点击查看原文,与我们互动):

蓝绿部署和金丝雀部署

使用 Jenkins X 渐进式交付

什么是 CI/CD?

Jenkins 插件开发之旅~上

Jenkins 插件开发之旅~下

ff7cf8e67d8c354b118d4fd6be7228ab.png

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

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

相关文章

anaconda下python中matplotlib画图无法显示中文

第一步&#xff1a;在自己电脑里选择喜欢的字体&#xff0c;搜索位置为C:\Windows\Fonts&#xff0c;我选择的是SimSun 第二步 查找Matplotlib默认字体目录 打开anaconda prompt,输入python&#xff0c;接下来进入查找过程 查找代码如下 import matplotlib print(matplotlib.…

Python编程及高级数据分析

一、介绍&#xff08;11月22日&#xff09; 小问题找函数 大问题找包 python数据分析常用的包 数据库实现的功能的在panda包里面找 其中M\S\P是数据可视化工具 深度学习使用的包是pytorch(facebook支持) 中文的nlp&#xff1a;Jieba、pynlpir 英文的nlp:NLTK 学python前的准…

helm安装_Helm部署和体验jenkins

运行在Kubernetes上的Jenkins下图来自rancher官方博客&#xff0c;在kubernetes环境下&#xff0c;jenkins任务被交给各个pod执行&#xff0c;这些pod在需要时被创建&#xff0c;任务结束后被销毁&#xff0c;这样既能合理利用资源&#xff0c;又能给每个任务提供一致的干净的初…

【无标题】【一周安全资讯1223】一图读懂《工业和信息化部办公厅关于组织开展网络安全保险服务试点工作的通知》;15亿条纽约房产记录泄露

要闻速览 1、一图读懂《工业和信息化部办公厅关于组织开展网络安全保险服务试点工作的通知》 2、国家数据局《“数据要素”三年行动计划 (2024—2026年)》公开征求意见 3、中国信息通信研究院发布《公共数据授权运营发展洞察 (2023年)》 4、15亿条纽约房产记录泄露&#xff0c…

自定义键盘码_无线+矮轴≤299?ikbc S200 2.4G 机械键盘测评

早在18年初&#xff0c;Cherry就发布了适用于笔记本及超薄键盘的全新轴体MX Low Profile&#xff0c;也就是为人所熟知的“矮轴”。之后Ducky、酷冷至尊、FILCO、ikbc等一众厂商也先后推出了搭载Cherry矮轴的超薄机械键盘&#xff0c;不过市场表现一直有些不温不火。在码呆看来…

simpledateformat格式_如何使用SimpleDateFormat?

SimpleDateFormat是一种比较常用的时间类&#xff0c;可以实现对时间按照一定的字符串格式进行处理。DateFormat类的作用把时间对象转化成指定格式的字符串。反之&#xff0c;把指定格式的字符串转化成时间对象。DateFormat是一个抽象类&#xff0c;一般使用它的的子类SimpleDa…

李沐老师的《动手学深度学习PyTorch》中的d2lzh_python包的安装

关于RNN章节 以及模型章节等会使用到d2l的python包 cmd下载地址&#xff1a;pip install d2l -i https://pypi.doubanio.com/simple/

人体轮廓_人体艺术:赏世界著名的女人体油画:身体轮廓

阅读本文前&#xff0c;请您先点击上面的“十点姐姐”&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到文章了。每天都有分享&#xff0c;完全是免费订阅&#xff0c;请放心关注。 …

c语言未声明的标识符什么意思_C语言中%d和%f是什么意思啊?

%d表示输入或输出十进制有符号数&#xff1b;%f表示输入或输出浮点数&#xff08;float&#xff0c;四字节表示&#xff09;&#xff1b;在C语言中输出不同数据时需要用到不同的格式字符&#xff0c;%d是用来输出十进制整型数据的实际长度输出&#xff0c;%f是以小数形式输出单…

李沐老师《动手学深度学习》课程总结1

数据操作 1、 创建数组&#xff1a;形状、数据类型、数据值 2、 访问元素&#xff1a;[1, 2] 访问第二行第三列 [1, :] 访问第二行 [1:3, 1:] 子区域&#xff1a;第二行至第四行前一行到第二列之后所有 [::3, ::2] 子区域&#xff1a;每三行一跳 第零、三…行拿出; 第零、二…列…

gimp 抠图_gimp抠图教程:gimp快速实现抠图效果

摘要&#xff1a;将图像中需要的部分从画面中精确地提取出来&#xff0c;我们就称为抠图&#xff0c;抠图是后续图像处理的重要基础&#xff0c;关于gimp的快速抠图技巧你们知道吗?将图像中需要的部分从画面中精确地提取出来&#xff0c;我们就称为抠图&#xff0c;抠图是后续…

docker build -t_在Docker环境构建、打包和运行Spring Boot应用

为何考虑采用Docker&#xff1f;Docker是提供用户构建镜像的一种容器化技术&#xff0c;所构建的镜像包含了主要的应用程序和运行应用所需的所有依赖项。该镜像可在任何虚拟机或物理机器上的Docker容器上运行。它的强大之处在于允许用户在开发、测试、预生产和生产中运行同样的…

Java内部类是什么?

在类内部可定义成员变量和方法&#xff0c;且在类内部也可以定义另一个类。如果在类 Outer 的内部再定义一个类 Inner&#xff0c;此时类 Inner 就称为内部类&#xff08;或称为嵌套类&#xff09;&#xff0c;而类 Outer 则称为外部类&#xff08;或称为宿主类&#xff09;。 …

MOOC-人工智能实践:Tensorflow笔记4.2自制数据集txt文件和数据集不匹配解决办法(读取文件名并提取内容并合并原始内容与提取内容)

1、读取文件名称生成txt文件 # P01 批量读取文件名&#xff0c;并将读取的文件名保存到指定路径下的txt中&#xff08;带.*** 后缀&#xff09;import os def ListFilesToTxt(dir, file, wildcard, recursion):exts wildcard.split(" ")files os.listdir(dir)for …

file数组 删除文件_java编程IO基础之一:File类

在整个java.io包中&#xff0c;File类是唯一的一个与文件本身操作有关的类&#xff0c;既可以执行文件的创建、删除、重命名&#xff0c;取得文件大小和修改日期。File的构造函数&#xff1a;public File(String pathname) 给定一个要操作文件的完整路径。public File(File par…

excel工具箱_WPS搬来救兵智能工具箱,强大到Excel没有还手之力

EXCEL不加班眼见Excel连胜2局&#xff0c;WPS慌了&#xff0c;搬来救兵智能工具箱&#xff0c;这个神器&#xff0c;所到之处&#xff0c;问题瞬间解决。这智能工具箱究竟是何方宝物&#xff0c;强大到Excel没有还手之力&#xff01;Excel2016的闪电填充确实牛逼&#xff0c;不…

mysql cve 2016 3521_MySQL-based databases CVE -2016-6663 本地提权

date: 2016/11/3author: dlive0x01 漏洞原文翻译水平不高求轻喷感觉作者在写文章的时候有些地方描述的也不是特别清楚&#xff0c;不过结合poc可以清晰理解漏洞利用过程0x04漏洞利用过程总结给出了清晰的漏洞利用过程&#xff0c;结合poc食用效果更佳# http://legalhackers.com…

mysql 数据迁移_CentOS7迁移Mysql数据库文件

1、查看Mysql安装路径cat /etc/my.cnf2、查看数据盘路径df3、数据盘下创建mysql数据目录&#xff0c;设置目录磁盘写入权限cd /mnt1/xfrb_database/mkdir mysqlchmod -R 777 /mnt1/xfrb_database/mysql/ls -l -a目录创建和权限设置成功。4、停止Mysql服务&#xff0c;拷贝Mysql…

mysql json类型最大长度限制_MySQL json 数据类型

必须要5.7以上版本才能使用 写在开头 mysql json 的功能很强大,只是用来当一个储存数据的字段 就没什么意义了。 使用proto做交互的话,只要JSON 写得好 用proro.Unmarshal() 就可以很方便的转换类型 可以精简很多代码 JSON path 是以 $ 开头,之后就是JSON的层级使用。$ $[0]…

查看目录是否为内存盘_Linux buff/cache内存释放

free 命令 产看内存占用一览&#xff1a;free 参数&#xff1a;今天部署项目的时候&#xff0c;发现pm2命令卡顿不能正确执行&#xff0c;一开始以为是pm2版本的问题&#xff0c;后面升级pm2到最新版本也没有解决问题。既然和pm2本身没有关系&#xff0c;那么就从其它地方检查&…