218 votes

Comment obtenir une liste des plugins Jenkins installés avec leur nom et leur version ?

Comment puis-je obtenir une liste des plugins Jenkins installés ?

J'ai cherché le document sur l'API d'accès à distance de Jenkins, mais il n'a pas été trouvé. Dois-je utiliser le CLI de Jenkins ? Existe-t-il un document ou un exemple ?

25voto

malenkiy_scot Points 8622

Utilisez le CLI de Jenkins comme ceci :

java -jar jenkins-cli.jar -s http://[jenkins_server] groovy = < pluginEnumerator.groovy

= dans l'appel signifie "lire à partir de l'entrée standard . pluginEnumerator.groovy contient le code Groovy suivant :

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()}"

Si vous voulez jouer avec le code, Voici la documentation de l'API Java de Jenkins .

0 votes

@user1284795, est-ce que cela a été utile ?

1 votes

Bonjour, savez-vous comment récupérer les plugins utilisés par le système Jenkins et le travail Jenkins au lieu de récupérer tous les plugins installés ? J'aimerais que cela m'aide à désinstaller tous les plugins inutilisés. Toute aide est appréciée. Merci !

0 votes

Cela devrait être la réponse acceptée. @user1164061, je ne pense pas qu'il y ait de différence entre les plugins visibles pour un travail et ceux visibles pour le serveur. Il y a une isActive() api que vous pouvez utiliser dans le groovy script dans cette réponse pour obtenir l'état du plugin. Voir [javadoc.jenkins-ci.org/hudson/PluginWrapper.html#isActive()](http://javadoc.jenkins-ci.org/hudson/PluginWrapper.html#isActive()) .

20voto

noqcks Points 318

Les réponses étaient ici quelque peu incomplètes. Et j'ai dû compiler des informations provenant d'autres sources pour obtenir la liste des plugins.

1. Obtenez le CLI de Jenkins

La CLI de Jenkins nous permettra d'interagir avec notre serveur Jenkins à partir de la ligne de commande. Nous pouvons l'obtenir avec un simple appel curl.

curl 'localhost:8080/jnlpJars/jenkins-cli.jar' > jenkins-cli.jar

2. Créer un Groovy script pour le parsing (merci à malenkiy_scot)

Enregistrez le texte suivant comme plugins.groovy .

def plugins = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
plugins.each {println "${it.getShortName()}: ${it.getVersion()}"}

3. Appeler l'API Jenkins pour les résultats du plugin

Appelez le serveur Jenkins ( localhost:8080 ici) avec votre nom d'utilisateur et votre mot de passe tout en référençant le script de Groovy :

java -jar jenkins-cli.jar -s http://localhost:8080 groovy --username "admin" --password "admin" = < plugins.groovy > plugins.txt

La sortie dans plugins.txt ressemble à ceci :

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

17voto

Hoto Points 395

Avec curl y jq :

curl -s <jenkins_url>/pluginManager/api/json?depth=1 \
  | jq -r '.plugins[] | "\(.shortName):\(.version)"' \
  | sort

Cette commande donne la sortie dans un format utilisé par Jenkins spécial plugins.txt qui vous permet de préinstaller les dépendances (par exemple, dans une image docker) :

ace-editor:1.1
ant:1.8
apache-httpcomponents-client-4-api:4.5.5-3.0

Exemple d'un plugins.txt : https://github.com/hoto/jenkinsfile-examples/blob/master/source/jenkins/usr/share/jenkins/plugins.txt

12voto

Alesso Points 165

La réponse de Behe avec les plugins de tri ne fonctionnait pas sur ma machine Jenkins. J'ai reçu l'erreur java.lang.UnsupportedOperationException en raison de l'essai de trier une collection immuable, à savoir Jenkins.instance.pluginManager.plugins . Correction simple du code :

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

Utilisez le http://<jenkins-url>/script URL pour exécuter le code.

10voto

Andy G Points 55

Si vous êtes un administrateur Jenkins, vous pouvez utiliser la page d'informations sur le système Jenkins :

http://<jenkinsurl>/systemInfo

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X