An Ansible role to setup Oracle Java Development Kit.
DISCLAIMER: usage of any version of this role implies you have accepted the Oracle Binary Code License Agreement for Java SE.
- ansible >= 2.x
- oracle_java_installed: fact set by this role that contains a flag that indicates if Java is installed on the host.
- oracle_java_version_installed: fact set by this role that contains the string of the Java version installed in the system.
- debug: flag to make role more verbose.
- oracle_java_set_as_default: flag to indicate if this play should set Java as default (default:
yes
). - oracle_java_use_defaults: flag to indicate you want to use defaults set in the
defaults
directory (default:yes
). WARNING. setting this tono
will require the user to pass all of the distribution variables. See* | Java 8
examples in the Playbooks section.
WARNING to override any of the following variables (even if it's only one),
you'll need to set oracle_java_use_defaults: no
and override all of their values since
OS family defaults will no longer be loaded.
See debian | Java 8
example in the Playbooks section.
- oracle_java_apt_repository: Personal Package Archive (PPA) from where to install Java.
- oracle_java_apt_repository_key: PPA repository key.
- oracle_java_cache_valid_time: the amount of time in seconds the apt cache is valid.
- oracle_java_deb_package: name of debian package.
- oracle_java_debconf_package_default: name of debconf package to set default.
- oracle_java_home: the location of the Java home directory.
- oracle_java_state:** the package state (see Ansible apt module for more information).
WARNING to override any of the following variables (even if it's only one),
you'll need to set oracle_java_use_defaults: no
and override all of their values since
OS family defaults will no longer be loaded.
See debian | ubuntu | Java 8
example in the Playbooks section.
- oracle_java_apt_repository: Personal Package Archive (PPA) from where to install Java.
- oracle_java_cache_valid_time: the amount of time in seconds the apt cache is valid.
- oracle_java_deb_package: name of debian package.
- oracle_java_debconf_package_default: name of debconf package to set default.
- oracle_java_home: the location of the Java home directory.
- oracle_java_license_version: which Oracle license version you will be accepting.
- oracle_java_state:** the package state (see Ansible apt module for more information).
WARNING to override any of the following variables (even if it's only one),
you'll need to set oracle_java_use_defaults: no
and override all of their values since
OS family defaults will no longer be loaded.
See redhat | centos 7 | Java 8
example in the Playbooks section.
- oracle_java_dir_source: directory where to store the RPM files.
- oracle_java_download_timeout: download timeout, in seconds.
- oracle_java_home: the location of the Java home directory.
- oracle_java_rpm_filename: file name used for the download destination.
- oracle_java_rpm_url: where to download the rpm from.
- oracle_java_rpm_validate_certs: flag to indicate if you want SSL certificate validation.
- oracle_java_version_string: the Java version string to verify installation against.
# generic
- hosts: servers
roles:
- role: ansiblebit.oracle-java
# debian | Java 11
- hosts: servers
roles:
- role: ansiblebit.oracle-java
## explicitely passing default parameters
- hosts: servers
roles:
- role: ansiblebit.oracle-java
# debian | Java 8
- hosts: servers
roles:
- role: ansiblebit.oracle-java
oracle_java_use_defaults: no
oracle_java_apt_repository: 'deb http://ppa.launchpad.net/webupd8team/java/ubuntu bionic main'
oracle_java_apt_repository_key: 'EA8CACC073C3DB2A'
oracle_java_cache_valid_time: 3600
oracle_java_deb_package: 'oracle-java8-installer'
oracle_java_debconf_package_default: 'oracle-java8-set-default'
oracle_java_home: "/usr/lib/jvm/java-8-oracle"
oracle_java_license_version: "shared/accepted-oracle-license-v1-1"
oracle_java_set_as_default: no
oracle_java_state: latest
# debian | ubuntu | Java 11
- hosts: servers
roles:
- role: ansiblebit.oracle-java
# debian | ubuntu | Java 8
- hosts: servers
roles:
- role: ansiblebit.oracle-java
oracle_java_use_defaults: no
oracle_java_apt_repository: "ppa:webupd8team/java"
oracle_java_cache_valid_time: 3600
oracle_java_deb_package: 'oracle-java8-installer'
oracle_java_debconf_package_default: 'oracle-java8-set-default'
oracle_java_home: "/usr/lib/jvm/java-8-oracle"
oracle_java_license_version: "shared/accepted-oracle-license-v1-1"
oracle_java_set_as_default: no
oracle_java_state: latest
# redhat | centos 7 | Java 11
- hosts: servers
roles:
- role: ansiblebit.oracle-java
# redhat | centos 7 | Java 8
- hosts: servers
roles:
- role: ansiblebit.oracle-java
oracle_java_use_defaults: no
oracle_java_dir_source: '/usr/local/src'
oracle_java_download_timeout: 60
oracle_java_rpm_filename: 'jdk-8u191-linux-x64.rpm'
oracle_java_home: '/usr/java/default'
oracle_java_os_supported: yes
oracle_java_rpm_url: 'http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.rpm'
oracle_java_rpm_validate_certs: yes
oracle_java_set_as_default: no
oracle_java_version_string: 1.8.0_191
Use --skip-tags=debug
if you want to suppress debug information.
## Test
```bash
tox -e py27-ansible26 -- --box centos7-64.vagrant.dev
tox -e py27-ansible26 -- --box bionic64.vagrant.dev
# manual
source .tox/py27-ansible26/bin/activate
cd tests
vagrant up bionic64.vagrant.dev
bash test_idempotence.sh \
--box bionic64.vagrant.dev \
--inventory .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory
## look at idempotence test logs
less log/bionic64.vagrant.dev_idempotence_py27-ansible26.log
## debug
vagrant ssh bionic64.vagrant.dev
bash test_checkmode.sh \
--box bionic64.vagrant.dev \
--inventory .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory
## look at checkmode test logs
less log/bionic64.vagrant.dev_checkmode_py27-ansible26.log
vagrant destroy bionic64.vagrant.dev