arolfes.graalvm

Ansible Rolle: GraalVM

Build Status Ansible Galaxy Lizenz

Rolle zur Installation von GraalVM CE.

Anforderungen

  • Ansible >= 5 (Ansible Core >= 2.12)

  • Linux Distribution

    • Debian Familie

      • Ubuntu

        • Focal (20.04)
        • Jammy (22.04)
      • Debian

        • Buster (10)
        • Bullseye (11)
        • Bookworm (12)
    • RedHat Familie

      • Fedora

        • 37
        • 38
    • SUSE Familie

      • openSUSE

        • 15.0
        • 15.1
        • 15.2
        • 15.3
        • 15.4
        • 15.5
    • Hinweis: Andere Versionen könnten funktionieren, wurden aber nicht getestet.

Rollenvariablen

Die folgenden Variablen ändern das Verhalten dieser Rolle (Standardwerte sind unten aufgeführt):

# Geben Sie die zugrunde liegende Community JDK-Version an
# 17.0.7, 17.0.8, 20.0.1, 20.0.2, 21.0.0 oder 21.0.2
graalvm_java_version: '21.0.2'

# Basisinstallationsverzeichnis für jede GraalVM-Distribution
graalvm_install_dir: '/opt/graalvm'

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

# Wenn dies die Standardinstallation ist, werden Profilscripte geschrieben, um
# die Umgebungsvariable GRAALVM_HOME festzulegen
graalvm_is_default_installation: true

# Ob das Bin-Verzeichnis von GraalVM zur PATH-Umgebungsvariable hinzugefügt werden soll
# Die Wirkung tritt nur ein, wenn dies auch die Standardinstallation ist
graalvm_add_to_path: true

# Standort, wo die GraalVM Installationspakete auf der lokalen Box gefunden werden können
# Lokale Pakete werden bevorzugt, um neue Pakete herunterzuladen.
graalvm_local_archive_dir: '{{ playbook_dir }}/files'

# Ob lokale Archive (wenn verfügbar) verwendet werden sollen
graalvm_use_local_archive: true

# Der SHA-256 für das GraalVM Redistributable
graalvm_redis_sha256sum:

# Ort für den GraalVM-Download (z. B. https://example.com/provisioning/files)
# Nur angeben, wenn nicht direkt von GitHub heruntergeladen wird.
graalvm_redis_mirror:

# Dateiname für die Installationsdatei des GraalVM-Redistributable
graalvm_redis_filename: "graalvm-community-jdk-{{ graalvm_java_version }}_linux-{{ graalvm_architecture }}_bin.tar.gz"

# Name der Gruppe von Ansible-Fakten, die mit dieser GraalVM-Installation zusammenhängen.
#
# Überschreiben Sie dies, wenn Sie diese Rolle mehr als einmal verwenden möchten,
# um mehrere Versionen von GraalVM zu installieren.
#
# z.B. graalvm_fact_group_name: graalvm_20_0_2
# würde die GraalVM Home-Funktion wie folgt ändern:
# ansible_local.graalvm_20_0_2.general.home
graalvm_fact_group_name: graalvm

# Timeout für die GraalVM-Download-Antwort in Sekunden
graalvm_download_timeout_seconds: 600

# Wählen Sie die zugrunde liegende Architektur, x64 (bedeutet amd64) oder aarch64
graalvm_architecture: 'x64'

Unterstützte GraalVM-Versionen

Die folgenden Versionen von GraalVM Community JDK werden ohne zusätzliche Konfiguration unterstützt

  • 17.0.7
  • 17.0.8
  • 20.0.1
  • 20.0.2
  • 21.0.0
  • 21.0.2

Unterstützte Architekturen

  • x64 (bedeutet amd64)
  • aarch64

Beispiel Playbooks

Standardmäßig installiert diese Rolle die neueste getestete GraalVM CE:

- hosts: servers
  roles:
    - role: arolfes.graalvm
# Ergebnisse:
# neue Datei /etc/profile.d/graalvm.sh
# Inhalt:
# GRAALVM_HOME=/opt/graalvm/jdk-21.0.2
# PATH=${GRAALVM_HOME}/bin:${PATH}

Ältere Version installieren

- hosts: servers
  roles:
    - role: arolfes.graalvm
      graalvm_java_version: '17.0.7'

Wenn Sie nicht möchten, dass GraalVM in Ihrer Path-Variable steht, setzen Sie graalvm_add_to_path auf false

- hosts: servers
  roles:
    - role: arolfes.graalvm
      graalvm_add_to_path: false

Wenn Sie keine /etc/profile.d/graalvm.sh-Datei möchten

- hosts: servers
  roles:
    - role: arolfes.graalvm
      graalvm_is_default_installation: false

Sie können mehrere Versionen von GraalVM installieren, indem Sie diese Rolle mehrmals verwenden:

- hosts: servers
  roles:
    # Die erste Rolle installiert graalvm-community-jdk-17.0.7
    - role: arolfes.graalvm
      graalvm_java_version: '17.0.7'
      graalvm_is_default_installation: false
      graalvm_fact_group_name: 'graalvm_java_17_0_7'

    # Die zweite Rolle installiert graalvm-community-jdk-21.0.2 und wird als Standard-GraalVM gesetzt
    - role: arolfes.graalvm

Um eine Offline-Installation durchzuführen, müssen Sie etwas mehr Informationen angeben (d.h. graalvm_redis_filename und graalvm_redis_sha256sum). Zum Beispiel um eine Offline-Installation von graalvm-19.3.2-java11 durchzuführen:

# Bevor Sie die Offline-Installation durchführen, laden Sie
# `graalvm-community-jdk-21.0.2_linux-x64_bin.tar.gz` herunter auf
# `{{ playbook_dir }}/files/` auf der lokalen Maschine.
- hosts: servers
  roles:
    - role: arolfes.graalvm
      graalvm_java_version: '21.0.2'
      graalvm_use_local_archive: true
      graalvm_redis_filename: 'graalvm-community-jdk-21.0.2_linux-x64_bin.tar.gz'
      graalvm_redis_sha256sum: 'b048069aaa3a99b84f5b957b162cc181a32a4330cbc35402766363c5be76ae48'

Rollenfakten

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

  • ansible_local.graalvm.general.java_version

    • z.B. 21.0.2
  • ansible_local.graalvm.general.home

    • z.B. /opt/graalvm/jdk-21.0.2

Das Überschreiben von graalvm_fact_group_name ändert die Namen der Fakten, z.B.:

graalvm_fact_group_name: graalvm_java_21_0_0

Ändert den Namen der Fakten in:

  • ansible_local.graalvm_java_21_0_0.general.version
  • ansible_local.graalvm_java_21_0_0.general.java_version
  • ansible_local.graalvm_java_21_0_0.general.home

Entwicklung & Testing

Dieses Projekt verwendet Molecule zur Unterstützung bei der Entwicklung und dem Testen; die Rolle wird mit Testinfra und pytest getestet.

Für Entwicklungs- oder Testzwecke müssen Sie Folgendes installiert haben:

Da die obigen Installationen schwierig sein können, enthält dieses Projekt Molecule Wrapper. Molecule Wrapper ist ein Shell-Skript, das Molecule und dessen Abhängigkeiten (außer Linux) installiert und anschließend Molecule mit dem Befehl ausführt, den Sie ihm übergeben.

Um diese Rolle mit Molecule Wrapper zu testen, führen Sie den folgenden Befehl im Projektverzeichnis aus:

./moleculew test

Hinweis: Einige der Abhängigkeiten benötigen sudo-Berechtigungen zur Installation.

Lizenz

MIT

Danksagungen

Vielen Dank an John von Gantsign für das Bereitstellen des Molecule Wrapper-Skripts und der großartigen Ansible-Rollen, die über Ansible Galaxy verfügbar sind.

Autoreninformationen

Alexander Rolfes

Über das Projekt

Role for installing the graalvm community jdk.

Installieren
ansible-galaxy install arolfes.graalvm
GitHub Repository
Lizenz
mit
Downloads
663
Besitzer