LoginSignup
13
9

More than 3 years have passed since last update.

JenkinsでOpenJDKを自動インストール

Last updated at Posted at 2019-02-08

JenkinsにはOracle JDKを自動インストールする機能があります。
複数スレーブがあるときに特に便利で、各スレーブに手動インストールしなくて済みます。

Jenkinsで自動インストールできるOracle JDKは9までとなっています。

自動インストール

この記事ではOpenJDK11を自動インストールする方法を紹介します。

今回例に使ったJenkinsのバージョンは ver. 2.163 です。
UIはバージョンアップにより変わる可能性があるので注意してください。

設定方法

Global Tool Configuration を開く

※要管理権限

  1. Jenkinsの管理 を開く
  2. Global Tool Configuration を開く
  3. インストール済みJDKを押す

操作画面
Global Tool Configuration を開く

インストールするJDKを設定する

  1. JDK追加 を押す
  2. JDKの名前を入力する。(自分がわかりやすい名前)
  3. インストーラの削除 を押し、「java.sun.com からインストール」を消す
  4. インストーラの追加 から 「.zip/.tar.gz展開」を選ぶ
  5. アーカイブダウンロードURL と アーカイブを展開するサブディレクトリ を入力する(入力内容は後述)
  6. Save を押して設定を保存する。

操作画面
インストールするJDKを設定する

アーカイブダウンロードURL と アーカイブを展開するサブディレクトリ はOSにより下記のように入力します。
ラベルは空欄にします。ただし、異なるOSのノードがある場合はラベルを使用します。(後述)

アーカイブダウンロードURL アーカイブを展開するサブディレクトリ
Linux https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz jdk-11.0.2
Mac https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_osx-x64_bin.tar.gz jdk-11.0.2.jdk/Contents/Home
Windows https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_windows-x64_bin.zip jdk-11.0.2

ダウンロードURLは https://jdk.java.net/11/ から取得しました。
今回の例では JDK 11.0.2 を使いました。
アーカイブを展開するサブディレクトリは実際に解凍してみたときに bin/java があるディレクトリを指定します。

以上で設定は完了です。

実際に使用してみる

ジョブの設定で先程設定したJDKを選びます。
※2つ以上JDKを設定しないと選択できないようです。

JDK選択

Jenkins pipelineでやる場合

pipeline {
    agent any

    tools {
        jdk 'JDK11'
    }

    stages {
        // ...
    }
}

実際に実行してみると自動で解凍してパスを通してくれてます。
アーカイブを展開するサブディレクトリ の設定が間違えているとうまくいかないので注意です。

Started by user Admin
Building on master in workspace /var/jenkins_home/workspace/test-job
Unpacking https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz to /var/jenkins_home/tools/hudson.model.JDK/JDK11 on Jenkins
[test-job] $ /bin/sh -xe /tmp/jenkins3984802891567537123.sh
+ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
Finished: SUCCESS

異なるOSのノードがある場合の設定

スレーブの登録がなく単一ノードだけしかない場合や、すべてのスレーブが同じ種類のOSならば以上の設定で大丈夫ですが、
異なるOSのノードがある場合は以下の設定でOSごとにインストールするアーカイブを切り替える必要があります。

.zip/.tar.gz展開」を複数追加し、それぞれの設定を入れます。
OSを自動判別はしてくれないため、各ノードに設定したラベルで切り替えるようにします。
各ノードのラベルは Jenkinsの管理 > ノードの管理 > (ノード名)(※ master等) > 設定 で設定したものを使います。

設定例

13
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
9