lean_delivery.java
java角色
概述
此Ansible角色具有以下功能:
OpenJDK
- 安装JRE、JDK
- 可以从openjdk-fallback、repo、s3、网络、chocolatey、本地源安装。
Oracle Java:
- 安装JRE、JDK、Server-JRE
- 可以从s3、网络、本地源安装。
免责声明: 使用任何版本的此角色意味着您已接受 Oracle二进制代码许可证协议。
SAPJVM
- 安装JDK
- 可以从sapjvm-fallback、s3、网络、本地源安装。
ZULU
- 安装JDK
- 可以从zulu-fallback、s3、网络、本地源、chocolatey安装。
Adoptium
- 安装JDK、JRE
- 可以从adoptium-fallback、repo、网络、本地源、s3、chocolatey安装。
SapMachine
- 安装JDK、JRE
- 可以从sapmachine-fallback、网络、本地源、chocolatey(仅最新版本)、s3安装。
阿里巴巴Dragonwell 8 JDK
- 安装JDK
- 阿里巴巴Dragonwell 8对应于OpenJDK 8,与Java SE标准兼容
- 仅支持Linux/x86_64平台
- 可以从dragonwell8-fallback、网络、本地源、s3安装。
Amazon Corretto
- 安装JDK 8和11
- 安装JRE 8(仅支持Amazon Linux 2)
- 可以从fallback、网络、本地源、s3安装。
要求
- 安装的ansible版本:2.7
- 支持的OpenJDK版本:
- 8
- EL 6: repo、tarball
- EL 7: repo、tarball
- EL 8: repo、tarball
- Ubuntu bionic: repo、tarball
- Debian stretch: repo、tarball
- Windows: tarball
- 11
- EL 6: tarball
- EL 7: repo、tarball
- Ubuntu bionic: repo、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
- 支持的oracle java版本:
- 7
- 8
- 11
- 12
- 支持的sapjvm版本:
- 7
- 8
- 支持的zulu版本:
- 8
- 11
- 17
- 支持的Adoptium版本:
- 8
- 11
- 12
- 13
- 支持的SapMachine版本:
- 11
- EL 7: fallback
- EL 8: fallback
- Ubuntu bionic: fallback
- Debian stretch: fallback
- Windows: chocolatey(仅最新版本,不支持java_minor_version变量),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(仅最新版本,不支持java_minor_version变量),fallback
- 11
- 支持的Alibaba Dragonwell版本:
- 8.0.0
- 8.1.1
- 支持的Amazon Corretto版本:
- 8
- 11
- 支持的操作系统:
- Ubuntu
- bionic
- xenial
- trusty
- Debian
- stretch
- buster
- Amazon Linux
- Amazon Linux 2
- EL (RHEL/CentOS)
- 6
- 7
- 8
- Windows
- 10
- 2016
- 2019
- Ubuntu
角色变量
java_distribution
Java发行版类型,可以是:openjdk
(默认)oracle_java
sapjvm
zulu
adoptium
sapmachine
dragonwell8
corretto
注意: 如果安装其他版本而不是'openjdk',此变量为必需。
java_package
Java包类型。可选:
jdk
(默认)jre
transport
工件源传输方式。根据需求选择fallback
(支持的OpenJDK、SAPJVM、Adoptium、SapMachine、ZULU、Alibaba Dragonwell、Amazon Corretto),repositories
(支持的OpenJDK、Adoptium、Amazon Corretto),local
、web
或s3
。可选:
repositories
从系统存储库(yum或apt,Linux专用)安装Javaweb
从自定义网络URL获取工件chocolatey
Windows特定的包管理器(支持的OpenJDK: JDK 11、12或JRE 8、SapMachine、ZULU、Adoptium)local
存储在ansible主机上的本地工件(可用作其他传输的缓存)s3
从s3桶下载工件(仅Linux客户端,对于Windows,请使用其他传输方式)fallback
从官方网站获取工件(适用于分发:openjdk、sapjvm、zulu、adoptium、sapmachine、dragonwell8、corretto)。
这是transport
变量的默认值注意: 使用
s3
传输需要在目标主机上安装特定的包:- 'botocore'
- 'boto'
- 'boto3' 这些包不包含在给定角色中,您需要预先安装它们。
java_tarball_install
- 布尔参数,用于选择tarball或包安装。如果transport
不是repositories
,默认值为true
。java_major_version
- OpenJDK(8,11,17)或oracle-java(6,7,8, 11等)的主要版本。默认值为12。java_minor_version
- oracle-java的次要版本。对于版本8.202
,次要版本为202
(默认)。对于OpenJDK,此变量无需手动设置。java_arch
包架构。 (从存储库安装OpenJDK时此变量仅适用于RHEL)可选:
x64
适用于x86_64(默认)i586
适用于x86
java_path
Java包将安装的位置。 注意: 如果选择了transport = repositories,请勿使用此变量。默认值取决于操作系统的发行版:
- RedHat:
/usr/java
(来自repo的/usr/lib/jvm
) - Debian:
/usr/lib/jvm
- Windows:
C:\Program Files\Java
- RedHat:
java_download_path
: 用于下载工件的本地文件夹Linux默认:
/tmp
Windows默认:
TEMP环境变量
transport_web
URI,用于http/https工件,例如 "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)transport_local
本地工件的路径,例如 "/tmp/jdk-8u172-linux-x64.tar.gz"transport_s3_bucket
- s3桶名称默认:
s3_bucket
transport_s3_path
- 桶中补丁文件夹的路径默认:
/folder
transport_s3_aws_access_key
- aws密钥。根据https://docs.ansible.com/ansible/latest/modules/aws_s3_module.html的要求,需作为参数或环境变量设置。默认:
{{ lookup('env','AWS_ACCESS_KEY') }}
transport_s3_aws_secret_key
- aws密钥。根据https://docs.ansible.com/ansible/latest/modules/aws_s3_module.html的要求,需作为参数或环境变量设置。默认:
{{ lookup('env','AWS_SECRET_KEY') }}
配置Adoptium
adoptium_impl
Adoptium实现hotspot
(默认)openj9
配置可执行路径
java_setup_path
- 启用二进制路径设置。如果设置为true
,则将Java二进制文件添加到系统路径,更新配置文件并设置替代方案。如果设置为false
,则除了通过包场景进行的操作外,不会进行系统设置更新。
默认:true
配置替代方案优先级
java_alternative_priority
- 优先级配置。如果需要低优先级设置则有用。 默认: 100
配置无限制策略
java_unlimited_policy_enabled
- 应用无限制策略默认:
false
java_unlimited_policy_transport
工件源传输方式。使用fallback
、local
、web
或s3
以获得更可预测的结果。
默认:fallback
可选:
web
从自定义网络URL获取工件local
存储在ansible主机上的本地工件s3
存储在s3桶中的工件
java_unlimited_policy_transport_web
URI,用于http/https工件 例如 "http://my-storage.com/jce_policy-8.zip"java_unlimited_policy_transport_local
本地工件的路径,例如 "/tmp/jce_policy-8.zip"java_unlimited_policy_transport_s3_bucket
- s3桶名称默认:
s3_bucket
java_unlimited_policy_transport_s3_path
- 桶中补丁文件夹的路径默认:
/folder
当前角色安装的一些示例
ansible-galaxy install lean_delivery.java
示例Playbook
从openjdk-fallback安装OpenJDK 17(默认角色行为):
- name: 安装openjdk java
hosts: all
roles:
- role: lean_delivery.java
java_major_version: 17
从repo安装OpenJDK 8:
- name: 安装openjdk java
hosts: all
roles:
- role: lean_delivery.java
transport: repositories
java_major_version: 8
从网络安装OpenJDK 11:
- name: 安装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
从本地文件安装Oracle java 8:
- name: 安装oracle java
hosts: all
roles:
- role: lean_delivery.java
java_distribution: oracle_java
transport: local
transport_local: /tmp/jdk-8u181-linux-x64.tar.gz
从S3桶安装Oracle java 8:
在安装之前,您应该准备主机以使用aws_s3模块 https://docs.ansible.com/ansible/latest/modules/aws_s3_module.html#requirements
- name: 安装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
在Windows主机上使用win_chocolatey安装OpenJDK 11.0.2:
- name: 安装java
hosts: windows
roles:
- role: lean_delivery.java
java_package: jdk
transport: chocolatey
java_major_version: 11
java_minor_version: 0.2
从sapjvm-fallback安装SAPJVM 8:
- name: 安装sapjvm
hosts: all
roles:
- role: lean_delivery.java
java_distribution: sapjvm
transport: fallback
java_major_version: 8
从zulu-fallback安装ZULU 17:
- name: 安装zulu
hosts: all
roles:
- role: lean_delivery.java
java_distribution: zulu
transport: fallback
java_major_version: 17
java_package: jdk
从adoptium-fallback安装Adoptium 8-openj9-jre:
- name: 安装Adoptium
hosts: all
roles:
- role: lean_delivery.java
java_distribution: adoptium
transport: fallback
java_package: jre
adoptium_impl: openj9
java_major_version: 8
从sapmachine-fallback安装SapMachine sapmachine-jre-10:
- name: 安装SapMachine
hosts: all
roles:
- role: lean_delivery.java
java_distribution: sapmachine
transport: fallback
java_package: jre
java_major_version: 10
从dragonwell8-fallback安装Alibaba Dragonwell 8:
- name: 安装Alibaba Dragonwell8
hosts: all
roles:
- role: lean_delivery.java
java_distribution: dragonwell8
transport: fallback
java_major_version: 8
从corretto-fallback安装Amazon Corretto JDK 8:
- name: 安装Amazon Corretto
hosts: all
roles:
- role: lean_delivery.java
java_distribution: corretto
transport: fallback
java_major_version: 8
从repo在Amazon Linux 2上安装Amazon Corretto JDK 11:
- name: 安装Amazon Corretto
hosts: all
roles:
- role: lean_delivery.java
java_distribution: corretto
transport: repositories
java_major_version: 11
在Ubuntu 18.04中通过网络安装Amazon Corretto JDK 11:
- name: 安装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
许可证
Apache
作者信息
作者:
- Lean Delivery团队 team@lean-delivery.com
Lean Delivery Java install
ansible-galaxy install lean_delivery.java