arolfes.graalvm

Rola Ansible: GraalVM

Status budowy Ansible Galaxy Licencja

Rola do instalacji GraalVM CE.

Wymagania

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

  • Dystrybucja Linuxa

    • Rodzina Debian

      • Ubuntu

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

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

      • Fedora

        • 37
        • 38
    • Rodzina SUSE

      • openSUSE

        • 15.0
        • 15.1
        • 15.2
        • 15.3
        • 15.4
        • 15.5
    • Uwaga: inne wersje mogą działać, ale nie były testowane.

Zmienne roli

Następujące zmienne zmieniają działanie tej roli (domyślne wartości pokazano poniżej):

# określenie wersji jdk używanej przez społeczność
# 17.0.7, 17.0.8, 20.0.1, 20.0.2, 21.0.0 lub 21.0.2
graalvm_java_version: '21.0.2'

# Podstawowy katalog instalacyjny dla dowolnej dystrybucji GraalVM
graalvm_install_dir: '/opt/graalvm'

# Katalog do przechowywania plików pobranych do instalacji GraalVM na zdalnym serwerze
graalvm_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"

# Jeśli to jest domyślna instalacja, skrypty profilowe będą pisane w celu ustawienia
# zmiennej środowiskowej GRAALVM_HOME
graalvm_is_default_installation: true

# Jeśli katalog bin GraalVM powinien być dodany do zmiennej środowiskowej PATH
# Efekt tylko wtedy, gdy jest to również domyślna instalacja
graalvm_add_to_path: true

# Miejsce, w którym można znaleźć pakiety instalacyjne GraalVM na lokalnym serwerze
# lokalne pakiety będą używane w pierwszej kolejności przed pobieraniem nowych.
graalvm_local_archive_dir: '{{ playbook_dir }}/files'

# Czy używać pakietów instalacyjnych w lokalnym archiwum (jeśli dostępne)
graalvm_use_local_archive: true

# SHA-256 dla redistribucji GraalVM
graalvm_redis_sha256sum:

# lokalizacja do pobierania GraalVM (np. https://example.com/provisioning/files)
# określ tylko, gdy NIE pobierasz bezpośrednio z github
graalvm_redis_mirror:

# Nazwa pliku dla pliku instalacyjnego redistribucji GraalVM
graalvm_redis_filename: "graalvm-community-jdk-{{ graalvm_java_version }}_linux-{{ graalvm_architecture }}_bin.tar.gz"

# Nazwa grupy faktów Ansible związanych z tą instalacją GraalVM.
#
# Nadpisz, jeśli chcesz używać tej roli więcej niż raz do instalacji wielu wersji
# GraalVM.
#
# np. graalvm_fact_group_name: graalvm_20_0_2
# zmieniłoby fakt dotyczący lokalizacji GraalVM na:
# ansible_local.graalvm_20_0_2.general.home
graalvm_fact_group_name: graalvm

# Czas oczekiwania na odpowiedź pobierania GraalVM w sekundach
graalvm_download_timeout_seconds: 600

# wybierz architekturę, x64 (oznacza amd64) lub aarch64
graalvm_architecture: 'x64'

Obsługiwane wersje GraalVM

Następujące wersje społecznościowego jdk GraalVM są obsługiwane bez dodatkowej konfiguracji

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

Obsługiwane architektury

  • x64 (oznacza amd64)
  • aarch64

Przykłady Playbooks

Domyślnie ta rola zainstaluje najnowszą wersję GraalVM CE, która została przetestowana i jest znana, że działa z tą rolą:

- hosts: servers
  roles:
    - role: arolfes.graalvm
# wyniki:
# nowy plik /etc/profile.d/graalvm.sh
# zawartość:
# GRAALVM_HOME=/opt/graalvm/jdk-21.0.2
# PATH=${GRAALVM_HOME}/bin:${PATH}

instalacja starszej wersji

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

Jeśli nie chcesz, aby GraalVM znajdował się w twojej zmiennej PATH, ustaw graalvm_add_to_path na false

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

jeśli nie chcesz pliku /etc/profile.d/graalvm.sh

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

Możesz zainstalować wiele wersji GraalVM, używając tej roli więcej niż raz:

- hosts: servers
  roles:
    # pierwsza rola instaluje 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'

    # druga rola instaluje graalvm-community-jdk-21.0.2 i jest ustawiona jako domyślna GraalVM
    - role: arolfes.graalvm

Aby przeprowadzić instalację offline, należy podać nieco więcej informacji (tj. graalvm_redis_filename i graalvm_redis_sha256sum). Na przykład, aby przeprowadzić instalację offline graalvm-19.3.2-java11:

# Przed przeprowadzeniem instalacji offline, pobierz
# `graalvm-community-jdk-21.0.2_linux-x64_bin.tar.gz` do
# `{{ playbook_dir }}/files/` na lokalnej maszynie.
- 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'

Fakty roli

Ta rola eksportuje następujące fakty Ansible do użycia przez inne role:

  • ansible_local.graalvm.general.java_version

    • np. 21.0.2
  • ansible_local.graalvm.general.home

    • np. /opt/graalvm/jdk-21.0.2

Nadpisując graalvm_fact_group_name, zmienisz nazwy faktów np.:

graalvm_fact_group_name: graalvm_java_21_0_0

Zmienią się wtedy nazwy faktów na:

  • 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

Rozwój i testowanie

Ten projekt wykorzystuje Molecule do wsparcia w rozwoju i testowaniu; rola jest testowana jednostkowo za pomocą Testinfra i pytest.

Aby rozwijać lub testować, należy zainstalować następujące:

Ponieważ powyższe może być trudne do zainstalowania, ten projekt zawiera Molecule Wrapper. Molecule Wrapper to skrypt powłoki, który instaluje Molecule i jego zależności (oprócz Linuxa) i następnie uruchamia Molecule z poleceniem, które mu przekażesz.

Aby przetestować tę rolę przy użyciu Molecule Wrapper uruchom następujące polecenie z katalogu głównego projektu:

./moleculew test

Uwaga: niektóre zależności wymagają uprawnień sudo do instalacji.

Licencja

MIT

Podziękowania

Wielkie dzięki dla Johna z Gantsign za dostarczenie skryptu do opakowywania molekuł oraz za wspaniałe role ansible dostępne na ansible-galaxy.

Informacje o autorze

Alexander Rolfes

O projekcie

Role for installing the graalvm community jdk.

Zainstaluj
ansible-galaxy install arolfes.graalvm
Licencja
mit
Pobrania
663
Właściciel