srsp.oracle-java
srsp.oracle-java pour Ansible Galaxy
Résumé
Nom du rôle dans Ansible Galaxy : srsp.oracle-java
Ce rôle Ansible a les fonctionnalités suivantes liées à l'Oracle JDK :
- Installer l'Oracle JDK dans les versions de 8 à 13.
- Installer les Java Cryptography Extensions (JCE) optionnelles. Seulement nécessaire pour toute version de JDK <= 8u152.
- Installer pour les systèmes d'exploitation CentOS, Debian/Ubuntu, SUSE et macOS.
Ce rôle est basé sur williamyeh.oracle-java, mais je voulais des versions Java plus récentes et j'ai décidé de ne plus prendre en charge les anciennes versions.
Si vous préférez OpenJDK, essayez geerlingguy.java.
Téléchargement automatique depuis Oracle
Attention : Autrefois, ce rôle téléchargeait tous les JDK directement depuis le site d'Oracle. Oracle a progressivement supprimé cette possibilité. Maintenant, vous ne pouvez plus télécharger aucune version de JDK 8 sans compte Oracle. Pour le JDK 11, vous pouvez seulement télécharger une version ancienne. Le JDK 13 peut être téléchargé pour le moment.
Étant donné que cela change de manière non déterministe à chaque fois qu'Oracle publie une nouvelle version de Java, vous ne devriez pas compter là-dessus. Je recommande de télécharger le JDK manuellement et de l'installer avec ce rôle.
Variables du rôle
Utilisation de base
Cela essaiera de télécharger le JDK depuis Oracle et de l'installer.
- hosts: all
roles:
- srsp.oracle-java
vars:
# Vous devez définir cela :
- java_version: 13
# Vous pouvez omettre cela (le rôle utilisera alors la dernière version connue) :
- java_subversion: 0.2
Exemples
Installer un JDK téléchargé manuellement
Placez le fichier JDK téléchargé pour votre système souhaité dans le répertoire files
et définissez java_download_from
sur local
:
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 201
- java_download_from: local
Installer depuis votre miroir
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 172
- java_download_from: mirror
- java_mirror: "http://some.url/in/your/network/jdk-8u172-macosx-x64.dmg"
Télécharger le JDK sur la machine locale (pré-échantillonner)
Si vous souhaitez juste avoir le JDK sur votre machine locale (par exemple, pour utiliser les fichiers pour le test de molécule ou pour le télécharger sur votre miroir intranet d'entreprise), vous pouvez utiliser le playbook prefetch.yml
dans ce rôle :
ansible-playbook prefetch.yml
Changez le playbook selon vos besoins.
Si vous exécutez depuis la ligne de commande
ansible-playbook --ask-become-pass playbook.yml
Variables optionnelles
Valeurs par défaut configurables par l'utilisateur :
# Version de Java
java_version: 8
# Sous-version de Java
java_subversion: 201
# Si vous souhaitez télécharger Java directement depuis Oracle
# - oracle : Télécharger depuis le site d'Oracle en temps réel.
# - mirror : Télécharger depuis l'URL définie dans 'java_mirror'.
# - local : Copier depuis le répertoire `files` du rôle ou du playbook sur la machine de contrôle.
java_download_from: oracle
# Selon la valeur de 'java_download_from', différentes actions se produisent ici :
# - oracle : Vous n'avez pas besoin de le définir. Il est pré-rempli avec le miroir de téléchargement d'Oracle.
# - mirror : Vous devez définir le miroir à partir duquel vous souhaitez télécharger. Vous devez définir l'URL complète y compris le fichier, comme dans l'exemple ci-dessous. Si vous souhaitez également le JCE, vous devez définir 'jce_zip_url'.
# - local : 'java_mirror' n'est pas utilisé, donc la valeur est ignorée.
#java_mirror: "https://private-repo.com/java/jdk-8u172-macosx-x64.dmg"
java_mirror: "http://download.oracle.com/otn-pub/java"
# Supprimer les fichiers téléchargés temporairement ?
java_remove_download: true
# Définir $JAVA_HOME ?
java_set_java_home: true
# Installer le JCE ?
java_install_jce: false
Pour d'autres options configurables, lisez le fichier tasks/set-role-variables.yml
; par exemple, pour voir les combinaisons java_version
/java_subversion
prises en charge.
Je veux installer un JDK que vous ne supportez pas encore !
Pas de problème ! Vous devez spécifier le numéro de build Java correspondant dans les variables java_build
et jdk_tarball_hash
, en plus de java_version
et java_subversion
, par exemple :
# fichier : playbook.yml
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 141
- java_build: 15
- jdk_tarball_hash: 336fa29ff2bb4ef291e347e091f7f4a7
Licence
Licencié sous la Licence Apache V2.0. Voir le fichier LICENSE pour les détails.
Développement
Tests
Les tests utilisent molecule
. Comme ce rôle nécessite un JDK d'Oracle, les conteneurs de test de molécule monteront /tmp/java
, de sorte que le JDK soit persistant sur la machine locale et toujours disponible lorsque le conteneur de test a été détruit. Vous pouvez également pré-échantillonner le fichier d'installation et le mettre dans /tmp/java
.
Cela exécutera tout le cycle de test contre le scénario par défaut :
molecule test
Si vous souhaitez travailler sur une certaine distribution, utilisez quelque chose comme ceci :
molecule converge --scenario-name opensuse15
Si vous voulez tester tout, émettez :
molecule test --all
Cela prendra un certain temps.
Oracle JDK 8 to 13 for CentOS/Fedora/Debian/Ubuntu/Suse/MacOSX
ansible-galaxy install srsp.oracle-java