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 ?
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 ?
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 .
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 !
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()) .
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.
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
Enregistrez le texte suivant comme plugins.groovy
.
def plugins = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
plugins.each {println "${it.getShortName()}: ${it.getVersion()}"}
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
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
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.
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.