gantsign.maven
Ansible Rola: Maven
Rola do instalacji narzędzia budującego Apache Maven.
Wymagania
Ansible Core >= 2.12
Dystrybucja Linuxa
Rodzina Debian
Debian
- Buster (10)
- Bullseye (11)
Ubuntu
- Bionic (18.04)
- Focal (20.04)
Rodzina RedHat
Rocky Linux
- 8
Fedora
- 34
Rodzina SUSE
openSUSE
- 15.2
Uwaga: inne wersje mogą działać, ale nie były testowane.
Java SE Development Kit (JDK)
Wymagana wersja JDK zależy od wersji Apache Maven
Wersja Maven Minimalna wersja 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
Zmienne Roli
Poniższe zmienne zmieniają działanie tej roli (domyślne wartości pokazane poniżej):
# Numer wersji Maven
maven_version: '3.9.4'
# Lustro do pobrania pakietu Maven
maven_mirror: "http://archive.apache.org/dist/maven/maven-{{ maven_version|regex_replace('\\..*', '') }}/{{ maven_version }}/binaries"
# Główny katalog instalacji dla dystrybucji Maven
maven_install_dir: /opt/maven
# Katalog, w którym będą przechowywane pliki pobrane do instalacji Maven
maven_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"
# Liczba sekund na czekanie przed wygaśnięciem pobierania Maven
maven_download_timeout: 10
# Czy używać proxy podczas pobierania Maven (jeśli zmienna środowiskowa proxy jest obecna)
maven_use_proxy: true
# Czy weryfikować certyfikaty HTTPS podczas pobierania Maven
maven_validate_certs: true
# Jeśli jest to domyślna instalacja, zostaną utworzone dowiązania symboliczne do mvn i mvnDebug
# w /usr/local/bin
maven_is_default_installation: true
# Nazwa grupy faktów Ansible związanych z tą instalacją Maven.
#
# Nadpisz, jeśli chcesz używać tej roli więcej niż raz do instalacji wielu wersji
# Maven.
#
# np. maven_fact_group_name: maven_3_3
# zmieni fakt dotyczący Maven na:
# ansible_local.maven_3_2.general.home
maven_fact_group_name: maven
Obsługiwane wersje Maven
Poniższe wersje Maven są obsługiwane bez dodatkowej konfiguracji (dla innych wersji postępuj zgodnie z instrukcjami dotyczącymi zaawansowanej konfiguracji):
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
Zaawansowana Konfiguracja
Poniższa zmienna roli zależy od wersji Maven; aby użyć wersji Maven nieprekonfigurowanej przez tę rolę, musisz skonfigurować poniższą zmienną:
# Suma SHA256 dla pakietu redistribuowalnego (tj. apache-maven-{{ maven_version }}-bin.tar.gz)
maven_redis_sha256sum: '6e3e9c949ab4695a204f74038717aa7b2689b1be94875899ac1b3fe42800ff82'
Przykładowe Playbooki
Domyślnie ta rola zainstaluje najnowszą wersję Maven obsługiwaną przez tę rolę:
- hosts: serwery
roles:
- role: gantsign.maven
Możesz zainstalować konkretną wersję Maven, określając maven_version
(uwaga: jeśli wersja nie jest obecnie obsługiwana przez tę rolę, wymagana będzie dodatkowa konfiguracja - zobacz
Zaawansowana Konfiguracja):
- hosts: serwery
roles:
- role: gantsign.maven
maven_version: '3.3.9'
Możesz zainstalować wiele wersji Maven, używając tej roli więcej niż raz:
- hosts: serwery
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
Fakty Roli
Ta rola eksportuje następujące fakty Ansible do używania przez inne role:
ansible_local.maven.general.version
- np.
3.3.9
- np.
ansible_local.maven.general.home
- np.
/opt/maven/apache-maven-3.3.9
- np.
Nadpisanie maven_fact_group_name
zmieni nazwy faktów np.:
maven_fact_group_name: maven_3_2
Zmieniłoby nazwę faktów na:
ansible_local.maven_3_2.general.version
ansible_local.maven_3_2.general.home
Pokrewne Role
Możesz znaleźć następujące pokrewne role przydatne:
gantsign.java do instalacji JDK.
gantsign.maven-notifier do dostarczania powiadomienia GUI po zakończeniu budowy.
- Instaluje Maven Notifier rozszerzenie dla Maven autorstwa Jean-Christophe Gay.
Więcej Ról od GantSign
Możesz znaleźć więcej ról od GantSign na Ansible Galaxy.
Rozwój i Testowanie
Ten projekt wykorzystuje następujące narzędzia:
- Molecule do organizowania scenariuszy testowych
- Testinfra do testowania zmian na zdalnym
- pytest jako ramy testowe
- Tox zarządza wirtualnymi środowiskami Python do lintingu i testowania
- pip-tools do zarządzania zależnościami
Zaprojektowano również Visual Studio Code Dev Container dla rozwoju i testowania tej roli.
Licencja
MIT
Informacje o Autorze
John Freeman
GantSign Ltd. Numer firmy 06109112 (zarejestrowana w Anglii)
ansible-galaxy install gantsign.maven