如何获取已安装的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