31

Jenkins をセットアップするための bash スクリプトを作成しようとしています。Jenkins ターミナルからプラグイン リストを更新する方法はありますか?

最初のセットアップでは、リストに利用可能なプラグインがありません

すなわち:

java -jar jenkins-cli.jar -s `http://localhost:8080` install-plugin dry

動作しません

4

6 に答える 6

44

シンプルですが有効な方法は、最初にインストールされているすべてのプラグインを一覧表示し、更新を探してインストールすることです。

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

利用可能な更新がある各プラグインは、最後に括弧内に新しいバージョンがあります。したがって、それらをgrepできます:

java -jar /root/jenkins-cli.jar -s http://127.0.0.1:8080/ list-plugins | grep -e ')$' | awk '{ print $1 }'

プラグイン名を指定して install-plugin を呼び出すと、自動的に最新バージョンにアップグレードされます。

最後に、ジェンキンスを再起動する必要があります。

すべてをまとめる(シェルスクリプトに配置できます):

UPDATE_LIST=$( java -jar /root/jenkins-cli.jar -s http://127.0.0.1:8080/ list-plugins | grep -e ')$' | awk '{ print $1 }' ); 
if [ ! -z "${UPDATE_LIST}" ]; then 
    echo Updating Jenkins Plugins: ${UPDATE_LIST}; 
    java -jar /root/jenkins-cli.jar -s http://127.0.0.1:8080/ install-plugin ${UPDATE_LIST};
    java -jar /root/jenkins-cli.jar -s http://127.0.0.1:8080/ safe-restart;
fi
于 2014-09-03T15:06:20.153 に答える
32

実際には、(Jenkins ターミナルではなく) コンピュータ ターミナルからプラグインをインストールできます。

  1. http://updates.jenkins-ci.org/download/pluginsプラグイン サイト ( )からプラグインをダウンロードします。
  2. $JENKINS_HOME/pluginsそのプラグインをディレクトリにコピーします
  3. その時点で、Jenkins を起動するか、リロード設定サービスを呼び出します ( http://yourservername:8080/jenkins/reload)

これにより、Jenkins でプラグインが有効になり、Jenkins が開始されていることが前提となります。

cd $JENKINS_HOME/plugins
curl -O http://updates.jenkins-ci.org/download/plugins/cobertura.hpi
curl http://yourservername:8080/reload
于 2012-02-14T00:11:44.137 に答える
1

参考までに -- 一部のプラグイン (特に mercurial) は、短い名前を使用しない限り、コマンド ラインから正しくインストールされません。これは、jenkins パッケージ情報データのトリガーに関係していると思います。127.0.0.1:8080/pluginManager/checkUpdatesjavascript 対応のブラウザーでアクセスすることにより、jenkins 独自のパッケージ更新をシミュレートできます。

または、自虐的だと感じている場合は、次の python コードを実行できます。

import urllib2,requests

UPDATES_URL = 'https://updates.jenkins-ci.org/update-center.json?id=default&version=1.509.4'
PREFIX = 'http://127.0.0.1:8080'

def update_plugins():
    "look at the source for /pluginManager/checkUpdates and downloadManager in /static/<whatever>/scripts/hudson-behavior.js"
    raw = urllib2.urlopen(self.UPDATES_URL).read()
    jsontext = raw.split('\n')[1] # ugh, JSONP
    json.loads(jsontext) # i.e. error if not parseable
    print 'received updates json'

    # post
    postback = PREFIX+'/updateCenter/byId/default/postBack'
    reply = requests.post(postback,data=jsontext)
    if not reply.ok:
        raise RuntimeError(("updates upload not ok",reply.text))
    print 'applied updates json'

これを実行すると、 を実行できるはずですjenkins-cli -s http://127.0.0.1:8080 install-plugin mercurial -deploy

于 2013-10-16T21:11:39.153 に答える