自分向けのメモ。
回り道して…というのは、2.x系をインストールしたかったんですが、公式の手順をそのまま実行すると最新LTSの1.651.3がインストールされてしまった…ので、1.651.3をインストールしてから2.x系にあげました。

目次

  1. 前提と前書きとか
  2. 最新のLTSをインストール
  3. ポートの変更
  4. Jenkins2.10をインストールする
    1. サービス停止
    2. warのバックアップ
  5. 起動
    1. パスワード入力
    2. 初期に導入するプラグイン
    3. 権限とプラグイン
    4. 管理者ユーザー作成
  6. つながらない場合
    1. ログを見る
    2. ファイアーウォールを確認する
  7. その他

前提と前書きとか


Ubuntu16.04にインストールします。
冒頭に書いている通り、下記の手順通りにやった場合にまず最新のLTS(1.6系)がインストールされます。

試してないけど、最初から2.x系をインストールするならたぶんこのDebianの手順でいいんじゃないかと思います。(UbuntuはDebianの派生なので)

最新のLTSをインストール


公式の手順通りにインストールします。

1
2
3
4
wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

会社だと速かったの(略

ポートの変更


必要があればポートを変更します。
私は既に8080でGitlabを起動しているのでJenkinsのポートは8082に変更しました。
下記ファイルのHTTP_PORTを書き換えます。

1
/etc/default/jenkins

1
HTTP_PORT=8082

今回は8082にしました。

Jenkins2.10をインストールする


この時点でLTS最新版(現時点で1.651.3)がインストールされたので、Jenkins2.10(現時点最新)にバージョンアップします。
通常、Jenkinsは管理画面からバージョンアップできる…ハズ…ですし、先日の第7回大阪Jenkins勉強会 でもそのような話を伺いました。

が、この通り管理画面にアップデートの案内が表示されません。

Jenkinsはwarを入れ替えればバージョンアップが完了する(という認識)なので、warファイルを入れ替えます。
ちなみに、Jenkins2.0はコアは1.6系(だったかなぁ…)をベースに開発しているそうなので、互換性は大丈夫と開発者の川口さんがおっしゃってました。

サービス停止

一旦サービスを停止します。

1
sudo service jenkins stop

warのバックアップ

下記の設定ファイルでwarの場所を確認します。

1
/etc/default/jenkins

設定ファイルのJENKINS_WARを確認します。
デフォルトだとたぶん以下のようになってるハズ…

1
JENKINS_WAR=/usr/share/jenkins/jenkins.war

warをバックアップします。

1
sudo mv jenkins.war jenkins_1.651.3.war

wgetで最新のwarをダウンロードします。

1
sudo wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war

起動


Jenkinsのサービスを立ち上げます。

1
sudo service jenkins start

あとは、前述で設定したURLにアクセスするだけ。
ローカルにインストールした場合はhttp://localhost:8080とかですね。

ど~でもいいですが、私はVagrant上でやってますが、Edgeだとアクセスできません。
GitLabとかもムリです。しかし、会社だとEdgeでアクセスできるんだよな…

パスワード入力

Jenkins2.0からはセキュリティが強化されたということでログインにはアカウントが必要です。1.x系ではログインは不要で、誰でもビルドとかできてしまいました。
Jenkins2.0からは必ずログインが必要になります。

こんな感じでパスワードの入力を聞かれるので/var/lib/jenkins/secrets/initialAdminPasswordに記述されている内容を入力します。

初期に導入するプラグイン

これも第7回大阪Jenkins勉強会 のセッションで川口さんがお話しされていましたが、8割くらいのユーザーが必要になるであろうプラグインをJenkins2.0では初回時に(選択によっては)インストールしてくれます。
使い慣れているユーザーは自分で選択してもらう、でも、使い慣れていないユーザーのために開発側から必要になるであろうプラグインを予め提示するというスタンスらしいです。

こんな感じで、お勧めをインストールするか、自分で選択するか聞かれます。

プラグインはインストール失敗したとしてもそのまま次に進めます。(スクリーンショットとってないけど)

権限とプラグイン

Jenkins2.0でログインは必須になりましたが、あくまでログインが必須になっただけで、パッと操作した感じではデフォルトでは権限のコントロールはできない(?)ようで、別途プラグインの導入が必要(?)なようです。
ちなみに、私は前職ではRedmineとの連携プラグインでユーザーと権限をコントロールしていました。
今回、会社ではRole-based Authorization Strategyプラグインを導入しました。

前述の通り、1.6系(?)をベースにしているそうなので、Role-based Authorization Strategyも含めて会社で何個かプラグインを導入したところちゃんと動作しました。
使ってるプラグインとかは別途書くと思います。たぶん書きます…

管理者ユーザー作成

プラグインのインストールが終わったら、最後に管理者ユーザーを作ります。

作成したら終わり。

つながらない場合


ログを見る

ログを見ましょう。
ログは下記にあります。

1
/var/log/jenkins

ファイアーウォールを確認する

Ubuntuの場合、ufwというのがデフォルトで入っている(はず)なので、前述で設定したポートを許可するようにします。

1
sudo ufw allow 8080

ちなみに、私は2.10のwarをダウンロードした際にwarが悪かったのか下記のようなエラーが出てサービスが開始できませんでした。
再度ダウンロードしたら解決しました。

1
Error: Invalid or corrupt jarfile /usr/share/jenkins/jenkins.war

その他


第7回大阪Jenkins勉強会 に参加した記事は書こうと思います。
たぶん書きます…