gantsign.java
Rola Ansible: Java
Rola do instalacji Java JDK.
Wymagania
Ansible Core >= 2.12
Dystrybucja Linux
Rodzina Debian
Debian
- Buster (10)
- Bullseye (11)
Ubuntu
- Bionic (18.04)
- Focal (20.04)
- Jammy (22.04)
Rodzina RedHat
Rocky Linux
- 8
Fedora
- 35
Rodzina SUSE
openSUSE
- 15.4
Uwaga: inne wersje mogą działać, ale nie były testowane.
Zmienne Roli
Poniższe zmienne zmienią zachowanie tej roli (domyślne wartości są pokazane poniżej):
# Numer wersji Java
# Podaj '8', '11', '17' lub '21', aby uzyskać najnowszą wersję łatki tej
# wersji.
java_version: '21.0.2+13'
# Podstawowy katalog instalacyjny dla dowolnej dystrybucji Java
java_install_dir: '/opt/java'
# Katalog do przechowywania pobranych plików instalacyjnych Java na zdalnym serwerze
java_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"
# Miejsce, gdzie pakiety instalacyjne Java mogą być dostępne na lokalnej maszynie
# lokalne pakiety będą używane z preferencją przed pobieraniem nowych pakietów.
java_local_archive_dir: '{{ playbook_dir }}/files'
# Czy używać pakietów instalacyjnych w lokalnym archiwum (jeśli są dostępne)
java_use_local_archive: true
# Jeśli to jest domyślna instalacja, skrypty profile będą zapisane, aby ustawić
# zmienną środowiskową JAVA_HOME i dodać katalog bin do zmiennej środowiskowej PATH.
java_is_default_installation: true
# Nazwa grupy faktów Ansible dotyczących tej instalacji Java.
#
# Nadpisz, jeśli chcesz użyć tej roli więcej niż raz do zainstalowania wielu wersji
# Java.
#
# np. java_fact_group_name: java_8
# zmieniłoby fakt dotyczący JAVA home na:
# ansible_local.java_8.general.home
java_fact_group_name: java
# SHA-256 dla redistributable JDK
java_redis_sha256sum:
# Miejsce lustrzane do pobrania JDK (np. https://example.com/provisioning/files)
java_redis_mirror:
# Nazwa pliku dla pliku instalacyjnego redistributable JDK
java_redis_filename:
# Czas oczekiwania na odpowiedź pobrania JDK w sekundach
java_download_timeout_seconds: 600
# Czas oczekiwania na API Adoptium
java_api_timeout_seconds: 30
Przykładowe Playbooki
Domyślnie ta rola zainstaluje najnowszą wersję LTS JDK dostarczoną przez Adoptium, która została przetestowana i jest znana z działania z tą rolą:
- hosts: serwery
roles:
- role: gantsign.java
Możesz zainstalować konkretną wersję JDK, określając java_version
.
- hosts: serwery
roles:
- role: gantsign.java
java_version: '8.0.402+6'
Uwaga: przy użyciu curl i jq możesz wyświetlić dostępne wersje, uruchamiając następujące polecenie:
for i in 21 17 11 8; do (curl --silent http \
"https://api.adoptium.net/v3/info/release_names?version=%5B$i,$(($i + 1)))\
&release_type=ga" | jq --raw-output '.releases[]' | sed -E 's/^jdk\-?//'); done
Możesz zainstalować wiele wersji JDK, używając tej roli więcej niż raz:
- hosts: serwery
roles:
- role: ansible-role-java
java_version: '8'
java_is_default_installation: false
java_fact_group_name: java_8
- role: ansible-role-java
java_version: '11'
java_is_default_installation: true
java_fact_group_name: java
Aby przeprowadzić instalację offline, musisz podać trochę więcej informacji (tj.
java_major_version
, java_release_name
, java_redis_filename
i
java_redis_sha256sum
). Na przykład, aby przeprowadzić instalację offline 11.0.22+7
:
# Przed przeprowadzeniem instalacji offline należy pobrać
# `OpenJDK11U-jdk_x64_linux_hotspot_11.0.22_7.tar.gz` do
# `{{ playbook_dir }}/files/` na lokalnej maszynie.
- hosts: serwery
roles:
- role: gantsign.java
java_major_version: '11'
java_version: '11.0.22+7'
java_release_name: 'jdk-11.0.22+7'
java_redis_filename: 'OpenJDK11U-jdk_x64_linux_hotspot_11.0.22_7.tar.gz'
java_redis_sha256sum: '25cf602cac350ef36067560a4e8042919f3be973d419eac4d839e2e0000b2cc8'
Fakty Roli
Ta rola eksportuje następujące fakty Ansible do użycia przez inne role:
ansible_local.java.general.version
- np.
8u402
- np.
ansible_local.java.general.home
- np.
/opt/java/jdk8u402
- np.
Nadpisanie java_fact_group_name
zmieni nazwy faktów, np.:
java_fact_group_name: java_8
Zmieniłoby nazwę faktów na:
ansible_local.java_8.general.version
ansible_local.java_8.general.home
Więcej Ról od GantSign
Więcej ról od GantSign można znaleźć na Ansible Galaxy.
Rozwój i Testowanie
Ten projekt korzysta z następujących narzędzi:
- Molecule do organizacji scenariuszy testowych
- Testinfra do testowania zmian na zdalnym serwerze
- pytest framework testowy
- Tox zarządza wirtualnymi środowiskami Pythona do analizy i testowania
- pip-tools do zarządzania zależnościami
Dostarczany jest również kontener Dev Container dla zapewnienia rozwoju i testowania tej roli.
Licencja
MIT
Informacje o Autorze
John Freeman
GantSign Ltd. Numer firmy 06109112 (zarejestrowana w Anglii)
Role for installing the Java JDK.
ansible-galaxy install gantsign.java