>> Cenário

Preciso obter a lista de todos os plugins que tenho instalado no meu Jenkins bem como as suas respectivas versões.

No meu caso, vou utilizar essa informação para instalar todos os plugins que preciso rodando Jenkins em cima de container Docker.

>> Mãos a obra!

Realizando download do jenkins-cli

A CLI jenkins nos permitirá interagir com o nosso servidor jenkins a partir da linha de comando. Vamos baixá-la com o curl.

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

Criando o script groovy

Precisamos criar um script groovy para analisar as informações que recebemos da API jenkins. Isso exibirá cada plugin com sua versão.

Crie o arquivo plugins.groovy.

vim plugins.groovy

Com o seguinte conteúdo:

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

Obtendo a lista através da chamada de API do Jenkins

Com o jenkins-cli.jar vamos fazer a conexão com nosso Jenkins server passando os dados de conexão e, em seguida, emitir os resultados para plugins.txt

java -jar jenkins-cli.jar -s http://jenkins.churrops.com/ groovy = plugins.txt

 

Output

Como saída teremos todos os plugins e suas respectivas versões!

 cat plugins.txt 

gitlab-oauth:1.3
ws-cleanup:0.34
momentjs:1.1.1
display-url-api:2.2.0
blueocean-pipeline-editor:1.4.0
pipeline-stage-step:2.3
promoted-builds:2.31
scm-api:2.2.6
checkstyle:3.50
pipeline-model-declarative-agent:1.1.1
pipeline-stage-view:2.9
workflow-cps:2.43
workflow-cps-global-lib:2.9
matrix-auth:2.2
ssh-credentials:1.13
pipeline-model-api:1.2.6
pipeline-utility-steps:1.5.1
docker-slaves:1.0.7
gitlab-merge-request-jenkins:2.0.0
jackson2-api:2.8.10.1
github-pullrequest:0.1.0-rc29
pipeline-model-extensions:1.2.6
....
....

Depois de feito isso basta usar esse arquivo no seu Dockerfile para preparar a sua imagem com seus plugins!

Confira nosso artigo falando de Jenkins-como-container-utilizando-o-docker