java
java role
Summary
This Ansible role has the following features for:
OpenJDK
- Install JRE, JDK
- Additional opportunity to install from openjdk-fallback, repositories, s3, web, chocolatey, local source.
Oracle Java:
- Install JRE, JDK, Server-JRE
- Additional opportunity to install from s3, web, local source.
DISCLAIMER: usage of any version of this role implies you have accepted the Oracle Binary Code License Agreement for Java SE.
SAPJVM
- Install JDK
- Additional opportunity to install from sapjvm-fallback, s3, web, local source.
ZULU
- Install JDK
- Additional opportunity to install from zulu-fallback, s3, web, local source, chocolatey.
Adoptium
- Install JDK, JRE
- Additional opportunity to install from adoptium-fallback, repositories, web, local source, s3, chocolatey.
SapMachine
- Install JDK, JRE
- Additional opportunity to install from sapmachine-fallback, web, local source, chocolatey (only latest version), s3.
Alibaba Dragonwell 8 JDK
- Install JDK
- Alibaba Dragonwell 8 corresponds to OpenJDK 8 and is compatible with the Java SE Standard
- Linux/x86_64 platform only
- Additional opportunity to install from dragonwell8-fallback, web, local source, s3.
Amazon Corretto
- Install JDK 8 and 11
- Install JRE 8 (Amazon Linux 2 only)
- Additional opportunity to install from fallback, web, local source, s3.
Requirements
- Version of the ansible for installation: 2.7
- Supported OpenJDK version:
- 8
- EL 6: repositories, tarball
- EL 7: repositories, tarball
- EL 8: repositories, tarball
- Ubuntu bionic: repositories, tarball
- Debian stretch: repositories, tarball
- Windows: tarball
- 11
- EL 6: tarball
- EL 7: repositories, tarball
- Ubuntu bionic: repositories, tarball
- Debian stretch: tarball
- Windows: tarball
- 12
- EL 6: tarball
- EL 7: tarball
- EL 8: tarball
- Ubuntu bionic: tarball
- Debian stretch: tarball
- Windows: tarball
- 13
- EL 6: tarball, fallback
- EL 7: tarball, fallback
- EL 8: tarball, fallback
- Ubuntu bionic: tarball, fallback
- Debian stretch: tarball, fallback
- Windows: tarball, fallback
- 8
- Supported oracle java version:
- 7
- 8
- 11
- 12
- Supported sapjvm version:
- 7
- 8
- Supported zulu version:
- 8
- 11
- 17
- Supported Adoptium version:
- 8
- 11
- 12
- 13
- Supported SapMachine version:
- 11
- EL 7: fallback
- EL 8: fallback
- Ubuntu bionic: fallback
- Debian stretch: fallback
- Windows: chocolatey (only latest version, don't support java_minor_version variables), fallback
- 12
- EL 7: tarball
- EL 8: tarball
- Ubuntu bionic: tarball
- Debian stretch: tarball
- Windows: tarball
- 13
- EL 7: fallback
- EL 8: fallback
- Ubuntu bionic: fallback
- Debian stretch: fallback
- Windows: chocolatey (only latest version, don't support java_minor_version variables), fallback
- 11
- Supported Alibaba Dragonwell version:
- 8.0.0
- 8.1.1
- Supported Amazon Corretto version:
- 8
- 11
- Supported OS:
- Ubuntu
- bionic
- xenial
- trusty
- Debian
- stretch
- buster
- Amazon Linux
- Amazon Linux 2
- EL (RHEL/CentOS)
- 6
- 7
- 8
- Windows
- 10
- 2016
- 2019
- Ubuntu
Role Variables
java_distribution
Java distribution type, one of:openjdk
(default)oracle_java
sapjvm
zulu
adoptium
sapmachine
dragonwell8
corretto
Notice: this variable is mandatory in case of installing other distribution than 'openjdk'.
java_package
Java package type.Available:
jdk
(default)jre
transport
Artifact source transport. Usefallback
(OpenJDK, SAPJVM, Adoptium, SapMachine, ZULU, Alibaba Dragonwell, Amazon Corretto distributions are supported),repositories
(OpenJDK, Adoptium, Amazon Corretto distributions are supported),local
,web
ors3
according to your requirements.Available:
repositories
Installing java from system repositories (yum or apt, Linux only)web
Fetching artifact from custom web urlchocolatey
Windows specific package manager (Supported OpenJDK: JDK 11, 12 or JRE 8, SapMachine, ZULU, Adoptium)local
Local artifact stored on ansible master (can be used as cache for other transport)s3
Download artifact from s3 bucket (Linux clients only, for Windows please use other transports)fallback
fetching artifacts from official sites (available for distributions: openjdk, sapjvm, zulu, adoptium, sapmachine, dragonwell8, corretto).
This is default value fortransport
variableNotice using
s3
transport requires specific packages to be installed on target host:- 'botocore'
- 'boto'
- 'boto3' These packages are not included in given role. You should install them preliminary.
java_tarball_install
- boolean parameter to choose between tarball and package installation. Default istrue
iftransport
is notrepositories
.java_major_version
- major version of OpenJDK (8,11,17) or oracle-java (6,7,8, 11 etc.) Default is 12.java_minor_version
- minor version of oracle-java. For version8.202
minor will be202
(default). For OpenJDK this variable not needed setup manually.java_arch
Package architecture. (With installing OpenJDK from repositories its variable you may use only for RHEL )Available:
x64
for x86_64 (default)i586
for x86
java_path
Where java package will be installed. Notice Not use this variable if transport = repositories selecteddefault values depend on OS distribution:
- RedHat:
/usr/java
(/usr/lib/jvm
from repositories) - Debian:
/usr/lib/jvm
- Windows:
C:\Program Files\Java
- RedHat:
java_download_path
: Local folder for downloading artifactsLinux default:
/tmp
Windows default:
TEMP environment variable
transport_web
URI for http/https artifact e.g. "http://my-storage.com/jdk-8u172-linux-x64.tar.gz"transport_web: "https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz"
(OpenJDK 11 for example)transport_local
Path for local artifact e.g. "/tmp/jdk-8u172-linux-x64.tar.gz"transport_s3_bucket
- s3 bucket namedefault:
s3_bucket
transport_s3_path
- path to patch folder in bucketdefault:
/folder
transport_s3_aws_access_key
- aws key. Need to be set as parameter or env variables according to https://docs.ansible.com/ansible/latest/modules/aws_s3_module.htmldefault:
{{ lookup('env','AWS_ACCESS_KEY') }}
transport_s3_aws_secret_key
- aws secret key. Need to be set as parameter or env variables according to https://docs.ansible.com/ansible/latest/modules/aws_s3_module.htmldefault:
{{ lookup('env','AWS_SECRET_KEY') }}
Configure Adoptium
adoptium_impl
Adoptium Implementationhotspot
(default)openj9
Configure executable paths
java_setup_path
- to enable binary path setup. Iftrue
java binaries are added to system paths, profile is updated and alternatives are set. If set tofalse
- no system settings updates will be done excepting performed by package scenarios.
default:true
Configure alternatives priority
java_alternative_priority
- priority configuration. Usefull if you need low priority setup. default: 100
Configure unlimited policy
java_unlimited_policy_enabled
- to apply unlimited policydefault:
false
java_unlimited_policy_transport
Artifact source transport. Usefallback
,local
,web
ors3
for more predictable result.
defaule:fallback
Available:
web
Fetching artifact from custom web urllocal
Local artifact stored on ansible masters3
artifact in s3 bucket
java_unlimited_policy_transport_web
URI for http/https artifact e.g. "http://my-storage.com/jce_policy-8.zip"java_unlimited_policy_transport_local
Path for local artifact e.g. "/tmp/jce_policy-8.zip"java_unlimited_policy_transport_s3_bucket
- s3 bucket namedefault:
s3_bucket
java_unlimited_policy_transport_s3_path
- path to patch folder in bucketdefault:
/folder
Some examples of the installing current role
ansible-galaxy install lean_delivery.java
Example Playbook
Installing OpenJDK 17 from openjdk-fallback (default role behaviour):
- name: Install openjdk java
hosts: all
roles:
- role: lean_delivery.java
java_major_version: 17
Installing OpenJDK 8 from repositories:
- name: Install openjdk java
hosts: all
roles:
- role: lean_delivery.java
transport: repositories
java_major_version: 8
Installing OpenJDK 11 from web:
- name: Install openjdk java
hosts: all
roles:
- role: lean_delivery.java
java_major_version: 11
java_tarball_install: true
transport: web
transport_web: https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
Installing Oracle java 8 from local file:
- name: Install oracle java
hosts: all
roles:
- role: lean_delivery.java
java_distribution: oracle_java
transport: local
transport_local: /tmp/jdk-8u181-linux-x64.tar.gz
Installing Oracle java 8 from S3 bucket:
Before install you should prepare host to use aws_s3 module https://docs.ansible.com/ansible/latest/modules/aws_s3_module.html#requirements
- name: Install java
hosts: all
roles:
- role: lean_delivery.java
java_distribution: oracle_java
java_package: jre
java_major_version: 8
transport: s3
transport_s3_bucket: java-s3-bucket
transport_s3_path: /java/jre-8u181-linux-x64.tar.gz
Installing OpenJDK 11.0.2 on Windows host with win_chocolatey:
- name: Install java
hosts: windows
roles:
- role: lean_delivery.java
java_package: jdk
transport: chocolatey
java_major_version: 11
java_minor_version: 0.2
Installing SAPJVM 8 from sapjvm-fallback:
- name: Install sapjvm
hosts: all
roles:
- role: lean_delivery.java
java_distribution: sapjvm
transport: fallback
java_major_version: 8
Installing ZULU 17 from zulu-fallback:
- name: Install zulu
hosts: all
roles:
- role: lean_delivery.java
java_distribution: zulu
transport: fallback
java_major_version: 17
java_package: jdk
Installing Adoptium 8-openj9-jre from adoptium-fallback:
- name: Install Adoptium
hosts: all
roles:
- role: lean_delivery.java
java_distribution: adoptium
transport: fallback
java_package: jre
adoptium_impl: openj9
java_major_version: 8
Installing SapMachine sapmachine-jre-10 from sapmachine-fallback:
- name: Install SapMachine
hosts: all
roles:
- role: lean_delivery.java
java_distribution: sapmachine
transport: fallback
java_package: jre
java_major_version: 10
Installing Alibaba Dragonwell 8 from dragonwell8-fallback:
- name: Install Alibaba Dragonwell8
hosts: all
roles:
- role: lean_delivery.java
java_distribution: dragonwell8
transport: fallback
java_major_version: 8
Installing Amazon Corretto JDK 8 from corretto-fallback:
- name: Install Amazon Corretto
hosts: all
roles:
- role: lean_delivery.java
java_distribution: corretto
transport: fallback
java_major_version: 8
Installing Amazon Corretto JDK 11 from repo on Amazon Linux 2:
- name: Install Amazon Corretto
hosts: all
roles:
- role: lean_delivery.java
java_distribution: corretto
transport: repositories
java_major_version: 11
Installing Amazon Corretto JDK 11 on Ubuntu 18.04 from web:
- name: Install Amazon Corretto
hosts: all
roles:
- role: lean_delivery.java
java_distribution: corretto
transport: web
transport_web: https://d3pxv6yz143wms.cloudfront.net/11.0.5.10.1/amazon-corretto-11.0.5.10.1-linux-x64.tar.gz
License
Apache
Author Information
authors:
- Lean Delivery Team team@lean-delivery.com
Lean Delivery Java install
ansible-galaxy install lean-delivery/ansible-role-java