首发于 Jenkins 中文社区git
一般,咱们有两种方法安装 Jenkins 插件。第一种方法是到 Jenkins 插件管理页面搜索插件,而后安装。第二种方法是上传 Jenkins 插件的 hpi 文件安装。这两种方法能知足大多数人的需求。github
第一种方法,以下图所示:docker
第二种方法,以下图所示:shell
可是对于须要保证 Jenkins 稳定或在 Jenkins 上进行二次开发的同窗来讲,以上方法是没法知足需求的。bash
第一种方法是没法指定插件的版本。第二种方式必须本身找到该插件的依赖树,而后根据依赖关系一个个地安装。是的,手工上传插件的这种方法,Jenkins 是不会自动下载依赖的。markdown
还有,就是这两种方式都没法实现批量安装。oop
那么,有什么方法能指定插件的版本,又能自动下载它的依赖,还能批量下载呢?spa
幸运的是,Jenkins 的 Docker 镜像的代码仓库里的 install-plugins.sh 脚本已经实现。只不过须要咱们拿过来小小修改才能使用。笔者修改后建立了相应的代码仓库:jenkins-install-plugins-shell 。连接在文章末尾。插件
如下是 jenkins-install-plugins-shell 的使用方法:code
cd $JENKINS_HOME git clone https://github.com/zacker330/jenkins-install-plugins-shell.git cd jenkins-install-plugins-shell 复制代码
jenkins-install-plugins-shell
目录中,有一个 plugins.txt 文件,在文件中写入但愿安装的插件及版本号。例如:ansible:1.0
powershell:1.3
复制代码
# Jenkins War 的路径,用于分析 export JENKINS_WAR_PATH=<Jenkins war文件的路径> chmod +x install-plugins.sh jenkins-support ./install-plugins.sh < plugins.txt 复制代码
Jenkins 插件有两个名称。一个叫 display name,一个叫 short name。好比 Ansible 插件的 disply name 为 Ansible plugin,short name 为 ansible。
如何知道一个插件的 short name 呢?能够在 Jenkins 插件官网上找到,好比 Ansible 的:
在 plugins.txt
中使用的是 short name。
笔者为何必定要肯定 Jenkins 插件的版本?是由于插件的版本会影响 Jenkins 流水线的可靠性。因此,笔者才会这么在乎 Jenkins 插件的版本。
做者:翟志军