gantsign.maven
Ansibleロール: Maven
このロールは、Apache Maven ビルドツールをインストールします。
必要条件
Ansible Core >= 2.12
Linux ディストリビューション
Debian 系
Debian
- Buster (10)
- Bullseye (11)
Ubuntu
- Bionic (18.04)
- Focal (20.04)
RedHat 系
Rocky Linux
- 8
Fedora
- 34
SUSE 系
openSUSE
- 15.2
注意: 他のバージョンも動作する可能性がありますが、テストは行われていません。
Java SE 開発キット (JDK)
必要な JDK バージョンは Apache Maven のバージョンによります
Maven バージョン 最小 JDK バージョン 3.9.x 8 3.8.x 7 3.6.x 7 3.5.x 7 3.3.x 7 3.2.x 6 3.1.x 5
ロール変数
以下の変数は、このロールの動作を変更します(デフォルト値は以下の通り):
# Maven バージョン番号
maven_version: '3.9.4'
# Maven 再配布パッケージをダウンロードするためのミラー
maven_mirror: "http://archive.apache.org/dist/maven/maven-{{ maven_version|regex_replace('\\..*', '') }}/{{ maven_version }}/binaries"
# Maven の配布をインストールする基本ディレクトリ
maven_install_dir: /opt/maven
# Maven インストール用にダウンロードしたファイルを保存するディレクトリ
maven_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"
# Maven ダウンロードのタイムアウト前に待つ時間(秒数)
maven_download_timeout: 10
# Maven ダウンロード時にプロキシを使用するかどうか(プロキシ環境変数がある場合)
maven_use_proxy: true
# Maven ダウンロード時に HTTPS 証明書を検証するかどうか
maven_validate_certs: true
# これはデフォルトインストールの場合、/usr/local/bin に mvn と mvnDebug への
# シンボリックリンクが作成されます
maven_is_default_installation: true
# この Maven インストールに関連する Ansible ファクトのグループ名
#
# このロールを複数回使用して複数の Maven バージョンをインストールしたい場合は
# 上書きしてください。
#
# 例: maven_fact_group_name: maven_3_3
# で Maven ホームファクト名が変更されます:
# ansible_local.maven_3_2.general.home
maven_fact_group_name: maven
サポートされている Maven バージョン
追加の設定なしにサポートされている Maven のバージョンは以下の通りです(他のバージョンは詳細設定の指示に従ってください):
3.9.4
3.9.3
3.9.2
3.9.1
3.9.0
3.8.8
3.8.7
3.8.6
3.8.5
3.8.4
3.8.3
3.8.2
3.8.1
3.6.3
3.6.2
3.6.1
3.6.0
3.5.4
3.5.3
3.5.2
3.5.0
3.3.9
3.2.5
3.1.1
詳細設定
以下のロール変数は Maven バージョンに依存します。このロールで 事前設定されていない Maven バージョンを使用するには、以下の変数を設定する必要があります:
# 再配布パッケージの SHA256 サム(すなわち apache-maven-{{ maven_version }}-bin.tar.gz)
maven_redis_sha256sum: '6e3e9c949ab4695a204f74038717aa7b2689b1be94875899ac1b3fe42800ff82'
例のプレイブック
デフォルトでは、このロールはこのロールがサポートする最新の Maven バージョンをインストールします:
- hosts: servers
roles:
- role: gantsign.maven
特定の Maven バージョンをインストールするには maven_version
を指定します(注: このロールが現在サポートしていないバージョンの場合は、追加の設定が必要です – 詳細設定 を参照してください):
- hosts: servers
roles:
- role: gantsign.maven
maven_version: '3.3.9'
このロールを複数回使用することで、複数の Maven バージョンをインストールできます:
- hosts: servers
roles:
- role: gantsign.maven
maven_version: '3.3.9'
maven_is_default_installation: true
maven_fact_group_name: maven
- role: gantsign.maven
maven_version: '3.2.5'
maven_is_default_installation: false
maven_fact_group_name: maven_3_2
ロールファクト
このロールは他のロールで使用するために以下の Ansible ファクトをエクスポートします:
ansible_local.maven.general.version
- 例:
3.3.9
- 例:
ansible_local.maven.general.home
- 例:
/opt/maven/apache-maven-3.3.9
- 例:
maven_fact_group_name
を上書きすると、ファクトの名前が変更されます。例:
maven_fact_group_name: maven_3_2
ファクトの名前が次のように変更されます:
ansible_local.maven_3_2.general.version
ansible_local.maven_3_2.general.home
関連ロール
以下の関連ロールも役に立つかもしれません:
gantsign.java は JDK をインストールします。
gantsign.maven-notifier はビルドが終了したときに GUI 通知を提供します。
- Maven Notifier 拡張機能を Maven にインストールします。これは Jean-Christophe Gay によって作成されました。
GantSign の他のロール
GantSign の他のロールは Ansible Galaxy で見つけることができます。
開発とテスト
このプロジェクトでは、以下のツールが使用されています:
- Molecule はテストシナリオを調整します
- Testinfra はリモートでの変更をテストします
- pytest はテストフレームワークです
- Tox は linting とテスト用の Python 仮想環境を管理します
- pip-tools は依存関係を管理します
Visual Studio Code の Dev Container が このロールの開発とテスト用に提供されています。
ライセンス
MIT
著者情報
ジョン・フリーマン
GantSign Ltd. 会社番号 06109112(イングランドで登録)
ansible-galaxy install gantsign.maven