lean_delivery.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_distributionJava distribution type, one of:openjdk(default)oracle_javasapjvmzuluadoptiumsapmachinedragonwell8correttoNotice: this variable is mandatory in case of installing other distribution than 'openjdk'.
java_packageJava package type.Available:
jdk(default)jre
transportArtifact source transport. Usefallback(OpenJDK, SAPJVM, Adoptium, SapMachine, ZULU, Alibaba Dragonwell, Amazon Corretto distributions are supported),repositories(OpenJDK, Adoptium, Amazon Corretto distributions are supported),local,webors3according to your requirements.Available:
repositoriesInstalling java from system repositories (yum or apt, Linux only)webFetching artifact from custom web urlchocolateyWindows specific package manager (Supported OpenJDK: JDK 11, 12 or JRE 8, SapMachine, ZULU, Adoptium)localLocal artifact stored on ansible master (can be used as cache for other transport)s3Download artifact from s3 bucket (Linux clients only, for Windows please use other transports)fallbackfetching artifacts from official sites (available for distributions: openjdk, sapjvm, zulu, adoptium, sapmachine, dragonwell8, corretto).
This is default value fortransportvariableNotice using
s3transport 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 istrueiftransportis 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.202minor will be202(default). For OpenJDK this variable not needed setup manually.java_archPackage architecture. (With installing OpenJDK from repositories its variable you may use only for RHEL )Available:
x64for x86_64 (default)i586for x86
java_pathWhere java package will be installed. Notice Not use this variable if transport = repositories selecteddefault values depend on OS distribution:
- RedHat:
/usr/java(/usr/lib/jvmfrom repositories) - Debian:
/usr/lib/jvm - Windows:
C:\Program Files\Java
- RedHat:
java_download_path: Local folder for downloading artifactsLinux default:
/tmpWindows default:
TEMP environment variabletransport_webURI 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_localPath for local artifact e.g. "/tmp/jdk-8u172-linux-x64.tar.gz"transport_s3_bucket- s3 bucket namedefault:
s3_buckettransport_s3_path- path to patch folder in bucketdefault:
/foldertransport_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_implAdoptium Implementationhotspot(default)openj9
Configure executable paths
java_setup_path- to enable binary path setup. Iftruejava 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:
falsejava_unlimited_policy_transportArtifact source transport. Usefallback,local,webors3for more predictable result.
defaule:fallbackAvailable:
webFetching artifact from custom web urllocalLocal artifact stored on ansible masters3artifact in s3 bucket
java_unlimited_policy_transport_webURI for http/https artifact e.g. "http://my-storage.com/jce_policy-8.zip"java_unlimited_policy_transport_localPath for local artifact e.g. "/tmp/jce_policy-8.zip"java_unlimited_policy_transport_s3_bucket- s3 bucket namedefault:
s3_bucketjava_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.java