获取已安装的Jenkins插件列表

如何获取已安装的Jenkins插件列表

我搜索了Jenkins Remote Access API文档,但未找到它.我应该使用Jenkins的CLI吗?有文件或例子吗?

Beh*_*ehe 132

您可以使用可通过访问访问的Jenkins脚本控制台来检索信息http:///script.(鉴于您已登录并具有所需权限).

脚本控制台的屏幕截图

输入以下Groovy脚本以迭代已安装的插件并打印出相关信息:

Jenkins.instance.pluginManager.plugins.each{
plugin ->
println (“ p l u g i n . g e t D i s p l a y N a m e ( ) ( {plugin.getDisplayName()} ( plugin.getDisplayName()({plugin.getShortName()}): ${plugin.getVersion()}”)
}
它会像这样打印结果列表(剪裁):

SScreenshot脚本输出

此解决方案类似于上面的答案之一,它使用Groovy,但在这里我们使用脚本控制台.使用Jenkins时,脚本控制台非常有用.

更新

如果您更喜欢排序列表,可以调用此sort方法:

Jenkins.instance.pluginManager.plugins.sort { it.getDisplayName() }.each{
plugin ->
println (“ p l u g i n . g e t D i s p l a y N a m e ( ) ( {plugin.getDisplayName()} ( plugin.getDisplayName()({plugin.getShortName()}): ${plugin.getVersion()}”)
}
根据你的喜好调整Closure.

快速为docker Jenkins创建plugins.txt的绝佳答案! (7认同)
排序不起作用,如今这是一个不可修改的地图.使用:jenkins.model.Jenkins.instance.getPluginManager().getPlugins().stream().sorted().each {println"$ {it.getShortName()} | $ {it.getVersion()} | $ {it.getDisplayName()}"}(7认同)
在所有答案中,这对于提交插件错误报告最有用; 它可以使用标准Web UI完成,并以可以轻松粘贴到"环境"字段中的格式提供结果. (2认同)
dba*_*ley 93

这些天我使用的方法与@Behe下面描述的答案相同,而不是/sf/answers/2470490361/

您可以将API与depth,XPath和包装器参数结合使用.

以下将查询pluginManager的API以列出所有已安装的插件,但仅返回其shortName和version属性.您当然可以通过添加"|"来检索其他字段 到XPath参数的末尾并指定用于标识节点的模式.

wget http:///pluginManager/api/xml?depth=1&xpath=///shortName|///version&wrapper=plugins
在这种情况下,包装器参数是必需的,因为它返回多个节点作为结果的一部分,因为它将多个字段与XPath和多个插件节点匹配.

在浏览器中使用以下URL以查看插件上的哪些信息可用,然后使用XPath确定要限制的内容可能很有用:

http:///pluginManager/api/xml?depth=1
JSON格式的替代方案:curl -s -k"http:// jenkins/pluginManager/api/json?depth = 1"| jq'.plugins [] | {shortName,version,longName}' - c (7认同)
在Mac OS X上为我工作得很好.我想将输出转换为纯文本列表,因此使用一些Perl正则表达式去除标签:curl'http://192.168.197.133:8080/pluginManager/api/xml? depth = 1&xpath =/*/*/shortName |/*/*/version&wrapper = plugins'| perl -pe的/.*?<shortName>([\ w - ] +).*?<version>([^ <] +)()(<\ /\w +>)+ /\1\2\N/g' (3认同)
我相信这需要管理权限,但我不确定。 (2认同)
确认这需要根据[2016-05-11安全公告](https://jenkins.io/security/advisory/2016-05-11)拥有管理员特权。 (2认同)
ROM*_*eer 25

詹金斯1.588(2 次 11月,2014)和1.647(4 个月的,2016)

詹金斯>管理詹金斯

在此输入图像描述

系统信息

在此输入图像描述

插件

在此输入图像描述

小智 22

Jenkins CLI支持列出所有已安装的插件:

java -jar jenkins-cli.jar -s http://localhost:8080/ list-plugins

mal*_*cot 21

像这样使用Jenkins CLI:

java -jar jenkins-cli.jar -s http://[jenkins_server] groovy = < pluginEnumerator.groovy
=在通话中意味着’从标准输入读取’.pluginEnumerator.groovy包含以下Groovy代码:

println “Running plugin enumerator”
println “”
def plugins = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
plugins.each {println “${it.getShortName()} - ${it.getVersion()}”}
println “”
println “Total number of plugins: ${plugins.size()}”
如果您想使用代码,请参阅Jenkins Java API文档.

Ale*_*ini 17

如果您在docker环境中工作,并且想要以plugins.txt格式输出插件列表,以便将该插件列表传递给install_scripts.sh,请在http://{jenkins}/script控制台中使用以下脚本:

此版本对于获取特定的软件包版本很有用
Jenkins.instance.pluginManager.plugins.each{
plugin ->
println (“ p l u g i n . g e t S h o r t N a m e ( ) : {plugin.getShortName()}: plugin.getShortName():{plugin.getVersion()}”)
}
如果您只想要具有最新版本的插件,则可以使用它(感谢@KymikoLoco作为提示)
Jenkins.instance.pluginManager.plugins.each{
plugin ->
println (“KaTeX parse error: Expected 'EOF', got '}' at position 34: …me()}:latest") }̲ 如果你想获取所有插件的最新版…{plugin.getShortName()}:latest”)` (2认同)
小智 15

这里的答案有点不完整.我不得不从其他来源编译信息以实际获取插件列表.

1.获取Jenkins CLI
Jenkins CLI允许我们从命令行与Jenkins服务器进行交互.我们可以通过简单的卷曲调用来获得它.

curl ‘localhost:8080/jnlpJars/jenkins-cli.jar’ > jenkins-cli.jar
2.创建用于解析的Groovy脚本(感谢malenkiy_scot)
将以下内容另存为plugins.groovy.

def plugins = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
plugins.each {println “${it.getShortName()}: ${it.getVersion()}”}
3.调用Jenkins API获取插件结果
localhost:8080在引用Groovy脚本时,使用您的登录用户名和密码调用Jenkins服务器(此处):

java -jar jenkins-cli.jar -s http://localhost:8080 groovy --username “admin” --password “admin” = < plugins.groovy > plugins.txt
plugins.txt的输出如下所示:

ace-editor: 1.1
ant: 1.5
antisamy-markup-formatter: 1.5
authentication-tokens: 1.3
blueocean-autofavorite: 1.0.0
blueocean-commons: 1.1.4
blueocean-config: 1.1.4
blueocean-dashboard: 1.1.4
blueocean-display-url: 2.0
blueocean-events: 1.1.4
blueocean-git-pipeline: 1.1.4
blueocean-github-pipeline: 1.1.4
blueocean-i18n: 1.1.4
blueocean-jwt: 1.1.4
blueocean-personalization: 1.1.4
blueocean-pipeline-api-impl: 1.1.4
blueocean-pipeline-editor: 0.2.0
blueocean-pipeline-scm-api: 1.1.4
blueocean-rest-impl: 1.1.4
Ale*_*sso 12

Behe对排序插件的回答在我的Jenkins机器上无效.我收到错误是java.lang.UnsupportedOperationException因为尝试对不可变集合进行排序,即Jenkins.instance.pluginManager.plugins.简单修复代码:

List jenkinsPlugins = new ArrayList(Jenkins.instance.pluginManager.plugins);
jenkinsPlugins.sort { it.displayName }
.each { plugin ->
println (“ p l u g i n . s h o r t N a m e : {plugin.shortName}: plugin.shortName:{plugin.version}”)
}
使用http:///scriptURL运行代码.

我刚刚注意到的一件事是您在打印出 shortName 时根据 displayName 进行排序,这非常令人困惑,因为某些插件的字母顺序并不相同,这导致列表不会出现排序。将 it.displayName 更改为 it.shortName 可以很好地解决这个问题。 (2认同)
And*_*y G 6

如果您是Jenkins管理员,则可以使用Jenkins系统信息页面:

http:///systemInfo
试试http:// localhost:8080 / systemInfo-一些服务器区分大小写。另请注意,它要求当前登录的用户具有“总体/管理”权限。 (7认同)
And*_*ann 6

与curl和jq:

curl -s <jenkins_url>/pluginManager/api/json?depth=1
| jq -r ‘.plugins[] | “(.shortName)😦.version)”’
| sort
此命令以特殊的Jenkins plugins.txt文件使用的格式提供输出,该文件使您可以预安装依赖项(例如,在docker映像中):

ace-editor:1.1
ant:1.8
apache-httpcomponents-client-4-api:4.5.5-3.0
一个示例plugins.txt:https : //github.com/hoto/jenkinsfile-examples/blob/master/source/jenkins/usr/share/jenkins/plugins.txt

Jam*_*ruk 5

来自Jenkins主页:

单击管理Jenkins.
单击" 管理插件".
单击" 已安装"选项卡.
要么

直接转到Jenkins URL:{Your Jenkins base URL}/pluginManager/installed

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值