fernandrone.ansible_sdkman
Ansibleロール: fernandrone.ansible_sdkman
このAnsibleロールは次の機能を実行します:
- SDKMANをインストール
- SDKMANで管理されるソフトウェアの候補をインストール/アンインストール
- SDKのバージョンのデフォルト設定
- SDKMANの設定ファイルの管理:
/path/to/sdkman/etc/config
- SDKMANのキャッシュをフラッシュ
警告: OracleはJDKのインストールをますます難しくしており、 これがSDKMANを通じてのインストールを妨げています。代わりに OpenJDKの使用を検討するか、他の手段でOracle JDKをインストール/管理してください。
要件
特になし。
ロール変数
それぞれのオーバーライド可能な変数の説明は、defaultsを参照してください。
依存関係
特になし。
例Playbook
以下は例です!
- hosts: servers
roles:
- role: fernandrone.ansible_sdkman
sdkman_user: vagrant
sdkman_group: vagrant
sdkman_auto_answer: true
sdkman_update: true
sdkman_uninstall_packages:
- { candidate: groovy, version: 1.8.9 }
sdkman_install_packages:
- { candidate: java, version: 8.0.202-zulu }
- { candidate: gradle, version: '3.5' }
- { candidate: gradle, version: 2.14.1 }
- { candidate: maven, version: 3.5.0 }
- { candidate: maven, version: 3.3.9 }
# SDKMAN以外でインストールしたパッケージをSDKMANが認識するための書き方
- { candidate: java, version: 1.8.0-oracle, localpath: /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk }
sdkman_defaults:
gradle: '3.5'
maven: 3.3.9
java: 8.0.202-zulu
sdkman_flush_caches_before:
- temp
sdkman_flush_caches_after:
- archives
- broadcast
- candidates
- temp
sdkman_offline_mode: false
sdkman_update_alternatives:
- candidate: java
name: java
link: /usr/bin/java
- candidate: java
name: javac
link: /usr/bin/javac
sdkman_fix_permissions: false
追加の注意事項
特権昇格を必要とするステップ(例えば sudo
コマンド)をスキップしたい場合、このロールはそのタスクに sdkman_privilege
タグを付けています。
コマンドラインで --skip-tags
フラグをこのタグとともに指定することで、
システム管理者が既に完了させたステップ(例えば、システムパッケージのインストール)をバイパスできます。
Alpine Linuxでこのロールをテストするのは困難です。
SDKMANで提供される最近のJDKビルド(>-11)はAlpineと互換性がありません。そのため、apk
パッケージリポジトリを通じてJDK/JREをインストールすることをお勧めします。
全体として、AlpineでSDKMANパッケージがどれだけうまく動作するかは現在不明です。結果は環境によって異なる場合があります。_注意してください_。