如何在Jenkins中手动安装插件


Answers:


156

是的你可以。下载插件(* .hpi文件)并将其放在以下目录中:

<jenkinsHome>/plugins/

之后,您将需要重新启动Jenkins。


7
此方法不会自动安装与要安装的插件相关的任何插件。因此,我不建议这样做,因此我拒绝投票。如果我弄错了,请告诉我,我将撤消我的不赞成票。
Farrukh Najmi'2

8
如果您由于某种原因被迫手动安装插件,则我不知道还有其他方法可以自动安装依赖项。
MichaelKüller'17

我怎么知道詹金斯的家在哪里?通过使用whereis jenkins
黑色

4
我在下面找到了它/var/lib/jenkins,已经有很多插件,但它们以.jpi而不是结尾.hpi。我该怎么办?
黑色

3
Jenkins在安装过程中将插件文件从.hpi重命名为.jpi,从而可以检测到要在现有插件上安装的新插件。在这里看到:stackoverflow.com/questions/30658375/...
迈克尔Küller

137
  1. 下载插件。
  2. 在Jenkins内部:管理Jenkins管理插件 →有一个名为“ 高级”的选项卡,在该页面上,可以选择上传插件(文件的扩展名必须是hpi)。

有时,当您下载插件时,您可能会获取(.zip)文件,然后仅使用(.hpi)重命名并使用UI安装插件。


4
这可能比stackoverflow.com/a/14953877/627806更“安全”,因为它要经过前端。
乔恩·伯吉斯

如果Jenkins由于插件配置错误而无法启动,有时这是必要的。例如,由于这个问题,我不得不手动安装。
dskrvk

1
我尝试安装此插件,将zip更改为hpi,并尝试从管理插件中的高级选项上传,但是它给出了错误A problem occurred while processing the request. Please check our bug tracker to see if a similar problem has already been reported. If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem. If you think this is a new issue, please file a new issue. When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins.

您发现什么问题了?我们可以知道实际的例外吗?
jfcorugedo

1
请注意,nginx有一个大小限制(请参阅:[ issues.jenkins-ci.org/browse/JENKINS-32575]),因此您可能需要更改nginx配置或手动上传。
Moshe Zvi

22

如果使用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

plugins.txt

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

我试图为docker解决这个问题,却偶然发现了这个答案。很棒!
Mugglio '16

这取决于jenkins的安装方式。在我的安装(apt-get install jenkins)中,我找不到plugin.sh文件。但是,如果我们从FROM jenkins开始,那么它就存在。
hadaytullah

请注意,您必须在plugins.txt中包含该插件及其所有依赖项,因为它不会解析可传递的依赖项。例如,蓝海有一个像10+的依赖也将不得不手动包括..
code4cause

在代理后面运行docker时如何使用此方法?plugins.sh如果未在Jenkins中配置代理,则无法安装插件。而且我认为没有使用Dockerfile在Jenkins中配置代理的方法。
7


11

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' ' ')


10

有时,当您下载插件时,您可能会获得(.zip)文件,然后仅用(.hpi)重命名,然后解压缩所有插件并移至<jenkinsHome>/plugins/目录。



4

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


1
我创建了一个简单的要点,从网络上列出了所有必需的插件依赖项最新版本(扫描整个依赖项树):gist.github.com/Lucasus/1a6b8df71425c790361c –ŁukaszWiatrak
2016年

2

就我而言,我需要在运行Windows Server的脱机构建服务器上安装插件(此处版本无关紧要)。我已经在笔记本电脑上安装了Jenkins来预先测试更改,并且它作为Windows服务在localhost:8080上运行。

因此,如果您愿意花时间在具有Internet连接的计算机上设置Jenkins,并将这些更改带到脱机服务器Jenkins(它可以正常工作,我确认!),可以按照以下步骤操作:

  • 我笔记本电脑上的Jenkins:打开Jenkins,http:// localhost:8080
  • 导航器:管理詹金斯| 下载没有安装选项的插件
  • Windows资源管理器:复制下载的插件文件,该文件位于“ c:\ program files(x86)\ Jenkins \ plugins”文件夹中(即role-strategy.jpi)
  • 将其粘贴到脱机服务器中的共享文件夹中
  • 通过组件服务,Jenkins服务停止Jenkins服务(脱机服务器Jenkins)
  • 将插件文件(即role-strategy.jpi)复制到(离线Jenkins)服务器上的“ c:\ program files(x86)\ Jenkins \ plugins”文件夹中
  • 重新启动詹金斯,瞧!应该安装它。

2

给出的答案有效,并添加了插件。

如果要替换/更新具有依赖性的内置插件(如凭据插件),则必须使用前端。要自动化,我使用:

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

1

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

复制到plugins目录:

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"

重新启动詹金斯。


0

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

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

在这里,安装的插件是git; @currentJenkins忽略的指定版本。Jenkins正在localhostport 上运行8080,请根据需要进行更改。据我所知,这是“手动”安装具有所有依赖项的插件的最简单方法。经过詹金斯测试v1.644

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.