gantsign.java

Rola Ansible: Java

Testy Ansible Galaxy Licencja

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
  • ansible_local.java.general.home

    • np. /opt/java/jdk8u402

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)

Zainstaluj
ansible-galaxy install gantsign.java
Licencja
mit
Pobrania
149.3k
Właściciel