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.gz
  • unzip - 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
  • jar
  • java
  • javac
  • jcmd
  • jconsole
  • jmap
  • jps
  • jstack
  • jstat
  • jstatd
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
À propos du projet

Ansible role to install Oracle JDK 8/9

Installer
ansible-galaxy install frieder.oraclejdk
Licence
mit
Téléchargements
113
Propriétaire