インストールされている Jenkins プラグインのリストを取得するにはどうすればよいですか?
Jenkins Remote Access API ドキュメントを検索しましたが、見つかりませんでした。Jenkins の CLI を使用する必要がありますか? ドキュメントまたは例はありますか?
インストールされている Jenkins プラグインのリストを取得するにはどうすればよいですか?
Jenkins Remote Access API ドキュメントを検索しましたが、見つかりませんでした。Jenkins の CLI を使用する必要がありますか? ドキュメントまたは例はありますか?
にアクセスしてアクセスできるJenkins Script Consoleを使用して、情報を取得できますhttp://<jenkins-url>/script
。(ログインしており、必要な権限を持っている場合)。
次のGroovy スクリプトを入力して、インストールされているプラグインを繰り返し処理し、関連情報を出力します。
Jenkins.instance.pluginManager.plugins.each{
plugin ->
println ("${plugin.getDisplayName()} (${plugin.getShortName()}): ${plugin.getVersion()}")
}
次のような結果リストが出力されます (切り取られます)。
このソリューションは、Groovy を使用するという点で上記の回答の 1 つに似ていますが、ここでは代わりにスクリプト コンソールを使用しています。スクリプト コンソールは、Jenkins を使用する場合に非常に役立ちます。
アップデート
ソートされたリストを好む場合は、このsort
メソッドを呼び出すことができます:
def pluginList = new ArrayList(Jenkins.instance.pluginManager.plugins)
pluginList.sort { it.getShortName() }.each{
plugin ->
println ("${plugin.getDisplayName()} (${plugin.getShortName()}): ${plugin.getVersion()}")
}
Closure を好みに合わせて調整します (たとえば、ここでは shortName で並べ替えられていますが、この例では DisplayName で並べ替えられています)。
最近では、代わりに以下の@Beheで説明されている回答と同じアプローチを使用し、更新されたリンク: https://stackoverflow.com/a/35292719/3423146 (古いリンク: https://stackoverflow.com/a/35292719/1597808) )
API は、深さ、XPath、およびラッパー引数と組み合わせて使用できます。
以下は、pluginManager の API をクエリして、インストールされているすべてのプラグインを一覧表示しますが、それらの shortName および version 属性のみを返します。もちろん、「|」を追加することで、追加のフィールドを取得できます。XPath パラメータの末尾に追加し、ノードを識別するパターンを指定します。
wget http://<jenkins>/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins
この場合、wrapper 引数が必要です。結果の一部として複数のノードが返されるためです。これは、複数のフィールドを XPath および複数のプラグイン ノードと照合するためです。
ブラウザーで次の URL を使用して、プラグインに関するどのような情報が利用可能かを確認し、XPath を使用して何を制限するかを決定すると便利です。
http://<jenkins>/pluginManager/api/xml?depth=1
Jenkins CLI は、インストールされているすべてのプラグインの一覧表示をサポートしています。
java -jar jenkins-cli.jar -s http://localhost:8080/ list-plugins
次のようにJenkinsCLIを使用します。
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()}"
コードを試してみたい場合は、JenkinsJavaAPIのドキュメントをご覧ください。
Jenkins 管理者は、Jenkins システム情報ページを使用できます。
http://<jenkinsurl>/systemInfo
ジェンキンスのホームページから:
または
これらは十分な答えではないと思います...多くの場合、いくつかの追加の内部手順が含まれます。これが私がやった方法です。
sudo apt-get install jq
...API を呼び出した後、JSON 出力を使用する必要があるためです。
#!/bin/bash
server_addr = 'jenkins'
server_port = '8080'
curl -s -k "http://${server_addr}:${server_port}/pluginManager/api/json?depth=1" \
| jq '.plugins[]|{shortName, version,longName,url}' -c | sort \
> plugin-list
echo "dude, here's your list: "
cat plugin-list
Jenkins が Jenkins Docker コンテナで実行されている場合、Bash で次のコマンド ラインを使用できます。
java -jar /var/jenkins_home/war/WEB-INF/jenkins-cli.jar -s http://localhost:8080/ list-plugins --username admin --password `/bin/cat /var/jenkins_home/secrets/initialAdminPassword`
http://jenkins/systemInfo に、インストールされているすべてのプラグインとそれらが有効になっているかどうかを示す表があります。
ただし、これには管理者権限が必要です。