frieder.oraclejdk

ansible-role-oraclejdk

Oracle JDKをインストールするためのAnsibleロールです。

プラットフォーム

Platform Platform Platform Platform Platform Platform Platform

OracleJDK OracleJDK

概要

このAnsibleロールは、対象ホストにOracle JDKとJava Cryptography Extension(オプション)をインストールします。OpenJDKはサポートされていません。以下のLinuxディストリビューションでOracle JDK 8u144/8u151およびJDK 9u181/9.0.1のテストが行われました。

  • Ubuntu 16.04
  • Debian 9
  • RHEL 7.4
  • CentOS 7.3
  • Fedora 26
  • SLE 12 SP2
  • openSUSE 42.2

依存関係

Ansible >= 2.x(2.3.2.0および2.4.0.0でテスト済み)

このロールは、対象ホストに以下のパッケージがインストールされている必要があります。

  • tar - JDK tar.gzアーカイブを解凍するために常に必要です。
  • unzip - JDK8用のJCEをインストールする場合にのみ必要です。

インストール

このロールを使用するには、まずAnsible Galaxyからダウンロードする必要があります。以下のコマンドをAnsible管理マシンで実行してロールをインストールします。詳細については、公式ドキュメントを参照してください。

ansible-galaxy install frieder.oraclejdk

上記のコマンドは、常にGalaxyから最新バージョンを取得します。もう1つの方法は、Githubからロールを取得し、特定のリリースバージョンを指定してダウンロードすることです。これにより、使用するロールのバージョンをより適切に管理できます。requirements.ymlを作成し、以下の内容を入力します。

---
- name: frieder.oraclejdk
  src: https://github.com/frieder/ansible-role-oraclejdk
  version: 2.0.0

次に、ansible-galaxy install -r ./requirements.yml --ignore-errorsを実行すると、このリストに定義されたすべての依存関係がダウンロードされます。--ignore-errorsを指定すると、いくつかの依存関係がすでにダウンロードされている場合でも、全体のリストが処理されることが保証されます。requirements.ymlの可能なエントリの良い概要はこちらで確認できます。

ロール変数

すべてのロール変数はdefaults/main.ymlに定義されています。これらの値はプレイブック内で上書きできます(下部の例を参照)。

変数 デフォルト 説明
oraclejdk_license_accept false JDKをインストールする際、この値をtrueに設定しなければなりません。JDKを削除する際は必要ありません。
oraclejdk_state present 対象ホストにJDKを追加または削除するかどうかを定義します。可能な値は[present, absent]です。
oraclejdk_cleanup true インストール後にすべての一時ファイル/フォルダー(ローカルおよびリモートの両方)を削除します。trueに設定すると、「変更」されたプレイが結果として得られます。
oraclejdk_dl_dir /tmp/oraclejdk アーカイブがダウンロード/コピー/解凍されるフォルダー(ローカルおよびリモートの両方)。
oraclejdk_home oraclejdk_stateの値によってこのプロパティが異なる値を取ります。presentの場合、JAVA_HOMEの希望する場所を指す単一の文字列が格納されます。absentの場合、削除するべき以前のJDKの場所のリストを取ります。この場合、少なくとも1つのエントリを持つリストを提供してください。
oraclejdk_profile_file /etc/profile.d/java.sh このロールがJAVA_HOMEとPATHを設定するファイル。
oraclejdk_cookie Cookie:oraclelicense=accept-securebackup-cookie oracle.comから自動でダウンロードするために必要なクッキーです。ライセンスチェックは異なる変数で行われます。
oraclejdk_url oracle.comまたはローカルの企業リポジトリ(推奨)のJDKアーカイブのURL。
oraclejdk_url_user 簡単なHTTP認証が必要な場合は、ここにユーザー名を提供できます。
oraclejdk_url_pass 簡単なHTTP認証が必要な場合は、ここにパスワードを提供できます。
oraclejdk_checksum JDKアーカイブのSHA256チェックサム。ダウンロードしたファイルが有効かどうかを確認するために使用されます。このチェックを無効にするには、空のチェックサム値(oraclejdk_checksum: '')を提供してください。
oraclejdk_sethome true trueに設定すると、グローバル変数JAVA_HOMEをJDKのインストールディレクトリに更新し、バイナリをPATH変数に追加します。oraclejdk_profile_file変数にも目を通してください。
oraclejdk_alternative_upd true trueに設定すると、現在のJDKに対してjavaの代替(update-alternatives --config java)が設定されます。
oraclejdk_alternative_prio 1 update-alternativesコマンドに使用される優先度。最高優先度のJDKが勝ちます。
oraclejdk_alternative_items
  • jar
  • java
  • javac
  • jcmd
  • jconsole
  • jmap
  • jps
  • jstack
  • jstat
  • jstatd
このプロパティを使用して、JDKに対してどのような代替を設定するかを定義できます。
oraclejdk_jce_install false trueに設定すると、最新のJava Cryptography Extension (JCE)をJDKにインストールして追加します。JDK9では無制限の鍵の強度がデフォルトで有効になっており、追加の操作は必要ありません。詳細については、security-dev mailinglistを参照してください。
oraclejdk_jce_name UnlimitedJCEPolicyJDK8 JDK8のみ。JCEアーカイブ内のフォルダーの名前。
oraclejdk_jce_url JDK8のみ。JCEアーカイブのURL(oracle.comまたはローカル企業リポジトリ推奨)。
oraclejdk_jce_checksum JDK8のみ。JCEアーカイブのSHA256チェックサム。このチェックを無効にするには空のチェックサム値(oraclejdk_jce_checksum: '')を提供してください。

プレイブックの例

以下は、このロールをAnsibleプレイブックで使用する方法の例です。

JDK8とJDK9を同時に使用し、JDK8のためにhomeを設定し、両方のJDKに対して異なる優先度で代替を更新する

- hosts: jdk
  pre_tasks:
  - name: 必要なパッケージをインストール(127.0.0.1)
    delegate_to: 127.0.0.1
    run_once: true
    package:
      name: '{{ item }}'
      state: present
    with_items:
    - tar
    - unzip
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk9.0.1
    oraclejdk_sethome: false
    oraclejdk_alternative_prio: 100
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
    oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk8u151
    oraclejdk_alternative_prio: 200
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
    oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
    oraclejdk_jce_install: true
    oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
    oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'

最小構成のJDK8

- hosts: jdk8
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk8_151
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
    oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'

JCEを含むJDK8

- hosts: jdk8
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/java-8-151
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
    oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
    oraclejdk_jce_install: true
    oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
    oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'

完全構成のJDK8

- hosts: jdk8
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_cleanup: true
    oraclejdk_dl_dir: /tmp/java_download
    oraclejdk_home: /opt/java/java-8-151
    oraclejdk_sethome: true
    oraclejdk_alternative_upd: true
    oraclejdk_alternative_prio: 123
    oraclejdk_alternative_items:
    - jar
    - java
    - javac
    - jcmd
    - jconsole
    - jmap
    - jps
    - jstack
    - jstat
    - jstatd
    oraclejdk_profile_file: /etc/profile.d/java.sh
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
    oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
    oraclejdk_jce_install: true
    oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
    oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'

JDK9

- hosts: jdk9
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk9.0.1
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
    oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'

チェックサムチェックなしのJDK9

- hosts: jdk9
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk9.0.1
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
    oraclejdk_checksum: ''

新しいJDKを追加し、古いJDKを削除するJDK9

- hosts: jdk9
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk9.0.1
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
    oraclejdk_checksum: ''
  - role: frieder.oraclejdk
    oraclejdk_state: absent
    oraclejdk_home: 
    - /opt/java/jdk9.0.1
    - /opt/java/java-8-151
プロジェクトについて

Ansible role to install Oracle JDK 8/9

インストール
ansible-galaxy install frieder.oraclejdk
ライセンス
mit
ダウンロード
113
所有者