frieder.oraclejdk
ansible-role-oraclejdk
Un rôle Ansible pour installer Oracle JDK.
Résumé
Ce rôle Ansible installe Oracle JDK et l'extension de cryptographie Java (optionnelle) sur l'hôte cible. OpenJDK n'est pas supporté. Il a été testé avec Oracle JDK 8u144/8u151 et JDK 9u181/9.0.1 sur les distributions Linux suivantes.
- Ubuntu 16.04
- Debian 9
- RHEL 7.4
- CentOS 7.3
- Fedora 26
- SLE 12 SP2
- openSUSE 42.2
Dépendances
Ansible >= 2.x (testé avec 2.3.2.0 et 2.4.0.0)
De plus, ce rôle nécessite que les paquets suivants soient installés sur l'hôte cible.
tar
- Toujours requis pour extraire l'archive JDK tar.gzunzip
- Seulement requis si l'extension JCE pour JDK8 doit être installée
Installation
Pour utiliser ce rôle, il faut d'abord le télécharger depuis Ansible Galaxy. Pour installer le rôle, exécutez la commande ci-dessous sur votre machine de contrôle Ansible. Pour plus d'informations, veuillez consulter la documentation officielle.
ansible-galaxy install frieder.oraclejdk
Cette commande tirera toujours la dernière version de Galaxy. Une autre possibilité est de prendre le rôle depuis Github et de définir une version spécifique à télécharger. Cela permet un meilleur contrôle sur la version de ce rôle à utiliser. Créez un fichier requirements.yml
et mettez le contenu suivant.
---
- name: frieder.oraclejdk
src: https://github.com/frieder/ansible-role-oraclejdk
version: 2.0.0
Ensuite, vous pouvez exécuter ansible-galaxy install -r ./requirements.yml --ignore-errors
et cela téléchargera toutes les dépendances définies dans cette liste. --ignore-errors
garantira que toute la liste est traitée même si certaines dépendances sont déjà téléchargées. Un bon aperçu des entrées possibles pour requirements.yml
peut être trouvé ici.
Variables du rôle
Toutes les variables du rôle sont définies dans defaults/main.yml
. On peut écraser ces valeurs dans le playbook (voir les exemples en bas).
Variable | Par défaut | Description |
---|---|---|
oraclejdk_license_accept | false | Lors de l'installation d'un JDK, ceci doit être réglé sur vrai, sinon le play échouera. Pas requis lors de la suppression d'un JDK. |
oraclejdk_state | present | Définit si un JDK doit être ajouté ou retiré de l'hôte cible. Les valeurs possibles sont [present,absent] . |
oraclejdk_cleanup | true | Supprime tous les fichiers/dossiers temporaires (locaux et distants) après installation. Lorsque réglé sur vrai, cela entraînera des "changements" dans les plays. |
oraclejdk_dl_dir | /tmp/oraclejdk | Le dossier (local et distant) où les archives sont téléchargées/copiées/extraites. |
oraclejdk_home | Selon la valeur de oraclejdk_state, cette propriété prend des valeurs différentes. Dans le cas de present, cela prendra une seule chaîne pointant vers l'emplacement souhaité de JAVA_HOME. Dans le cas de absent, cela prendra une liste des anciens emplacements JDK qui doivent maintenant être supprimés. Dans ce cas, fournissez une liste avec au moins une entrée. | |
oraclejdk_profile_file | /etc/profile.d/java.sh | Le fichier dans lequel le rôle définira l'export JAVA_HOME et PATH. |
oraclejdk_cookie | Cookie:oraclelicense=accept-securebackup-cookie | Le cookie requis pour les téléchargements automatisés depuis oracle.com. La vérification de la licence est effectuée avec une autre variable. |
oraclejdk_url | L'URL de l'archive JDK soit sur oracle.com soit dans un dépôt d'entreprise local (recommandé). | |
oraclejdk_url_user | Si une authentification HTTP simple est requise, on peut fournir un nom d'utilisateur ici. | |
oraclejdk_url_pass | Si une authentification HTTP simple est requise, on peut fournir un mot de passe ici. | |
oraclejdk_checksum | Le checksum SHA256 de l'archive JDK. Ceci est utilisé pour vérifier que le fichier téléchargé est valide. Pour désactiver cette vérification, il suffit de fournir une valeur de checksum vide (oraclejdk_checksum: '' ). |
|
oraclejdk_sethome | true | Lorsque réglé sur vrai, cela mettra à jour la variable globale JAVA_HOME pour pointer vers le répertoire d'installation du JDK et ajouter les binaires à la variable PATH. Regardez aussi la variable oraclejdk_profile_file . |
oraclejdk_alternative_upd | true | Lorsque réglé sur vrai, cela définira l'alternative pour java (update-alternatives --config java ) vers le JDK actuel. |
oraclejdk_alternative_prio | 1 | La priorité utilisée pour la commande update-alternatives . Le JDK avec la priorité la plus élevée l'emporte. |
oraclejdk_alternative_items |
|
Cette propriété permet de définir quels types d'alternatives doivent être configurés pour le JDK. |
oraclejdk_jce_install | false | Lorsqu'il est réglé sur vrai, cela installera et ajoutera la dernière extension de cryptographie Java (JCE) au JDK. Veuillez noter qu'avec JDK9, la force de clé illimitée est activée par défaut et aucune action supplémentaire n'est requise. Pour plus d'informations, veuillez consulter la liste de diffusion security-dev. |
oraclejdk_jce_name | UnlimitedJCEPolicyJDK8 | JDK8 seulement. Le nom du dossier à l'intérieur de l'archive JCE. |
oraclejdk_jce_url | JDK8 seulement. L'URL de l'archive JCE soit sur oracle.com soit dans un dépôt d'entreprise local (recommandé). | |
oraclejdk_jce_checksum | JDK8 seulement. Le checksum SHA256 de l'archive JCE. Pour désactiver cette vérification, il suffit de fournir une valeur de checksum vide (oraclejdk_jce_checksum: '' ). |
Exemples de Playbooks
Voici quelques exemples de l'utilisation de ce rôle dans un playbook Ansible.
JDK8 & JDK9 ensemble, définir home pour JDK8, mettre à jour les alternatives pour les deux JDK avec différentes priorités
- hosts: jdk
pre_tasks:
- name: Installer les paquets requis (127.0.0.1)
delegate_to: 127.0.0.1
run_once: true
package:
name: '{{ item }}'
state: present
with_items:
- tar
- unzip
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_sethome: false
oraclejdk_alternative_prio: 100
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk8u151
oraclejdk_alternative_prio: 200
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
oraclejdk_jce_install: true
oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'
JDK8 avec configuration minimale
- hosts: jdk8
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk8_151
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
JDK8 avec JCE
- hosts: jdk8
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/java-8-151
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
oraclejdk_jce_install: true
oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'
Configuration complète de JDK8
- hosts: jdk8
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_cleanup: true
oraclejdk_dl_dir: /tmp/java_download
oraclejdk_home: /opt/java/java-8-151
oraclejdk_sethome: true
oraclejdk_alternative_upd: true
oraclejdk_alternative_prio: 123
oraclejdk_alternative_items:
- jar
- java
- javac
- jcmd
- jconsole
- jmap
- jps
- jstack
- jstat
- jstatd
oraclejdk_profile_file: /etc/profile.d/java.sh
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
oraclejdk_jce_install: true
oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'
JDK9
- hosts: jdk9
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'
JDK9 sans vérification de checksum
- hosts: jdk9
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: ''
JDK9 ajouter un nouveau JDK, supprimer les anciens JDK
- hosts: jdk9
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: ''
- role: frieder.oraclejdk
oraclejdk_state: absent
oraclejdk_home:
- /opt/java/jdk9.0.1
- /opt/java/java-8-151
ansible-galaxy install frieder.oraclejdk