2014年8月25日月曜日

JenkinsのプラグインをCLIでインストールするときにハマった

VagrantでJenkinsを構築するときにプラグインをCLI(コマンドライン)でインストールしたときに
ハマったので残しておこう。

Jenkins起動直後ではJenkinsにアクセスできない

Jenkins起動直後だとJenkinsをCLIで操作するためのjenkins-cli.jarファイルが
ダウンロードできませんでした。
service jenkins startした後はsleep 30とかで待機時間を設けることで対応できました。

Jenkinsのインストールから起動+プラグインのインストールまで実行を一度に実行するときにはプラグインのリストを手動で更新する必要がある

プラグインのアップデートサイトのリスト(ファイル)がJenkinsのインストール直後は存在しないようで
その状態でプラグインのインストールを実行するとプラグインのインストールが失敗します。
次のコマンドで手動でプラグインのリストを更新できました
curl -L http://updates.jenkins-ci.org/update-center.json | sed '1d;$d' | curl -X POST -H 'Accept: application/json' -d @- http://localhost:8080/updateCenter/byId/default/postBack

java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin [プラグイン名]で指定するほうが良さそう

// 次の方法でプラグインのインストールは成功
java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin git

// 次の方法ではプラグインのインストールが失敗
// レスポンスの内容を見るとプラグインが存在するサイトが移動したことを示すドキュメントが返ってきたのでURLでの指定は行わないほうが無難
java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin https://updates.jenkins-ci.org/latest/git.hpi

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://mirrors.jenkins-ci.org/plugins/git/2.2.5/git.hpi">here</a>.</p>
<hr>
<address>Apache/2.2.14 (Ubuntu) Server at updates.jenkins-ci.org Port 443</address>
</body></html>