frieder.oraclejdk

ansible-role-oraclejdk

An Ansible role to install Oracle JDK.

Supported Platforms

  • Ubuntu
  • Debian
  • Red Hat
  • CentOS
  • Fedora
  • SUSE
  • openSUSE

JDK Versions

  • Oracle JDK 8
  • Oracle JDK 9

Summary

This Ansible role installs Oracle JDK along with the optional Java Cryptography Extension (JCE) on the selected host. Please note that OpenJDK is not supported. It has been tested with Oracle JDK versions 8u144, 8u151 and 9u181, 9.0.1 across various Linux distributions:

  • Ubuntu 16.04
  • Debian 9
  • RHEL 7.4
  • CentOS 7.3
  • Fedora 26
  • SLE 12 SP2
  • openSUSE 42.2

Dependencies

  • Ansible version 2.x or higher (tested with 2.3.2.0 and 2.4.0.0)
  • Required packages:
    • tar: Needed to extract the JDK archive.
    • unzip: Required only if installing JCE for JDK8.

Installation

To use this role, download it from Ansible Galaxy by running the following command on your Ansible control machine:

ansible-galaxy install frieder.oraclejdk

Alternatively, you can download the role from GitHub and specify a version by creating a requirements.yml file with this content:

---
- name: frieder.oraclejdk
  src: https://github.com/frieder/ansible-role-oraclejdk
  version: 2.0.0

Then run:

ansible-galaxy install -r ./requirements.yml --ignore-errors

This command will install all dependencies listed, ignoring any errors from already downloaded files.

Role Variables

All variables for this role are stored in defaults/main.yml. You can override these values in your playbook (examples below).

Variable Default Description
oraclejdk_license_accept false Must be true to install JDK, not required for removal.
oraclejdk_state present Set to add or remove a JDK; options are [present, absent].
oraclejdk_cleanup true Remove temporary files after installation. Set to true to mark changes.
oraclejdk_dl_dir /tmp/oraclejdk Directory for downloading the archives.
oraclejdk_home Path for JAVA_HOME, varies based on state.
oraclejdk_profile_file /etc/profile.d/java.sh File for setting JAVA_HOME and PATH.
oraclejdk_cookie Cookie:oraclelicense=accept-securebackup-cookie Required for automated downloads.
oraclejdk_url URL for the JDK archive, can be from oracle.com or an internal source.
oraclejdk_url_user Provide username if HTTP auth is needed.
oraclejdk_url_pass Provide password if HTTP auth is needed.
oraclejdk_checksum SHA256 checksum for verifying the download.
oraclejdk_sethome true Update JAVA_HOME and PATH variable to the JDK directory.
oraclejdk_alternative_upd true Set the current JDK as the default alternative.
oraclejdk_alternative_prio 1 Priority for the update-alternatives command.
oraclejdk_alternative_items
  • jar
  • java
  • javac
  • jcmd
  • jconsole
  • jmap
  • jps
  • jstack
  • jstat
  • jstatd
Items to configure for the JDK alternatives.
oraclejdk_jce_install false Set to true to install the latest JCE with JDK8.
oraclejdk_jce_name UnlimitedJCEPolicyJDK8 Folder name in the JCE archive for JDK8 only.
oraclejdk_jce_url JCE archive URL for JDK8 only.
oraclejdk_jce_checksum JCE archive checksum for JDK8 only.

Example Playbooks

Here are some examples of how to use this role in Ansible playbooks.

Installing JDK8 and JDK9 with different priorities

- hosts: jdk
  pre_tasks:
  - name: Install required packages (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'

Installing JDK8 with minimal settings

- 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'

Installing JDK8 with 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'

Full configuration for 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'

Installing 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'

Installing JDK9 without checksum validation

- 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: ''

Adding new JDK9 and removing old JDKs

- 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
Informazioni sul progetto

Ansible role to install Oracle JDK 8/9

Installa
ansible-galaxy install frieder.oraclejdk
Licenza
mit
Download
113
Proprietario