gantsign.java

Ansible-Rolle: Java

Tests Ansible Galaxy Lizenz

Rolle zur Installation des Java JDK.

Anforderungen

  • Ansible Core >= 2.12

  • Linux-Distribution

    • Debian-Familie

      • Debian

        • Buster (10)
        • Bullseye (11)
      • Ubuntu

        • Bionic (18.04)
        • Focal (20.04)
        • Jammy (22.04)
    • RedHat-Familie

      • Rocky Linux

        • 8
      • Fedora

        • 35
    • SUSE-Familie

      • openSUSE

        • 15.4
    • Hinweis: Andere Versionen funktionieren wahrscheinlich, wurden jedoch nicht getestet.

Rollenvariablen

Die folgenden Variablen ändern das Verhalten dieser Rolle (Standardeinstellungen sind unten gezeigt):

# Java Versionsnummer
# Geben Sie '8', '11', '17' oder '21' an, um die neueste Patch-Version dieser
# Version zu erhalten.
java_version: '21.0.2+13'

# Basisinstallationsverzeichnis für jede Java-Distribution
java_install_dir: '/opt/java'

# Verzeichnis zum Speichern von Dateien, die für die Java-Installation auf der
# Remote-Maschine heruntergeladen werden
java_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"

# Speicherort, an dem Java-Installationspakete auf der lokalen Maschine zu finden sind
# Lokale Pakete werden bevorzugt, um neue Pakete herunterzuladen.
java_local_archive_dir: '{{ playbook_dir }}/files'

# Ob die Installationspakete im lokalen Archiv verwendet werden sollen (sofern verfügbar)
java_use_local_archive: true

# Wenn dies die Standardinstallation ist, werden Profilskripte geschrieben, um die
# Umgebungsvariable JAVA_HOME zu setzen und das bin-Verzeichnis zum PATH
# hinzuzufügen.
java_is_default_installation: true

# Name der Gruppe von Ansible-Fakten, die mit dieser Java-Installation zu tun haben.
#
# Überschreiben, wenn Sie diese Rolle mehr als einmal verwenden möchten, um mehrere Versionen
# von Java zu installieren.
#
# z.B. java_fact_group_name: java_8
# würde das Java Home-Fact ändern zu:
# ansible_local.java_8.general.home
java_fact_group_name: java

# Der SHA-256 für das JDK-Redistributable
java_redis_sha256sum:

# Spiegel-Standort für den JDK-Download (z.B. https://example.com/provisioning/files)
java_redis_mirror:

# Dateiname für die Installationsdatei des JDK-Redistributable
java_redis_filename:

# Timeout für die JDK-Download-Antwort in Sekunden
java_download_timeout_seconds: 600

# Das Timeout für die Adoptium API
java_api_timeout_seconds: 30

Beispiel-Playbooks

Standardmäßig installiert diese Rolle die neueste LTS-JDK-Version, die von Adoptium bereitgestellt wird und die getestet wurde und mit dieser Rolle bekannt ist:

- hosts: servers
  roles:
    - role: gantsign.java

Sie können eine spezifische Version des JDK installieren, indem Sie die java_version angeben.

- hosts: servers
  roles:
    - role: gantsign.java
      java_version: '8.0.402+6'

Hinweis: Mit curl und jq können Sie die verfügbaren Versionen anzeigen, indem Sie folgenden Befehl ausführen:

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

Sie können mehrere Versionen des JDK installieren, indem Sie diese Rolle mehr als einmal verwenden:

- hosts: servers
  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

Um eine Offline-Installation durchzuführen, müssen Sie etwas mehr Informationen angeben (d.h. java_major_version, java_release_name, java_redis_filename und java_redis_sha256sum). Zum Beispiel, um eine Offline-Installation von 11.0.22+7 durchzuführen:

# Vor der Durchführung der Offline-Installation, laden Sie
# `OpenJDK11U-jdk_x64_linux_hotspot_11.0.22_7.tar.gz` nach
# `{{ playbook_dir }}/files/` auf der lokalen Maschine herunter.
- hosts: servers
  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'

Rollen-Fakten

Diese Rolle exportiert die folgenden Ansible-Fakten zur Verwendung durch andere Rollen:

  • ansible_local.java.general.version

    • z.B. 8u402
  • ansible_local.java.general.home

    • z.B. /opt/java/jdk8u402

Durch das Überschreiben von java_fact_group_name ändern sich die Namen der Fakten, z.B.:

java_fact_group_name: java_8

Ändert den Namen der Fakten zu:

  • ansible_local.java_8.general.version
  • ansible_local.java_8.general.home

Weitere Rollen von GantSign

Sie finden weitere Rollen von GantSign auf Ansible Galaxy.

Entwicklung & Tests

Dieses Projekt verwendet die folgenden Werkzeuge:

  • Molecule zur Orchestrierung von Test-Szenarien
  • Testinfra zum Testen der Änderungen auf der Remote-Maschine
  • pytest das Testframework
  • Tox verwaltet Python-virtuelle Umgebungen für Linting und Tests
  • pip-tools zur Verwaltung von Abhängigkeiten

Ein Visual Studio Code Dev Container wird bereitgestellt, um diese Rolle zu entwickeln und zu testen.

Lizenz

MIT

Autoreninformation

John Freeman

GantSign Ltd. Firmennummer: 06109112 (eingetragen in England)

Installieren
ansible-galaxy install gantsign.java
Lizenz
mit
Downloads
149.3k
Besitzer