arolfes.graalvm

Rôle Ansible : GraalVM

Statut de construction Ansible Galaxy Licence

Rôle pour installer GraalVM CE.

Exigences

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

  • Distribution Linux

    • Famille Debian

      • Ubuntu

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

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

      • Fedora

        • 37
        • 38
    • Famille SUSE

      • openSUSE

        • 15.0
        • 15.1
        • 15.2
        • 15.3
        • 15.4
        • 15.5
    • Note : d'autres versions peuvent fonctionner mais n'ont pas été testées.

Variables du rôle

Les variables suivantes modifieront le comportement de ce rôle (les valeurs par défaut sont montrées ci-dessous) :

# spécifier la version jdk communautaire sous-jacente
# 17.0.7, 17.0.8, 20.0.1, 20.0.2, 21.0.0 ou 21.0.2
graalvm_java_version: '21.0.2'

# Répertoire d'installation de base pour toute distribution GraalVM
graalvm_install_dir: '/opt/graalvm'

# Répertoire pour stocker les fichiers téléchargés pour l'installation de GraalVM sur la machine distante
graalvm_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"

# Si c'est l'installation par défaut, des scripts de profil seront écrits pour définir
# la variable d'environnement GRAALVM_HOME
graalvm_is_default_installation: true

# Si le répertoire bin de GraalVM doit être ajouté à la variable d'environnement PATH
# L'effet ne se produit que si c'est aussi l'installation par défaut
graalvm_add_to_path: true

# Emplacement où les paquets d'installation de GraalVM peuvent être trouvés sur la machine locale
# les paquets locaux seront utilisés de préférence au téléchargement de nouveaux paquets.
graalvm_local_archive_dir: '{{ playbook_dir }}/files'

# Si utiliser les paquets d'installation dans l'archive locale (si disponibles)
graalvm_use_local_archive: true

# Le SHA-256 pour le redistribuable de GraalVM
graalvm_redis_sha256sum:

# Emplacement pour le téléchargement de GraalVM (par exemple, https://example.com/provisioning/files)
# spécifier uniquement lorsque vous ne téléchargez pas directement depuis github
graalvm_redis_mirror:

# Nom de fichier pour le fichier d'installation redistributable de GraalVM
graalvm_redis_filename: "graalvm-community-jdk-{{ graalvm_java_version }}_linux-{{ graalvm_architecture }}_bin.tar.gz"

# Nom du groupe de faits Ansible concernant cette installation de GraalVM.
#
# Remplacer si vous souhaitez utiliser ce rôle plusieurs fois pour installer plusieurs versions
# de GraalVM.
#
# e.g. graalvm_fact_group_name: graalvm_20_0_2
# changerait le fait d'accueil de GraalVM à :
# ansible_local.graalvm_20_0_2.general.home
graalvm_fact_group_name: graalvm

# Délai d'attente pour la réponse de téléchargement de GraalVM en secondes
graalvm_download_timeout_seconds: 600

# choisir l'architecture sous-jacente, x64 (signifie amd64) ou aarch64
graalvm_architecture: 'x64'

Versions de GraalVM prises en charge

Les versions suivantes de GraalVM Community JDK sont prises en charge sans configuration supplémentaire

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

Architectures prises en charge

  • x64 (signifie amd64)
  • aarch64

Exemples de Playbooks

Par défaut, ce rôle va installer la dernière version de GraalVM CE qui a été testée et qui est connue pour fonctionner avec ce rôle :

- hosts: servers
  roles:
    - role: arolfes.graalvm
# résultats :
# nouveau fichier /etc/profile.d/graalvm.sh
# contenu :
# GRAALVM_HOME=/opt/graalvm/jdk-21.0.2
# PATH=${GRAALVM_HOME}/bin:${PATH}

Installer une version plus ancienne

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

Si vous ne souhaitez pas que GraalVM soit dans votre variable PATH, définissez graalvm_add_to_path sur false

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

Si vous ne souhaitez pas qu'un fichier /etc/profile.d/graalvm.sh soit créé

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

Vous pouvez installer plusieurs versions de GraalVM en utilisant ce rôle plusieurs fois :

- hosts: servers
  roles:
    # Le premier rôle installe 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'

    # Le deuxième rôle installe graalvm-community-jdk-21.0.2 et est mis par défaut comme GraalVM
    - role: arolfes.graalvm

Pour effectuer une installation hors ligne, vous devez spécifier un peu plus d'informations (c'est-à-dire graalvm_redis_filename et graalvm_redis_sha256sum). Par exemple, pour effectuer une installation hors ligne de graalvm-19.3.2-java11 :

# Avant de procéder à l'installation hors ligne, téléchargez
# `graalvm-community-jdk-21.0.2_linux-x64_bin.tar.gz` dans
# `{{ playbook_dir }}/files/` sur la machine locale.
- 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'

Faits du rôle

Ce rôle exporte les faits Ansible suivants pour être utilisés par d'autres rôles :

  • ansible_local.graalvm.general.java_version

    • par ex. 21.0.2
  • ansible_local.graalvm.general.home

    • par ex. /opt/graalvm/jdk-21.0.2

Modifier graalvm_fact_group_name changera les noms des faits par exemple :

graalvm_fact_group_name: graalvm_java_21_0_0

Changerait le nom des faits à :

  • 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

Développement et Tests

Ce projet utilise Molecule pour aider au développement et aux tests ; le rôle est testé unitairement à l'aide de Testinfra et pytest.

Pour développer ou tester, vous devez avoir installé les éléments suivants :

Parce que l'installation de ces éléments peut être délicate, ce projet inclut Molecule Wrapper. Molecule Wrapper est un script shell qui installe Molecule et ses dépendances (sauf Linux) puis exécute Molecule avec la commande que vous lui passez.

Pour tester ce rôle en utilisant Molecule Wrapper, exécutez la commande suivante à partir de la racine du projet :

./moleculew test

Note : certaines des dépendances nécessitent des autorisations sudo pour être installées.

Licence

MIT

Crédits

Un grand merci à John de Gantsign pour avoir fourni le script moleculaire wrapper et des rôles Ansible formidables accessibles sur ansible-galaxy.

Informations sur l'auteur

Alexander Rolfes

À propos du projet

Role for installing the graalvm community jdk.

Installer
ansible-galaxy install arolfes.graalvm
Licence
mit
Téléchargements
663
Propriétaire