frieder.oraclejdk
ansible-role-oraclejdk
Oracle JDKをインストールするためのAnsibleロールです。
プラットフォーム
概要
この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 |
|
このプロパティを使用して、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