srsp.oracle-java
srsp.oracle-java for Ansible Galaxy
概要
Ansible Galaxyでのロール名: srsp.oracle-java
このAnsibleロールは、Oracle JDKに関する以下の機能を備えています:
- Oracle JDKをバージョン8から13までインストールします。
- オプションのJava Cryptography Extensions (JCE) をインストールします。JDKバージョンが8u152以下の場合のみ必要です。
- CentOS、Debian/Ubuntu、SUSE、およびmacOSオペレーティングシステムにインストールします。
このロールはwilliamyeh.oracle-javaに基づいていますが、私はより最近のJavaバージョンを求め、古いバージョンのサポートを終了しました。
OpenJDKを好む場合は、geerlingguy.javaを試してください。
Oracleからの自動ダウンロード
注意: 以前は、このロールはすべてのJDKをOracleサイトから直接ダウンロードしていましたが、Oracleはこの可能性を段階的に制限しています。現在、OracleのログインなしではJDK 8のバージョンをダウンロードできません。JDK 11は一つの古いバージョンしかダウンロードできず、現時点ではJDK 13をダウンロード可能です。
Oracleが新しいJavaバージョンをリリースするたびにこの状況が変わるため、信頼しない方が良いでしょう。手動でJDKをダウンロードし、このロールを使用してインストールすることをお勧めします。
ロール変数
基本的な使用法
これにより、OracleからJDKをダウンロードし、インストールしようとします。
- hosts: all
roles:
- srsp.oracle-java
vars:
# これを設定する必要があります:
- java_version: 13
# これを省略できます(ロールはその時知っている最新バージョンを使用します):
- java_subversion: 0.2
例
手動でダウンロードしたJDKをインストール
目的のシステム用にダウンロードしたJDKファイルをfiles
ディレクトリに置き、java_download_from
をlocal
に設定します:
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 201
- java_download_from: local
自分のミラーからインストール
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 172
- java_download_from: mirror
- java_mirror: "http://some.url/in/your/network/jdk-8u172-macosx-x64.dmg"
JDKをローカルマシンにダウンロード (事前取得)
ローカルマシンにJDKを置きたいだけの場合(例えば、モレキュールテストや社内ミラーにアップロードするために)、このロール内のprefetch.yml
プレイブックを使用できます:
ansible-playbook prefetch.yml
ニーズに応じてプレイブックを変更してください。
コマンドラインから実行する場合
ansible-playbook --ask-become-pass playbook.yml
オプション変数
ユーザー設定可能なデフォルト:
# Javaバージョン
java_version: 8
# Javaサブバージョン
java_subversion: 201
# Oracleから直接Javaをダウンロードするかどうか
# - oracle: Oracleサイトから直接ダウンロードします。
# - mirror: 'java_mirror'で定義されたURLからダウンロードします。
# - local: コントロールマシンのロールまたはプレイブックの`files`ディレクトリからコピーします。
java_download_from: oracle
# 'java_download_from'の値に応じて、ここで異なることが起こります:
# - oracle: 設定する必要はありません。Oracleのダウンロードミラーで事前設定されています。
# - mirror: ダウンロードしたいミラーを設定する必要があります。ファイルを含む完全なURLを設定する必要があります。JCEも必要な場合は、'jce_zip_url'も設定する必要があります。
# - local: 'java_mirror'は使用されないため、値は無視されます。
#java_mirror: "https://private-repo.com/java/jdk-8u172-macosx-x64.dmg"
java_mirror: "http://download.oracle.com/otn-pub/java"
# 一時ダウンロードファイルを削除しますか?
java_remove_download: true
# $JAVA_HOMEを設定しますか?
java_set_java_home: true
# JCEをインストールしますか?
java_install_jce: false
その他の設定可能なオプションについては、tasks/set-role-variables.yml
ファイルを読んでください;例えば、サポートされるjava_version
/java_subversion
の組み合わせを見ることができます。
サポートされていないJDKをインストールしたい!
問題ありません!必要なJavaビルド番号をjava_build
とjdk_tarball_hash
の変数に、java_version
とjava_subversion
とともに指定してください。例えば:
# ファイル: playbook.yml
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 141
- java_build: 15
- jdk_tarball_hash: 336fa29ff2bb4ef291e347e091f7f4a7
ライセンス
Apache License V2.0の下でライセンスされています。詳細はLICENSEファイルをご覧ください。
開発
テスト
テストはmolecule
を使用しています。このロールはOracleのJDKを必要とするため、moleculeテストコンテナは/tmp/java
をマウントし、JDKがローカルマシンに保持され、テストコンテナが破壊されても利用可能なままとなります。インストールファイルを事前取得し、/tmp/java
に置くこともできます。
これにより、デフォルトのシナリオに対してすべてのテストサイクルが実行されます:
molecule test
特定のディストリビューションで作業したい場合は、以下のように使用します:
molecule converge --scenario-name opensuse15
すべてをテストしたい場合は、次のコマンドを発行します:
molecule test --all
これには時間がかかります。
Oracle JDK 8 to 13 for CentOS/Fedora/Debian/Ubuntu/Suse/MacOSX
ansible-galaxy install srsp.oracle-java