gantsign.java

Rôle Ansible : Java

Tests Ansible Galaxy Licence

Rôle pour installer le JDK Java.

Exigences

  • Ansible Core >= 2.12

  • Distribution Linux

    • Famille Debian

      • Debian

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

        • Bionic (18.04)
        • Focal (20.04)
        • Jammy (22.04)
    • Famille RedHat

      • Rocky Linux

        • 8
      • Fedora

        • 35
    • Famille SUSE

      • openSUSE

        • 15.4
    • Remarque : d'autres versions pourraient 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 indiquées ci-dessous) :

# Numéro de version de Java
# Spécifiez '8', '11', '17' ou '21' pour obtenir la dernière version de correctif de cette version.
java_version: '21.0.2+13'

# Répertoire d'installation de base pour toute distribution Java
java_install_dir: '/opt/java'

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

# Emplacement où les paquets d'installation de Java 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.
java_local_archive_dir: '{{ playbook_dir }}/files'

# S'il faut utiliser les paquets d'installation dans l'archive locale (si disponibles)
java_use_local_archive: true

# Si c'est l'installation par défaut, des scripts de profil seront écrits pour définir
# la variable d'environnement JAVA_HOME et ajouter le répertoire bin au PATH.
java_is_default_installation: true

# Nom du groupe de faits Ansible relatifs à cette installation de Java.
#
# À remplacer si vous souhaitez utiliser ce rôle plusieurs fois pour installer plusieurs versions
# de Java.
#
# Par exemple, java_fact_group_name: java_8
# changerait le fait de la maison Java en :
# ansible_local.java_8.general.home
java_fact_group_name: java

# Le SHA-256 pour le redistributable JDK
java_redis_sha256sum:

# Emplacement miroir pour le téléchargement du JDK (par exemple, https://exemple.com/provisioning/files)
java_redis_mirror:

# Nom du fichier pour le fichier d'installation du redistributable JDK
java_redis_filename:

# Délai d'attente pour la réponse de téléchargement du JDK en secondes
java_download_timeout_seconds: 600

# Le délai d'attente pour l'API Adoptium
java_api_timeout_seconds: 30

Exemples de Playbooks

Par défaut, ce rôle installera la dernière version JDK LTS fournie par Adoptium qui a été testée et qui est connue pour fonctionner avec ce rôle :

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

Vous pouvez installer une version spécifique du JDK en spécifiant java_version.

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

Remarque : avec curl et jq, vous pouvez voir les versions disponibles en exécutant la commande suivante :

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

Vous pouvez installer plusieurs versions du JDK en utilisant ce rôle plusieurs fois :

- 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

Pour effectuer une installation hors ligne, vous devez spécifier un peu plus d'informations (c'est-à-dire java_major_version, java_release_name, java_redis_filename et java_redis_sha256sum). Par exemple, pour effectuer une installation hors ligne de 11.0.22+7 :

# Avant d'effectuer l'installation hors ligne, téléchargez
# `OpenJDK11U-jdk_x64_linux_hotspot_11.0.22_7.tar.gz` dans
# `{{ playbook_dir }}/files/` sur la machine locale.
- 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'

Faits du Rôle

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

  • ansible_local.java.general.version

    • par exemple 8u402
  • ansible_local.java.general.home

    • par exemple /opt/java/jdk8u402

Remplacer java_fact_group_name changera les noms des faits par exemple :

java_fact_group_name: java_8

Changerait les noms des faits en :

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

Autres Rôles de GantSign

Vous pouvez trouver d'autres rôles de GantSign sur Ansible Galaxy.

Développement & Tests

Ce projet utilise les outils suivants :

  • Molecule pour orchestrer les scénarios de test
  • Testinfra pour tester les modifications sur la machine distante
  • pytest le cadre de test
  • Tox gère les environnements virtuels Python pour le linting et les tests
  • pip-tools pour gérer les dépendances

Un Visual Studio Code Dev Container est fourni pour développer et tester ce rôle.

Licence

MIT

Informations sur l'Auteur

John Freeman

GantSign Ltd. Numéro d'Entreprise 06109112 (enregistré en Angleterre)

Installer
ansible-galaxy install gantsign.java
Licence
mit
Téléchargements
149.3k
Propriétaire