gilcot.ojdk
オープンJava開発キット
この役割は、ほとんどのOSでオープンJava開発キット(OpenJDK)を管理することです。
OpenJDK は、Javaプラットフォームスタンダードエディション(J2SE)の無料でオープンソースのリファレンス実装です。これはJavaコミュニティプロセス(JCP)によって定義されています。これは、GNU一般公衆ライセンスバージョン2にリンクの例外を付加したもののもとにあり、HotSpot仮想マシン(JVM)や、javac
(公式のSun コンパイラ、ECJ(Eclipse Compiler for Java)、GCJ(GNU Compiler for Java)、Jikes(IBMオープンソースコンパイラ)などではありません)を含みます。
リファレンスとして、予測される共通の基準を提供します(他の実装はJ2SE以外のクラスを追加したりしないかもしれません)。したがって、Oracle JDKとの些細な違いや、リリースモデル、および有料サポートもあります。
開始
このセクションは、役割を動作させるための初期設定についてです。
要件
この役割は、他の役割に依存しません。
この役割は、配布のネイティブパッケージマネージャーと構成されたリポジトリを使用します。
この役割は、ビルドがある配布のために動作します(ほぼ完全で最新のリストについては、例えばこちらを参照してください)。また、利用可能なバージョンは、配布のメジャーリリースに応じて異なる場合があり、番号も異なります。
(表は省略)
インストール
ロールの依存関係ファイルに以下の行を作成または追加してください:
- GitHubから
- src: http://github.com/gilcot/ansible-ojdk.git
scm: git
version: 1.0.0
name: openjdk
- src: gilcot.openjdk
version: 1.0.0
name: openjdk
そのファイルを使用して、コントロールホストに役割をインストールします:
# $rolesは役割フォルダのパスで、デフォルトを使用しない場合は
# $specsは前に作成された要件ファイル
# 最後のオプションは強制上書き、バージョン変更を確実にするのに便利
ansible-galaxy install -p $roles -r $specs -f
使用
このセクションは、プレイブックでの役割の統合についてです。
変数
この役割は、非常に少数の変数を使用します。
ojdk_version
インストールするJDKのバージョンです。
これは、パッケージのバージョンでもなく、パッケージ名の番号でもありません! 上記の表を参照してください。
この値は必須であり、整数である必要があります。
ojdk_state
これは、望ましい状態です。したがって、必須です。以下のいずれかです:
present
は、パッケージがまだインストールされていない場合にインストールします。absent
は、パッケージがまだあれば削除します。- それ以外のすべての値は、基盤のモジュールによって受け入れられます(例:
latest
は、パッケージを最新の修正リリースにアップグレードするために使用)。
ojdk_gpg_uncheck
これは、いくつかのパッケージマネージャーで署名/証明書のチェックを無効にするために使用されるブール値(no
/false
または yes
/true
)です。これは、稀な場合にそうしたチェックを無効にするのに便利です。
ojdk_repository
これは、いくつかのパッケージマネージャーによって使用され、追加のリポジトリを設定するために使用されます。この文字列形式(URLまたはパス)はOSに依存します。
(表は省略)
特定の配布(例:CentOSやUbuntu)については、この役割を呼び出す前にリポジトリを追加することが便利な場合があります。このパラメータは非常に基本的な設定を行います。
条件
この役割はシステムからパッケージを追加したり削除したりするため、権限昇格が必要であり、役割を適切に呼び出さなければなりません。
この役割は、OSファミリーや配布(名前およびメジャーリリース)の情報も使用します。したがって、ファクトの収集を許可するか、何らかの方法で提供する必要があります。
例
これで、プレイブックで使用する準備が整いました。
操作は root ユーザーとして実行する必要があることに注意してください(そのため、以下の例では権限昇格が使用されています)。
私のサーブレットグループにJDK12をインストールするには:
- hosts: servlets
become: yes
gather_facts: yes
roles:
- { role: openjdk, ojdk_version: 12 }
ダミーホストからJDK5を削除するには(存在しないため例示に過ぎません):
- hosts: dummy
become: yes
gather_facts: yes
roles:
- { role: openjdk, ojdk_version: 5, ojdk_state: absent }
(同じことをピュアYAML構文を用いて)
- hosts: dummy
become: yes
gather_facts: yes
roles:
- role: openjdk
ojdk_version: 5
ojdk_state: absent
さて、コントロールマスターのインベントリが以下のようになっているとします:
[dummies]
dummy
[olders]
foo
bar
[newers]
baz
qix
[servlets:children]
olders
newers
[dummies:vars]
ojdk_version = 5
ojdk_state = absent
[olders:vars]
ojdk_version = 8
[newers:vars]
ojdk_version = 11
[servlets:vars]
ojdk_state = present
すると、プレイブックは次のようになります:
- hosts: dummy
become: yes
roles:
- openjdk
雑多
ライセンス
この役割は、GNU GPLv3のもとでコピーレフトされています(LICENSEファイルを参照)。
著者
gilcotはフリーソフトウェアの強力な支持者であり、展開にAnsibleシステムだけを信奉しています。