2012-03-19 4 views
9

Jenkinsリモート アクセスAPIを使用して、Jenkinsにプラグインをインストールするにはどうすればいいですか? jenkins CLIを使用してインストールする方法が見つかりました。しかし、私はAPIを使って同じことをする方法を知る必要があります。 jenkins-pythonライブラリを使ってみました。しかし、私は プラグインをそこにインストールする方法が見つかりませんでした。jenkinsリモートアクセスAPIの助けを借りて、jenkinsにプラグインをインストールするにはどうすればいいですか?

答えて

1

私はこれが可能ではないと思います。ただし、回避策として、Jenkins CLI経由でプラグインをインストールするジョブを作成することを検討することがあります。適切なパラメータを使用してAPIを介してそのジョブを呼び出すことができます。

0

malenkiy_scotが示唆しているように、ジョブを作成してJenkins CLIを使用できます。プラグインのインストールの自動化のために私がやる秘密の方法です。 Jenkinsのプラグインは、Jenkinsミラーから入手できます。http://updates.jenkins-ci.org/latestこのリンクは何も表示されないかもしれませんが、プラグインの名前が分かっていればプラグインをダウンロードできます。あなたはスカイプ・通知プラグインをダウンロードしたい場合たとえば、あなたは一般的なURLは「http://updates.jenkins-ci.org/latest/ .hpi」

そのプラグインをダウンロードしたら、それはジェンキンス・ホームの「プラグイン」のディレクトリに移動する必要がありhttp://updates.jenkins-ci.org/latest/skype-notifier.hpiからダウンロードすることができますサーバー上でLinuxマシンでは、 "/ var/lib/jenkins/plugins"にある可能性が最も高いでしょう。簡単な例

wget http://updates.jenkins-ci.org/latest/skype-notifier.hpi 
mv skype-notifier.hpi /var/lib/jenkins/plugins 

ここで注意すべき二つのものがあります

  1. プラグインに依存関係がある場合は、それらがデフォルトでインストールされることはありませんが。他に必要なプラグインが分かっている場合は、同じ方法でインストールできます。ここで手作業のプロセスが必要です。しかし、同じプラグインセットが必要な場合は、依存関係を一度だけ解決でき、スクリプトをダウンロードしてJenkinsホームに移動するように記述することができます。
  2. ダウンロードしたプラグインはすぐには使用できません。ジェンキンスのリロードが必要です。
25

次のxmlデータ(plugin-id @ version)をJenkinsプラグインマネージャーに送信(HTTP POST)します。私のjenkins install plugin scriptを要チェックしてください。

このHTTP POST要求は、jenkins git plugin 2.0をインストールします。

curl -X POST -d '<jenkins><install plugin="[email protected]" /></jenkins>' --header 'Content-Type: text/xml' http://localhost:8080/pluginManager/installNecessaryPlugins

+4

これは、ここで新たに認められた回答になるはずです。さらに、プラグインを 'git @ latest'として指定すると、プラグインの最新バージョンがインストールされます。ここで使用するプラグイン名は、[wiki.jenkins-ci.org](https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin)にあるような「プラグインID」フィールドです。 。注意すべき唯一の他の点は、プラグインとその前提条件が完全にインストールされる前に 'curl'操作が戻ってくることです。これを自動化する場合は、プラグインをインストールした後にスリープタイマーを入れることを強くお勧めします。 –

+0

これはゴールデン!これは受け入れられた答えでなければなりません。 – OkezieE

+0

'curl -X POST --form-string" plugin.git.default = on "http:// localhost:8080/pluginManager/install' ' git'はプラグイン名でも可能です。しかし、これにはJenkinsの再起動が必要です。 –

1

他の人が(資格情報は一例です)、それに依存しているため、一部のプラグインは、ファイルシステム上で更新することは難しいです。そのようなプラグインの場合は、Webインターフェイスを使用して更新することしかできません。

Jenkinsフロントエンドには、[Manage Jenkins] - > [Manage Plugins]の下にページがあります。 'Advanced'タブの下には 'uploadPlugin'のフォームがあります。それはカールのWeb自動化を可能にする、あなたは認証を追加する必要があります。すでに述べた方法に加えて

curl -i -F [email protected] http://jenkinshost/jenkins/pluginManager/uploadPlugin 
1

(私は個人的に@bbaassssiieeが提供する1「 uploadPlugin カール」を使用)、あなたはpluginManagerジェンキンスを使用している場合dinamicallyあなたのプラグインをロードしようとすることを検討する必要があり、しかし、あなたは(これは私の場合だった)適切にプラグインを初期化するために、ジェンキンスを再起動する必要がある場合には、あなたが追加する必要があります:あなたはジェンキンス/プラグインに直接プラグインをコピーする場合は

curl -kX POST https://${JENKINS_URL}/safeRestart 

を、再起動は必須ですロードされるプラグイン。

関連する問題