如何在詹金斯手动安装插件

从 Update 中心安装一个插件会导致:

检查互联网连接失败 HTTP://www.google.com/ 。也许您需要配置 HTTP 代理? 部署插件失败-详细信息 hudson.util.IOException2: 无法从 Http://updates.jenkins-ci.org/download/plugins/deploy/1.9/deploy.hpi

是否可以下载插件并手动安装到 Jenkins?

219048 次浏览

是的,你可以。下载这个插件(* . hpi 文件)并把它放在下面的目录中:

<jenkinsHome>/plugins/

之后你需要重新启动詹金斯。

有时当你下载插件时,你可能会得到(。Zip)文件,然后用(。(hpi) ,然后解压所有插件并移动到 <jenkinsHome>/plugins/目录。

  1. 下载插件。
  2. 詹金斯内部: 管好詹金斯管理插件→有一个称为 高级的标签页,在该页面上有一个选项可以上传一个插件(文件的扩展名必须是 hpi)。

有时,当你下载插件时,你可能会得到(。Zip)文件,然后用(。Hpi)并使用 UI 来安装插件。

我创建了一个简单的脚本,它执行以下操作:

  • 下载一个或多个插件到插件目录
  • 扫描该目录中的所有插件,寻找缺失的依赖项
  • 也下载这个依赖项
  • 循环,直到没有打开的依赖项

这个脚本不需要运行 jenkins-我用它来提供一个码头箱。

Https://gist.github.com/micw/e80d739c6099078ce0f3

如果使用 Docker,则应该读取这个文件: https://github.com/cloudbees/jenkins-ci.org-docker/blob/master/plugins.sh

父 Dockerfile 示例:

FROM jenkins
COPY plugins.txt /plugins.txt
RUN /usr/local/bin/plugins.sh /plugins.txt

插件

<name>:<version>
<name2>:<version2>

接受的答案是准确的,但是请确保您也安装了所有必要的依赖项。使用 CLI 或 web 安装似乎可以解决这个问题,但是我的插件并没有出现在浏览器中或者使用 java -jar jenkins-cli.jar -s http://localhost:8080 list-plugins,直到我也安装了依赖项。

要安装带有所有依赖项的插件“ git”:

curl -XPOST http://localhost:8080/pluginManager/installNecessaryPlugins -d '<install plugin="git@current" />'

在这里,安装的插件是 git; 指定为 @current的版本被 Jenkins 忽略。詹金斯在 localhost端口 8080上运行,根据需要更改。据我所知,这是最简单的方式来安装一个插件及其所有的依赖’手工’。在 Jenkins v1.644上测试

给出的工作答案,添加了插件。

如果你想替换/更新一个内置的插件,比如凭证插件,它有依赖关系,那么你必须使用前端。为了自动化,我使用:

 curl -i -F file=@pluginfilename.hpi http://jenkinshost/jenkins/pluginManager/uploadPlugin

这是一种将插件从一个 Jenkins 盒子复制到另一个的方法。

复制插件目录:

scp -r jenkins-box.url.com:/var/lib/jenkins/plugins .

压缩插件:

tar cvfJ plugins.tar.xz plugins

把它们复制到另一个 Jenkins 盒子里:

scp plugins.tar.xz different-jenkins-box.url.com
ssh different-jenkins-box.url.com "tar xvfJ plugins.tar.xz -C /var/lib/jenkins"

重启 Jenkins。

Docker 的更新: 使用 Install-plugins.sh脚本。它需要一个没有“-plugin”扩展名的插件名列表。请参见 给你的描述。

Install-plugins.sh 取代了已经过时的 plugins.sh,后者现在警告说:

WARN: plugins.sh is deprecated, please switch to install-plugins.sh

要按照 plugins.sh 使用 plugins.txt,请参阅 这个问题和下面的解决方案:

RUN /usr/local/bin/install-plugins.sh $(cat /usr/share/jenkins/plugins.txt | tr '\n' ' ')

使用 https://updates.jenkins-ci.org/download/plugins/。从这个 Jenkins 的中央更新存储库下载它。

在我的例子中,我需要将一个插件安装到运行 Windows 服务器的脱机构建服务器上(这里的版本不重要)。我已经在我的笔记本电脑上安装了 Jenkins 来提前测试更改,并且它作为 Windows 服务在 localhost: 8080上运行。

因此,如果您愿意花时间将 Jenkins 安装在具有 Internet 连接的机器上,并将这些更改带到离线服务器 Jenkins (它可以工作,我证实了这一点!)下面是你可以遵循的步骤:

  • 打开詹金斯 http://localhost:8080
  • 浏览器: 管理 Jenkins | 下载插件,不安装选项
  • 文件资源管理器: 复制下载的插件文件位于“ c: program files (x86) Jenkins plugins”文件夹(也就是 role-Strategy. jpi)
  • 将其粘贴到脱机服务器中的共享文件夹中
  • 通过组件服务,詹金斯服务停止詹金斯服务(脱机服务器詹金斯)
  • 将插件文件(例如 role-Strategy. jpi)复制到(离线 Jenkins)服务器上的“ c: program files (x86) Jenkins plugins”文件夹中
  • 重启詹金斯,瞧,应该安装好了。
RUN /usr/local/bin/install-plugins.sh amazon-ecs:1.37 configuration-as-code:1.47 workflow-aggregator:2.6 \
cloudbees-folder:6.15 antisamy-markup-formatter:2.1 build-timeout:1.20 credentials-binding:1.24

删除 plugins.txt 并像上面一样在 Dockerfile 安装。

使用此链接下载插件的最新版本的 hpi.https://updates.jenkins-ci.org/download/plugins/

然后通过 Jenkins 中的“管理插件”上传插件