如何将所有已安装的插件转移到另一个Jenkins?

wwodge7n  于 2023-04-05  发布在  Jenkins
关注(0)|答案(2)|浏览(430)

我想安装相同的插件在我的本地Jenkins已经安装在其他Jenkins。
想避免安装所有的50-60赔率插件手动

taor4pac

taor4pac1#

官方Jenkins documentation on installing plugins给出了两种安装插件的方法:
1.通过Web界面
1.将下载的*.hpi/*.jpi文件保存到$JENKINS_HOME/plugins目录中。
所以我对你的问题的回答是:将$JENKINS_HOME/plugins目录从服务器A复制到服务器B。
别忘了重启Jenkins!

ilmyapht

ilmyapht2#

还有另一种方法,如果你在docker容器中使用Jenkins,这是理想的,首先你需要通过在终端中对你的jenkins域运行curl来提取一个已安装插件的列表:

export JENKINS_URL=http://<jenkins_domain>
curl -sSL "$JENKINS_URL/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins" | perl -pe 's/.*?<shortName>([\w-]+).*?<version>([^<]+)()(<\/\w+>)+/\1 \2\n/g'|sed 's/ /:/'

这你返回你一个列表安装插件格式如下:

aws-credentials:1.15
aws-beanstalk-publisher-plugin:1.6.0
aws-java-sdk:1.10.45.2

然后,您可以对保存在txt文件中的列表运行this script,以安装所有导出的插件,或者将其添加到Dockerfile的末尾,如下所示:

# copy script to container's bin
ADD ./plugin.sh /usr/local/bin/plugins.sh
# copy plugins list to inside the container
COPY plugins.txt /plugins.txt

# runs it
RUN /usr/local/bin/plugins.sh /plugins.txt

在执行此操作之前,请记住导出JENKINS_HOME变量。

相关问题