Как получить список установленных плагинов Jenkins с именем и парой версий - PullRequest
123 голосов
/ 22 марта 2012

Как я могу получить список установленных плагинов Jenkins?

Я искал документ API удаленного доступа Jenkins, но не был найденДолжен ли я использовать CLI Дженкинса?Есть ли документ или пример?

Ответы [ 21 ]

121 голосов
/ 09 февраля 2016

Вы можете получить информацию, используя Консоль сценариев Jenkins , доступную по адресу http://<jenkins-url>/script. (Учитывая, что вы вошли в систему и имеете необходимые разрешения).

Screenshot of the Script Console

Введите следующий Groovy скрипт , чтобы перебрать установленные плагины и распечатать соответствующую информацию:

Jenkins.instance.pluginManager.plugins.each{
  plugin -> 
    println ("${plugin.getDisplayName()} (${plugin.getShortName()}): ${plugin.getVersion()}")
}

Будет распечатан список результатов примерно так (обрезано):

SScreenshot of script output

Это решение похоже на один из ответов выше в том, что оно использует Groovy, но здесь мы вместо этого используем консоль сценария. Консоль сценария чрезвычайно полезна при использовании Jenkins.

Обновление

Если вы предпочитаете отсортированный список, вы можете вызвать этот sort метод :

Jenkins.instance.pluginManager.plugins.sort { it.getDisplayName() }.each{
  plugin -> 
    println ("${plugin.getDisplayName()} (${plugin.getShortName()}): ${plugin.getVersion()}")
}

Настройте Закрытие по своему вкусу.

93 голосов
/ 04 октября 2012

В эти дни я использую тот же подход, что и ответ, описанный @Behe ниже вместо https://stackoverflow.com/a/35292719/1597808


Вы можете использовать API в сочетании с аргументами глубины, XPath и оболочки.

Следующее запросит API модуля pluginManager для получения списка всех установленных плагинов, но только для возврата их атрибутов shortName и version.Конечно, вы можете получить дополнительные поля, добавив '|'до конца параметра XPath и указания шаблона для идентификации узла.

wget http://<jenkins>/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins

В этом случае требуется аргумент-обертка, поскольку он возвращает более одного узла как часть результата, причем оба в этомон сопоставляет несколько полей с XPath и несколькими узлами плагинов.

Вероятно, полезно использовать следующий URL в браузере, чтобы увидеть, какая информация о плагинах доступна, а затем решить, что вы хотите ограничить с помощью XPath:

http://<jenkins>/pluginManager/api/xml?depth=1
24 голосов
/ 04 января 2016

Дженкинс 1,588 (2 и от ноября 2014 г.) & 1,664 (4 th от февраля 2016 г.)

  • Дженкинс> Управление Дженкинсом

    enter image description here

  • Информация о системе

    enter image description here

  • Плагины

    enter image description here

21 голосов
/ 05 августа 2013

Интерфейс Jenkins CLI поддерживает список всех установленных плагинов:

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

21 голосов
/ 22 марта 2012

Используйте 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 .

14 голосов
/ 07 июля 2017

Ответы здесь были несколько неполными.И мне пришлось собрать информацию из других источников, чтобы фактически получить список плагинов.

1.Получите CLI Jenkins

CLI Jenkins позволит нам взаимодействовать с нашим сервером Jenkins из командной строки.Мы можем получить это с помощью простого вызова curl.

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.Вызовите API Jenkins для получения результатов плагина

Вызовите сервер Jenkins (localhost:8080 здесь), указав имя пользователя и пароль для входа в систему, ссылаясь на скрипт Groovy:

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
11 голосов
/ 11 января 2018

Ответ Бихе с сортировочными плагинами не работал на моей машине Jenkins.Я получил ошибку java.lang.UnsupportedOperationException из-за попытки отсортировать неизменную коллекцию, т.е. Jenkins.instance.pluginManager.plugins.Простое исправление для кода:

List<String> jenkinsPlugins = new ArrayList<String>(Jenkins.instance.pluginManager.plugins);
jenkinsPlugins.sort { it.displayName }
              .each { plugin ->
                   println ("${plugin.shortName}:${plugin.version}")
              }

Используйте URL-адрес http://<jenkins-url>/script для запуска кода.

9 голосов
/ 30 ноября 2018

Если вы работаете в среде докера и хотите вывести список плагинов в формате plugins.txt, чтобы передать его в install_scripts.sh, используйте этот скрипт в консоли http://{jenkins}/script

Jenkins.instance.pluginManager.plugins.each{
  plugin -> 
    println ("${plugin.getShortName()}:${plugin.getVersion()}")
}
6 голосов
/ 20 мая 2013

Если вы являетесь администратором Jenkins, вы можете использовать информационную страницу системы Jenkins:

http://<jenkinsurl>/systemInfo
6 голосов
/ 10 июля 2012

На домашней странице Jenkins:

  1. Нажмите Управление Jenkins .
  2. Нажмите Управление плагинами .
  3. Нажмите на вкладку Установлено .

Или

  1. Перейдите непосредственно к URL-адресу Jenkins: {Ваш базовый URL-адрес Jenkins} / pluginManager / Установлен
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...